Récupération ID après requête insert - odbc

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

Récupération ID après requête insert - odbc

Messagede jc » Mer 24 Aoû 2005 15:24

Bonjour,<BR>J'utilise le driver ODBC pour passer des enregistrements dans la comptabilité ligne 100 via un programme développé en VB.<BR><BR>Tout fonctionne pas de problème.<BR><BR>J'essaye cependant de récupérer le numéro automatique généré lors d'un requête insert.<BR><BR>Merci d'avance
jc
Posteur néophyte
Posteur néophyte
 
Messages: 5
Inscription: Mer 24 Aoû 2005 15:24

Récupération ID après requête insert - odbc

Messagede EricJ » Mer 24 Aoû 2005 16:11

- De quelle(s) table(s) s'agit-il ?<BR>- Aucune requête INSERT ne permettant de récupérer une valeur, il faut donc une requête SELECT pour obtenir la valeur souhaitée.
EricJ
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: Lun 18 Avr 2005 17:29

Récupération ID après requête insert - odbc

Messagede jc » Mer 24 Aoû 2005 16:28

table EC_No<BR>Sur sql Server par exemple, tu peux récupérer la valeur d'un champs auto lors d'un INSERT via une procédure stockée<BR>ex:'SQL='INSERT INTO Test (Test) VALUES ('test'); SELECT <a href='mailto:@@IDENTITY' >@@IDENTITY</a> as ID'<BR>SELECT <a href='mailto:@@IDENTITY' >@@IDENTITY</a> retourne la valeur<BR><BR>Autre exemple, en php, tu ajoute un enregistrement et avec la fonction mysql_insert_id(), tu recupère l'ID<BR><BR>Je me demandeai si une chose similaire existe avec le driver ODBC pour être sûr de rattacher la valeur de EC_No de l'ajout.<BR><BR>Le risque étant qu'un enregistrement vienne d'intercaler entre la requête insert et la requête select.
jc
Posteur néophyte
Posteur néophyte
 
Messages: 5
Inscription: Mer 24 Aoû 2005 15:24

Récupération ID après requête insert - odbc

Messagede EricJ » Mer 24 Aoû 2005 16:42

Si la requête avec la syntaxe <a href='mailto:@@IDENTITY' >@@IDENTITY</a> n'est pas reconnue par le driver ODBC, la manip souhaitée n'est pas possible.<BR><BR>En revanche, il me parait dangereux d'insérer des données dans Sage sans passer par le driver Sage ODBC. En effet, ce dernier effectue les contrôles d'intégrité des données.
EricJ
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: Lun 18 Avr 2005 17:29

Récupération ID après requête insert - odbc

Messagede jc » Mer 24 Aoû 2005 16:53

Relis bien mon premier message<BR>Je passes par l'odbc<BR><BR>le coup du <a href='mailto:@@Identity' >@@Identity</a> est propre a sql server.<BR>c'était un exemple<BR><BR>je t'explique concretement ce que je veux faire:<BR>Je passe des enregistrement dans la compta.<BR>Si demain je veux les supprimer, la meilleure solution et la plus fiable, est de supprimer en recherchant via une clef primaire, unique.<BR>Donc EC_No.<BR>Comme dans la requete Insert, ce champs est renseigné automatiquement, je dois faire une manip pour le récupérer.<BR>Alors ok pour une requete select du dernier ajout...<BR>mais si un user insère entre ma requete Insert et mon select, bah je recupere son EC_Num...<BR><BR>C'est une fonction utilisé dans d'autres langage...<BR>J'invente rien, mais a priori cela n'existe pas ou ce n'est pas compatible avec l'odbc.<BR><BR>Personne n'a d'idée?
jc
Posteur néophyte
Posteur néophyte
 
Messages: 5
Inscription: Mer 24 Aoû 2005 15:24

Récupération ID après requête insert - odbc

Messagede EricJ » Mer 24 Aoû 2005 17:45

Toutes mes excuses, 'jc', pour ne pas maîtriser autant que vous les caractéristiques des SQL server.<BR><BR>Non, je n'ai pas d'autre idée à vous indiquer.
EricJ
Posteur néophyte
Posteur néophyte
 
Messages: 15
Inscription: Lun 18 Avr 2005 17:29

Récupération ID après requête insert - odbc

Messagede jc » Mer 24 Aoû 2005 17:58

non non il n'y as pas à s'excuser.<BR>mon message ne contenait aucune remarque sur tes compétences en SQL Server.<BR>Bien au contraire, je ne peux que te remercier d'y répondre pour m'aider <img src=http://www.zoom.fr/cgi_bin/img/3.gif align=absmiddle>
jc
Posteur néophyte
Posteur néophyte
 
Messages: 5
Inscription: Mer 24 Aoû 2005 15:24

Récupération ID après requête insert - odbc

Messagede denix » Ven 9 Sep 2005 19:16

Peut être en créant un trigger sur la table que tu modifies ? <BR>Depuis ce trigger tu crées une table provisoire dans laquelle tu stockes l'index de INSERTED, et tu la récuperes ensuite depuis ta SP<BR><BR>Jamais essayé, mais je suppose que c'est possible <img src=http://www.zoom.fr/cgi_bin/img/8.gif align=absmiddle>
denix
Posteur néophyte
Posteur néophyte
 
Messages: 8
Inscription: Mer 7 Sep 2005 00:56

Récupération ID après requête insert - odbc

Messagede denix » Ven 9 Sep 2005 19:19

Oops... désolé, ODBC m'est sorti de la tete... je suppose que ma 'solution' est un peu a coté de la plaque.. <BR><BR>Denis
denix
Posteur néophyte
Posteur néophyte
 
Messages: 8
Inscription: Mer 7 Sep 2005 00:56

Récupération ID après requête insert - odbc

Messagede jc » Ven 9 Sep 2005 19:24

Effectivement c'est une solution<BR>Mais je ne suis pas sur que l'odbc accepte ce type de fonctions.<BR>Même la syntaxe Like n'est pas supportée a priori <img src=http://www.zoom.fr/cgi_bin/img/1.gif align=absmiddle><BR><BR>Bon de toute facon j'ai resolu mon probleme en m'assurant qu'aucune insertion ne soit possible avant récupération de l'ID Max.<BR><BR>La rapidité d'éxecution est suffisement correcte pour que la récupération soit correcte.<BR>J'ai ni plus ni moins créé un spooler d'ecritures comptable.<BR><BR>merci pour la réponse
jc
Posteur néophyte
Posteur néophyte
 
Messages: 5
Inscription: Mer 24 Aoû 2005 15:24

Re: Récupération ID après requête insert - odbc

Messagede ldefreitas » Ven 6 Nov 2009 19:54

Bonjour,

J'ai exactement le même problème de récupération du EC_No pour un insert via ODBC.
Dans ton explication de solution, tu indique que tu t'assure qu'aucune insertion ne soit possible avant récupération du Max(EC_No).

Peux-tu indiqué comment tu fais cela ?

Merci d'avance.
ldefreitas
Posteur néophyte
Posteur néophyte
 
Messages: 1
Inscription: Ven 6 Nov 2009 19:50


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités