Select et update (ODBC) -> erreur 3146

Signaler
Messages postés
3
Date d'inscription
lundi 8 juillet 2002
Statut
Membre
Dernière intervention
10 juillet 2002
-
Messages postés
23
Date d'inscription
vendredi 6 avril 2012
Statut
Membre
Dernière intervention
24 juillet 2012
-
Petit soucis pour faire co-exister ces deux types de fonction dans une macro VBA qui attaque une base Oracle:

J'utilise ma connexion odbc pour recuperer un objet Recordset -> c'est mon ordre "Select"

Lorsque plus loin, je veux executer un ordre "Update" via un second objet QueryDef, j'ai une erreur '3146' : ODBC -- l'appel a echoue

Séparemment, les codes fonctionnent, mais ensemble, j'ai l'impression que les ressources ODBC ne se libère pas, ou ne s'initialise pas correctement.

Voici à quoi ressemble mon code :

Dim vSource As String, strSelect As String, strMAJ As String
Dim WkODBC As Workspace
Dim ConPoint As Connection

vSource = "ODBC;DRIVER={Oracle73 Ver 2.5};UID=RSKOB;PWD=RSKOB;DBQ=ORAXR06;ASY=OFF;"

DBEngine.DefaultType = dbUseODBC

Set WkODBC = CreateWorkspace("", "", "", dbUseODBC)

Set ConPoint = WkODBC.OpenConnection("", , False, vSource)

...
strSelect "select cours from historique where sicovam " + CStr(Sicovam) _
+ " and jour = '" + strJour + "'"

Set Qdf1 = ConPoint.CreateQueryDef("", strSelect)
Set Qdf2 = ConPoint.CreateQueryDef("")

Set rstResultat = Qdf1.OpenRecordset()
...
rstResultat.Close
Qdf1.Close
strMAJ "update ccbp_historique set cours " + CStr(Cours) _ + " where date_cours '" + strJour + "' and sicovam " + CStr(Sicovam)

With Qdf2
.Prepare = dbQUnprepare
.Sql = strMAJ
.Execute
End With

Le plantage a lieu a la phase Execute

4 réponses

Messages postés
360
Date d'inscription
vendredi 24 août 2001
Statut
Membre
Dernière intervention
9 juillet 2008
3
Pq tu fait un QueryDef sur un update ? Tu n'attend pas de retour ?

Fait un simple TaConnexion.Execute(TaRequeteUpdate)

==============
Site Web de JDPROG
Présentation de MP3 Index
0
Messages postés
3
Date d'inscription
lundi 8 juillet 2002
Statut
Membre
Dernière intervention
10 juillet 2002

Ok j'applique mon ordre à un objet Connexion

Ca donne :

ConPoint.Execute strMAJ

Mais ça ne résoud pas mon problème, car la même erreur ressort.
0
Messages postés
3
Date d'inscription
lundi 8 juillet 2002
Statut
Membre
Dernière intervention
10 juillet 2002

Je me réponds à moi-même.

Il semblerait que ce soit dû au format de table. En clair, la syntaxe purement sql d'une des requêtes était fausse.

En sql, j'aurai récupéré une erreur type : "format invalide". Mais en VB, elle ressort comme une erreur 3146, ce qui a faussé mon jugement.
0
Messages postés
23
Date d'inscription
vendredi 6 avril 2012
Statut
Membre
Dernière intervention
24 juillet 2012

bonjour,

j'ai téléchargé mySql Driver 3.51 pour pouvoir exporter ma base des données access vers mysql. et lors de l'exportation j'ai l'erreur 1153 Paquet plus grand que 'max_allowed_packet' reçu.

ma base des données access contient des OBJET OLE (des images) il m'importe la table mais pas les données comment dois je faire?

et aussi mySql ODBC me permet pas d'utliser une base de données créer sur PHPadmin... comment je peux faire pour selectionner une dataset sur la fenetre mySql driver parce qu'il me donne juste la base test et information schema.

merci
0