Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai une application qui importe des données d'un fichier texte et les dispatche dans diverses DW pour insert en base. Ces fichiers proviennent d'un prestataire exterieur à intervalle plus ou moins réguliers, mon appli "sniffe" donc le répertoire pour détecter la présence de ces fichiers.
Il arrive parfois que l'ordre d'update maDW.Update(True, False) me retourne -1 alors que l'ordre SQL exécuté est correct (si je l'exécute directement, aucun problème). Je n'ai aucun autre message d'erreur, mes update properties sont bien en Key Column / Use update, ma PK est correcte. Et surtout, cela se produit de façon hiératique, par exemple ce matin j'avais 7 fichiers à importer, un seul dysfonctionnait alors que son contenu était aussi valide que les autres. Je suis donc perplexe, car je n'ose pas outrepasser l'information de retour de l'ordre d'Update (quand même, ça ne se fait pas...)
Environnement :
Powerbuilder 9
SQL Server 2000
Microsoft Windows XP SP3
Dernière modification par sbouvetJD (11-05-2012 16:13:25)
Hors ligne
Est ce que une champ contenant le sysdate fait partie du PK
Hors ligne
Non, la PK est constituée d'un champ de type long et de 3 champs de type string (resp. 2 car., 1 car., 1 car.... C'est historique)
Hors ligne
Bonjour sbouvetJD.
Tu n'aurais pas un problème d'accès concurrent à ta table, avec un batch tournant dessus au moment de l'intégration de tes fichiers par exemple,
ou un trigger?
Sinon, tu peux essayer en changeant l'update properties de ta datawindow en "Delete then Insert" au lieu de "Use Update".
Hors ligne
Salut, une question comme çà: que disent SQLCA.SQLCODE, SQLCA.SQLERRTEXT après le update( ) qui retourne -1 ?
Hors ligne
Le SQLText est vide. Je n'affiche effectivement pas le SQLCode dans mon log, je vais l'ajouter de ce pas. Mais ce qui est curieux c'est que cela se produit de façon assez exceptionnelle et que l'INSERT à la main se passe bien. Je tenterai d'éplucher plus avant les fichiers importés.
Piste (vu avec mon DB) : une SP en permission denied qui poserait problème éventuellement. A confirmer.
Hors ligne