Insertion ou mise à jour impossible... - Delphi/Pascal - Programmation
Marsh Posté le 28-07-2005 à 14:16:59
J'ai pas de de solution, mais peut-etre des idée
- Certains comportement anormaux disparaissent en utilisant les objets ADO à la place des BDE (question de driver, je supose)
- Je sais que c'est une question idiote mais.... quand tu execute ton "insert..." directement dans sybase, ça marche?
- Si tu n'execute une requete qu'une fois, la commande Prepare est inutile (on sais jamais. C'est peut etre cet ordre qui plante)
sinon, peut-tu etre plus preci? Est-ce l'ordre ExecSQL qui dure indéfiniment (vérifie avec le pas par pas)?
Marsh Posté le 28-07-2005 à 14:24:51
Merci pour tes pistes, c'est sympa!
Alors, dans l'ordre:
-je n'ai jamais utilisé les objets ADO, mais donc en gros tu me les conseilles à la place du BDE?
-la requête marche bien directement dans Sybase en effet...
-si j'utilises ce query plusieurs fois, "prepare" est inutile alors?
-avec un point d'arrêt sur mon "execSQL", alors je me rends compte que c'est bien lui qui mouline en effet!
Merci d'avance!
Marsh Posté le 28-07-2005 à 14:40:27
Dans la doc :
Citation : |
Perso je n'ai jamais utilisé Prepare, je ne savais même pas que ça existait
Marsh Posté le 28-07-2005 à 15:09:27
nicocolas a écrit : Merci pour tes pistes, c'est sympa! |
Sur les cas que j'ai rencontré, l'ADO marche mieu(pas mal de bug en moin) , mais plus lentement. Mais j'ésiterait à affirmer que c'est une règle générale
nicocolas a écrit : -la requête marche bien directement dans Sybase en effet... |
- Cette requete tourne-t-elle dans les mème condition? Si ton programme Delphi accede à la base par le reseau et que ton test "en direct" est directement sur le server, ça vien peut etre de là (notamment si tu imbrique un select ou si ton ordre fait 20000 lignes)
- A oui! Plusieur "Insert" séparé par des point virgule, ça passe pas bien!
nicocolas a écrit : -si j'utilises ce query plusieurs fois, "prepare" est inutile alors? |
Ben si, justement! Tu lance "prepare" une fois(avant la boucle), puis la requete plusieur fois (grosso-modo, ça compile la requete)(je me suis jamais amusé à chronometré la diférence)
nicocolas a écrit : |
Mouais.... Si tu construit ta requete avec plusieurs "SQL.add", sauvegarde la requete dans un fichier ("Query1.SQL.SaveToFile" ) pour l'executer séparement, juste pour voir
nicocolas a écrit : Merci d'avance! |
Il vous en pris (d'avance)
Marsh Posté le 28-07-2005 à 17:01:39
Hum, je pense qu'il y a une sorte de conflit entre mon client Sybase et mon prog...
Après avoir relancé mon prog tout seul, les MAJ ont l'air de fonctionner, mais je vais tester un peu plus en détail quand même parce que je me prends d'autres erreurs un peu étranges parfois...
Marsh Posté le 28-07-2005 à 13:48:54
Bonjour,
je travaille avec une base Sybase et le BDE et je n'arrive pas à faire fonctionner mes requétes de modifications de la base...
En fait, la plupart du temps je n'ai pas de message d'erreur, mais mon prog plante car la requête tourne en boucle sans qu'elle aboutisse...
A chaque fois, mon code ressemble à ça:
Code:
with query2 do
begin
Close;
SQL.Clear;
SQL.Add('insert...');
Prepare;
ExecSQL;
end;
Si vous avez la soluce ou une idée, merci d'avance!