cs_Mawie
Messages postés8Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention21 juin 2006
-
30 mars 2004 à 17:42
cbonus2000
Messages postés32Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 2 décembre 2009
-
31 mars 2004 à 15:05
Salut à tous,
j'ai bien pris le temps de lire presque tous les sujets du forum ki s'approchaient plus ou moins de ce ke je cherchait mais en vain.
Voila mon probleme:
Je suis en delphi 5 avec une BDD oracle.
Je souhaite inserer dans ma table le contenu d'une combo.
cs_Mawie
Messages postés8Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention21 juin 2006 30 mars 2004 à 18:03
euh je me suis plantée dans le 1° message d'erreur.
a l'execution de ma requete, le message est:
"Le projet Temps.exe a provoque une classe d'exception EOraError avec le message 'ORA601745:nom de variable de lien/d'accueil non valide. Processus stoppé..."
voila desolee pour l'erreur. :shy)
a bientot j'espere, c assez urgent qd meme :kisses)
cbonus2000
Messages postés32Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 2 décembre 2009 30 mars 2004 à 19:34
Salut,
et voici..
au lieu d'utiliser des params, tu peux tapper directement ta valeur dans la requête....
par exemple:
//pareil ton exemple...
Query.Close;
Query.SQL.Clear;
Query.Add( 'INSERT INTO TEMPS.TPS(TEMPS.TPS_MAT, TEMPS.TPS_DATE, TEMPS.TPS_DOSSIER, TEMPS.TPS_DESC, TEMPS.TPS_CLI)');
Query.Add(' VALUES (');
//ajouter ici les valeurs dans le chaine de caractères
Query.Add(' 3,');
Query.Add('''' + dbedtDate.Text + ''',' );
Query.Add('''' + dbcboDossier.Text + ''',' );
etc...
Query.Add(' ) ');
Query.ExecSQL;
Ou sinon, si tu veux utiliser des paramètres, tu fais comme tu faisais, mais tu dois créer tes paramètres (TParams) au runtime avant de les affectés... un peu plus complexe et moins clair...
By the way, la solution 1 devriat régler ton problème, si j'ai bien saisi ton prob.
_______
Bonus
cbonus2000
Messages postés32Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 2 décembre 2009 30 mars 2004 à 19:37
J'oubliais,
la raison des '''' dans Query.Add('''' ...
c'est lorsque tu insères un champs qui est une chaine de caractère, tu dois formatter ta string pour qu'elle insère une chaine
comme en Sql normal Insert into ... values ('Allo','salut',4)
Allo est entre apostrophe... et si c'est un chiffre, tu ne fais que mettre ton texte sans apostrophe...
cbonus2000
Messages postés32Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 2 décembre 2009 31 mars 2004 à 15:04
Salut,
je vais t'avouer ne pas vraiment connaitre le Sql de Oracle et ces subitilités, donc en ce qui concerne l'erreur :'ORA-01722: Nombre non valide', je ne peux plus ou moins t'aider.
Seulement un conseil, si tu veux bien et facilement te déboguer, essai de faire un insertion manuelle dans ta bd, la même requête mais exécuté au lieu par un programme delphi par un exécuteur de script sql. Si sa plante, le problème est au niveau de la syntaxe. Sinon, essai d'insérer un champs à la fois, insérer que le premier champs. Si sa passe, inséere en un deuxieme, etc...
Puis fais un Prepare, peut-être que tu dois en faire un. Query.Prepare. Une autre chose, ton query est créer au runtime ou design time? Au design time, si tu remplis la composante à bras, cela fonctionne t-il? Sa Databaname est bien configurer, et ouverte, active?
à ce niveau là, je ne peux pas vraiment plus t'aider, la balle est dans ton camps...
cbonus2000
Messages postés32Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 2 décembre 2009 31 mars 2004 à 15:05
Salut,
je vais t'avouer ne pas vraiment connaitre le Sql de Oracle et ces subitilités, donc en ce qui concerne l'erreur :'ORA-01722: Nombre non valide', je ne peux plus ou moins t'aider.
Seulement un conseil, si tu veux bien et facilement te déboguer, essai de faire un insertion manuelle dans ta bd, la même requête mais exécuté au lieu par un programme delphi par un exécuteur de script sql. Si sa plante, le problème est au niveau de la syntaxe. Sinon, essai d'insérer un champs à la fois, insérer que le premier champs. Si sa passe, inséere en un deuxieme, etc...
Puis fais un Prepare, peut-être que tu dois en faire un. Query.Prepare. Une autre chose, ton query est créer au runtime ou design time? Au design time, si tu remplis la composante à bras, cela fonctionne t-il? Sa Databaname est bien configurer, et ouverte, active?
à ce niveau là, je ne peux pas vraiment plus t'aider, la balle est dans ton camps...
cbonus2000
Messages postés32Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 2 décembre 2009 31 mars 2004 à 15:05
Salut,
je vais t'avouer ne pas vraiment connaitre le Sql de Oracle et ces subitilités, donc en ce qui concerne l'erreur :'ORA-01722: Nombre non valide', je ne peux plus ou moins t'aider.
Seulement un conseil, si tu veux bien et facilement te déboguer, essai de faire un insertion manuelle dans ta bd, la même requête mais exécuté au lieu par un programme delphi par un exécuteur de script sql. Si sa plante, le problème est au niveau de la syntaxe. Sinon, essai d'insérer un champs à la fois, insérer que le premier champs. Si sa passe, inséere en un deuxieme, etc...
Puis fais un Prepare, peut-être que tu dois en faire un. Query.Prepare. Une autre chose, ton query est créer au runtime ou design time? Au design time, si tu remplis la composante à bras, cela fonctionne t-il? Sa Databaname est bien configurer, et ouverte, active?
à ce niveau là, je ne peux pas vraiment plus t'aider, la balle est dans ton camps...