Merci, malheureusement je reçois toujours une erreur :
Voici mon code :
VB:
Dim RECSET As New ADODB.Recordset
RECSET.Open "select count(distinct(ev.d_effet)) as nombre_versement_15ans from db_evenement ev, dp_classe_evt classe" & _
" where ev.no_police = '" & NO_POLICE & "' and classe.b_ea =1 and classe.b_rachat = 1 and ev.is_classe_evt=classe.is_classe_evt and extract(year from ev.dt_effet)>=extract(year from current_timestamp)-15", cnn_Pegase, adOpenDynamic, adLockBatchOptimistic
RECSET.Open "select count(distinct(ev.d_effet)) as nombre_versement_15ans from db_evenement ev, dp_classe_evt classe" & _
" where ev.no_police = '" & NO_POLICE & "' and classe.b_ea =1 and classe.b_rachat = 1 and ev.is_classe_evt=classe.is_classe_evt and extract(year from db_evenement.dt_effet)>=extract(year from current_timestamp)-15", cnn_Pegase, adOpenDynamic, adLockBatchOptimistic
RECSET.Open "select count(distinct(ev.d_effet)) as nombre_versement_15ans from db_evenement ev, dp_classe_evt classe" & _
" where ev.no_police = '" & NO_POLICE & "' and classe.b_ea =1 and classe.b_rachat = 1 and ev.is_classe_evt=classe.is_classe_evt and extract(year from db_evenement.dt_effet)>=extract(year from current_timestamp)-15", cnn_Pegase, adOpenDynamic, adLockBatchOptimistic
Ce n'est pas un problème SQL ADODB mais un problème Oracle SQL !
Notes que tu utilises SAS qui peut travailler avec SQL SERVUER, MYSQL, ORACLE etc.
SAS gère sa propre syntaxe SQL alors qu'ADODB gère l'a syntaxe SQL lié à la connexion donc Oracle !
Dans tous ce que j'ai trouvé sur internet concernant DatePart ça me ramène toujours à Extract!
J'ai même trouvé un site qui parle d'équivalence entre SQL serveur DatePart et Oracle Extract!
De là dire que DatePart n'existe pas dans Oracle ???!!!
Pour ce qui concerne ev.d_effet invalid identifier il semblerait qu'Oracle gère mal les alias !
Ce n'est pas un problème SQL ADODB mais un problème Oracle SQL !
Notes que tu utilises SAS qui peut travailler avec SQL SERVUER, MYSQL, ORACLE etc.
SAS gère sa propre syntaxe SQL alors qu'ADODB gère l'a syntaxe SQL lié à la connexion donc Oracle !
Dans tous ce que j'ai trouvé sur internet concernant DatePart ça me ramène toujours à Extract!
J'ai même trouvé un site qui parle d'équivalence entre SQL serveur DatePart et Oracle Extract!
De là dire que DatePart n'existe pas dans Oracle ???!!!
Pour ce qui concerne ev.d_effet invalid identifier il semblerait qu'Oracle gère mal les alias !
Quand j'étais encore jeune et beau je faisais du SQL Oracle et j'avais accès à la Bible de 150 000 pages ! Mais là Google m'a été d'une aide précieuse en comblant les trous de ma mémoire défaillante !
Quand j'étais encore jeune et beau je faisais du SQL Oracle et j'avais accès à la Bible de 150 000 pages ! Mais là Google m'a été d'une aide précieuse en comblant les trous de ma mémoire défaillante !
ADODB est un composant permettant de ce connecter à une base de données;
chaque fournisseur de base de données fournis ses propre connecteur ODBC pour permettre à ADODB d'établir une connexion et manipuler les données;
ce sont les driver ODBC fourni par SQL serveur, MySQL Oracle, Access etc qui définissent la syntaxe SQL approprié!
SAS met à ses utilisateur un requêteur, mais ce sont les utilisateurs qui choisissent le type de base de données choisir SQL serveur, MySQL Oracle
donc SAS à mis au point sa propre syntaxe SQL en fonction de ce qui ce pratique le plus généralement!
voici un panel des connexion ADODB possible!
VB:
Select Case TYPEBASE
Case Xls
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Base & ";Extended Properties=""Excel 12.0;HDR=" & Array("No", "YES")(Abs(AvecTitre)) & ";"""
Case ACCESS97
GenereCSTRING = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & fichier
Case ACCESS2000
GenereCSTRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fichier & ";Persist Security Info=False"
Case ACCESS2012
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fichier & ";"
Case MySQL
GenereCSTRING = " DRIVER={MySQL ODBC 5.1 Driver};SERVER=" & Server & ";UID=" & User & ";DATABASE=" & Base & ";Password=" & PassWord
Case ODBC
GenereCSTRING = "Provider=MSDASQL.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Data Source=" & Base
Case ORACLE
GenereCSTRING = "Provider=OraOLEDB.Oracle.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Data Source=" & Base
Case SQLSERVER2005
GenereCSTRING = "Provider=SQLOLEDB.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Initial Catalog=" & Base & ";Data Source=" & Server
Case SQLServer2008R2
GenereCSTRING = "Provider=SQLNCLI;Server=" & Server & ";Database=" & Base & ";UID=" & User & ";PWD=" & PassWord & ";"
Case SQLite
GenereCSTRING = "Provider=OleSQLite.SQLiteSource.3; Data Source=" & fichier
GenereCSTRING = "Driver={SQLite ODBC (UTF-8) Driver};Database=" & fichier & ";StepAPI=;Timeout="
Case SQLite3
GenereCSTRING = "Driver={SQLite3 ODBC Driver};Database=" & fichier & ";LongNames=0;Timeout=4000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"
Case CSV
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server & ";Extended Properties=""Text;HDR=" & Array("No", "YES")(Abs(AvecTitre)) & ";FMT=Delimited;"""
Case Else
GenereCSTRING = "PAS ASSEZ DE PARAMETRES RENSEIGNES !!!"
End Select
ADODB est un composant permettant de ce connecter à une base de données;
chaque fournisseur de base de données fournis ses propre connecteur ODBC pour permettre à ADODB d'établir une connexion et manipuler les données;
ce sont les driver ODBC fourni par SQL serveur, MySQL Oracle, Access etc qui définissent la syntaxe SQL approprié!
SAS met à ses utilisateur un requêteur, mais ce sont les utilisateurs qui choisissent le type de base de données choisir SQL serveur, MySQL Oracle
donc SAS à mis au point sa propre syntaxe SQL en fonction de ce qui ce pratique le plus généralement!
voici un panel des connexion ADODB possible!
VB:
Select Case TYPEBASE
Case Xls
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Base & ";Extended Properties=""Excel 12.0;HDR=" & Array("No", "YES")(Abs(AvecTitre)) & ";"""
Case ACCESS97
GenereCSTRING = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & fichier
Case ACCESS2000
GenereCSTRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fichier & ";Persist Security Info=False"
Case ACCESS2012
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fichier & ";"
Case MySQL
GenereCSTRING = " DRIVER={MySQL ODBC 5.1 Driver};SERVER=" & Server & ";UID=" & User & ";DATABASE=" & Base & ";Password=" & PassWord
Case ODBC
GenereCSTRING = "Provider=MSDASQL.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Data Source=" & Base
Case ORACLE
GenereCSTRING = "Provider=OraOLEDB.Oracle.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Data Source=" & Base
Case SQLSERVER2005
GenereCSTRING = "Provider=SQLOLEDB.1;Password=" & PassWord & ";Persist Security Info=True;User ID=" & User & ";Initial Catalog=" & Base & ";Data Source=" & Server
Case SQLServer2008R2
GenereCSTRING = "Provider=SQLNCLI;Server=" & Server & ";Database=" & Base & ";UID=" & User & ";PWD=" & PassWord & ";"
Case SQLite
GenereCSTRING = "Provider=OleSQLite.SQLiteSource.3; Data Source=" & fichier
GenereCSTRING = "Driver={SQLite ODBC (UTF-8) Driver};Database=" & fichier & ";StepAPI=;Timeout="
Case SQLite3
GenereCSTRING = "Driver={SQLite3 ODBC Driver};Database=" & fichier & ";LongNames=0;Timeout=4000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"
Case CSV
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server & ";Extended Properties=""Text;HDR=" & Array("No", "YES")(Abs(AvecTitre)) & ";FMT=Delimited;"""
Case Else
GenereCSTRING = "PAS ASSEZ DE PARAMETRES RENSEIGNES !!!"
End Select