Cookbook ODBC: RequeteODBCwheredate.r

File RequeteODBCwheredate.r, 4.1 KB (added by cedric, 15 years ago)

Class for querying the database using where clause and a query over a period

Line 
1# Nom fichier :        RequeteODBCwheredate (classe)
2# Projet :             controle migrateur / traitement
3# Organisme :          IAV
4# Auteur :             Cedric Briand
5# Contact :            cedric.briand@lavilaine.com
6# Date de creation :   10/01/2009 22:49:33
7# Compatibilite :      R 2.7.0
8# Etat :               OK
9# Description          Classe de connexion à la base de donnee, envoie une requete sql avec une clause where concernant une date
10#                       avec une commande overlaps
11#                     Utilisee par la classe BilanFonctionnementDC
12#**********************************************************************
13
14#' @title RequeteODBCwhere class
15#' @note Inherits from RequeteODBCwhere and uses its connect method with a new SetAs
16#' @slot datedebut="POSIXlt"
17#' @slot datefin="POSIXlt"
18#' @slot colonnedebut="character" # name of the column containing datedebut
19#' @slot colonnefin="character"  # name of the column containing datefin
20#' @slot select="character"             (inherited from ConnexionODBCwhere)
21#' @slot where="character"              (inherited from ConnexionODBCwhere)
22#' @slot and="vector"                   (inherited from ConnexionODBCwhere)
23#' @slot order_by="character"   (inherited from ConnexionODBCwhere)
24#' @slot baseODBC="vector"              (inherited from ConnexionODBC)
25#' @slot silent="logical"               (inherited from ConnexionODBC)
26#' @slot etat="character"               (inherited from ConnexionODBC)
27#' @slot connexion="ANY"                (inherited from ConnexionODBC)
28#' @slot sql="character"                (inherited from RequeteODBC)
29#' @slot query="data.frame"             (inherited from RequeteODBC)
30#' @slot open="logical"                 (inherited from RequeteODBC)
31#' @example objet=new("RequeteODBCwhere")
32#' @exportClass
33setClass(Class="RequeteODBCwheredate",
34                representation= representation(datedebut="POSIXlt",datefin="POSIXlt",colonnedebut="character",colonnefin="character"),
35                prototype = list(silent=TRUE,open=FALSE),contains="RequeteODBCwhere")
36
37#' transformation method from RequeteODBCwheredate to RequeteODBC
38#' @returnType S4 object
39#' @return An object of class RequeteODBC
40setAs("RequeteODBCwheredate","RequeteODBCwhere",function(from,to){
41                        requeteODBCwhere=new("RequeteODBCwhere")
42                        requeteODBCwhere@where=paste("WHERE (",from@colonnedebut,
43                                        ", ",from@colonnefin,
44                                        ") overlaps (DATE '",
45                                        from@datedebut,"',DATE '",
46                                        from@datefin,"') ")
47                        requeteODBCwhere@and=paste(from@and,sep=" ") # concatenation du vecteur
48                        requeteODBCwhere@select=from@select
49                        requeteODBCwhere@order_by=from@order_by
50                        requeteODBCwhere@baseODBC=from@baseODBC
51                        requeteODBCwhere@silent=from@silent
52                        # other slots will be filled in by connect     
53                        return(requeteODBCwhere)
54                })
55#' connect method loads a request to the database and returns either an error or a data.frame
56#' @note method modified from v0.2.1240 to use the connect method of the mother class which in turn will use the method of the mother class
57#' @returnType S4 object
58#' @return An object of class RequeteODBCwheredate
59#' @author Cedric Briand \email{cedric.briand@@lavilaine.com}
60#' @exportMethod
61#' @example
62#' objet<-new("RequeteODBCwheredate")
63#' objet@baseODBC<-baseODBC
64#' objet@select<- "select * from t_operation_ope"
65#' objet@datedebut=strptime("1996-01-01 00:00:00",format="%Y-%m-%d %H:%M:%S")
66#' objet@datefin=strptime("2000-01-01 00:00:00",format="%Y-%m-%d %H:%M:%S")
67#' objet@colonnedebut="ope_date_debut"
68#' objet@colonnefin="ope_date_fin"
69#' objet@and<-c("AND ope_dic_identifiant=1","AND ope_dic_identifiant=2")
70#' objet@order_by<-"ORDER BY ope_identifiant"
71#' objet@silent=FALSE
72#' objet<-connect(objet)
73setMethod("connect",signature=signature("RequeteODBCwheredate"),definition=function(objet) {
74                        requeteODBCwhere=as(objet,"RequeteODBCwhere")
75                        requeteODBCwhere=connect(requeteODBCwhere) # utilise la méthode de la classe mère
76                        # récupère au sein de l'objet les éléments de requeteODBC
77                        objet@where=requeteODBCwhere@where
78                        objet@connexion=requeteODBCwhere@connexion
79                        objet@query=requeteODBCwhere@query
80                        objet@etat=requeteODBCwhere@etat
81                        objet@sql=requeteODBCwhere@sql
82                        return(objet)
83                })
84