OVH Cloud OVH Cloud

Récupérer le texte SQL d'une vue (projet adp & DAO)

1 réponse
Avatar
naci
Bonjour,

J'ai un projet adp connect=E9 avec une base SQL. Les acc=E8s=20
se font en ADO.=20
Je souhaite r=E9cup=E9rer le texte SQL de commande d'une Vue.=20
J'ai utilis=E9 le code suivant, sachant que gADOConnect est=20
d=E9j=E0 renseign=E9 comme ADODB.Connection.

dim cat As New ADOX.catalog
dim cmd As New ADODB.Command
dim strSQL as string

' Ouvrir le catalogue
Set cat.ActiveConnection =3D gADOConnect
=20
' Obtenir la commande
Set cmd =3D cat.Views("qryExportVersExcel").Command
=20
' R=E9cuperer le CommandText de Command
strSql =3D cmd.CommandText

Malheureusement il m'est retourn=E9 l'erreur suivante lors=20
du passage sur le "set cmd =3D" : "le fournisseur ou l'objet=20
ne prend pas en charge cette op=E9ration".

Quelle solution puis je utiliser pour arriver =E0 mes fins ?
merci d'avance

NACI

1 réponse

Avatar
?Lo»Paris?
naci wrote:
Bonjour,

J'ai un projet adp connecté avec une base SQL. Les accès
se font en ADO.
Je souhaite récupérer le texte SQL de commande d'une Vue.
J'ai utilisé le code suivant, sachant que gADOConnect est
déjà renseigné comme ADODB.Connection.

dim cat As New ADOX.catalog
dim cmd As New ADODB.Command
dim strSQL as string

' Ouvrir le catalogue
Set cat.ActiveConnection = gADOConnect

' Obtenir la commande
Set cmd = cat.Views("qryExportVersExcel").Command

' Récuperer le CommandText de Command
strSql = cmd.CommandText

Malheureusement il m'est retourné l'erreur suivante lors
du passage sur le "set cmd =" : "le fournisseur ou l'objet
ne prend pas en charge cette opération".

Quelle solution puis je utiliser pour arriver à mes fins ?
merci d'avance

NACI


Bonsoir Naci,

Avec une vue non, mais tu peux le faire avec une procédure :

Dim adoCmd As New ADODB.Command

adoCmd.ActiveConnection = CodeProject.Connection

adoCmd.CommandType = adCmdStoredProc
adoCmd.CommandText = "proc1"
adoCmd.Execute
'// [....]

Tu vas me dire tu veux une "View"!, avec l'objet Catalog tu peux obtenir les
vues disponible dans ta base, mais tu doit regarder dans le catalogue
"Tables" ! donc tu ne peux pas obtenir le "CommandText" de ta vue... sinon
essai de passer par SQLDMO, cela devrais le faire.

Salutations

--
°Laurent°