|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Bonjour,
J'ai réalisé une application frontale Access qui se connecte à un serveur SQL. L'application fonctionne parfaitement sous Access 2003 mais je rencontre un bug sous Access 2007. Ce problème se produit lorsque je copie des tables locales vers des tables temporaires sur le serveur. Pour cela j'utilise le code suivant: Code :
strDestTable contient le nom de ma table temporaire sur le serveur (commencant par ##) Sous Access 2007, le code plante toujours lors de la seconde exécution, même lorsque je l’exécute avec les mêmes paramètres. Cela bug si je mets ces lignes de code à la suite dans la même fonction mais aussi si j'exécute manuellement deux fois d'affilé la fonction... Pour info le volume de données à transférer est faible et cela plante au boute de quelques secondes (ce n'est pas un pb de runtime error) => Est ce que ce problème vous parle? => Comment est ce je pourrais arriver à avoir plus de détails sur l'erreur? (je n'ai que la version Express de SQL server) Merci beaucoup par avance pour votre support
|
||
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
J'ai réalisé plusieurs tests. Voyons si cela peut aider à résoudre cette énigme
J'ai créé une petite fonction toute simple Code :
Si je la ré-exécute avec un nom de table de destination différent (Test2), j'ai l'erreur 3146 "ODBC --call failed". => Dans ce cas la table "Test2" est créé avec les bons champs mais elle est vide... Je peux ensuite essayer autant de fois que je veux la fonction me retourne toujours la même erreur. Cela remarche une et une seule fois seulement après le redémarrage de l'application. J'ai fais ce test sur plusieurs machines (windows XP et 7) et plusieurs serveurs différents (SQL Server 2005 et 2008), le problème est toujours le même (avec Access 2007 full version et runtime version)... ![]() Alors, des pistes pour me guider dans ma recherche de solutions? |
||
|
00
|
|
|
#3 |
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Salut,
J'ai essayé avec une autre de mes base et tout fonctionne correctement (en mettant exactement le même code sur la même machine)!!! J'ai alors tenté de mettre le code dans une nouvelle base vide et là j'ai le même problème (erreur 3146 au deuxième passage). J'ai comparé les paramètres et les références des deux projets et tout me parait identique. Je ne comprends donc pas pourquoi on a deux comportements différents... |
|
00
|
|
|
#4 |
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Bon, je pense avoir trouvé la cause mais je ne la comprends pas vraiment!
Lorsque j'utilise la méthode TransferDatabase pour passer ma table de Access vers SQL server, j'ai une erreur #8107: "IDENTITY_INSERT est déjà défini sur ON pour la table 'Database_Name.dbo.Test1'. Impossible d'effectuer l'opération SET pour la table 'Test2'." C'est donc un problème lié au Numéro Auto. C'est pour cela que je n'avais pas eu l'erreur avec l'autre base... J'ai bien essayé de faire un Mais ca ne marche pas comme je l'aurais souhaité... Et mon problème est que j'ai besoin de transférer des tables avec et sans champs numéro auto... => Savez vous comment contourner ce problème??? |
|
00
|
|
|
#5 |
|
Membre actif
![]() Lionel GarnierConsultant informatique Inscription : octobre 2007 Messages : 134 ![]() |
Je me fait ma conversation tout seul mais ça pourra toujours servir à quelqu'un
Pour contourner le problème que créé des requêtes en convertissant les NuméroAutos en Long (CLng). Et j'exporte ensuite cette requête... Mais si quelqu'un à une autre solution je suis preneur! |
|
00
|
Copyright © 2000-2012 - www.developpez.com