Erreur d'une requete sur interbase

plante20100 Messages postés 2 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 10 août 2005 - 10 août 2005 à 12:03
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006 - 11 août 2005 à 12:31
Bonjour à tous
Voila je voudrais faire une petite appli qui modifie une table interbase (créer une nouvelle colonne). voici mon code :

procedure TForm1.Button1Click(Sender: TObject);
begin
IBQuery1.Create(NIL);
IBDatabase1.create(NIL);
IBDatabase1.connected:=false;
IBDatabase1.DatabaseName:=databasetest;
IBDatabase1.Params.Add('USER_NAME=SYSDBA');
IBDatabase1.Params.Add('PASSWORD='+Password);
IBDatabase1.LoginPrompt:=false;
IBDatabase1.Connected:=true;
with IBQuery1 do
begin
Transaction:=TIbTransaction.Create(Nil);
Transaction.DefaultDatabase:= IBDatabase1;
close;
SQL.Clear;
SQL.add('ALTER TABLE P1XXXXX ADD DEMANDEUR2 varchar(30) NOT NULL');
try
ExecSQL;
Transaction.Commit;
Edit1.Text:='P1.........ok';
except on E:exception do
begin showmessage('marche pas');
Transaction.Rollback;
end;
end;
end;
IBDatabase1.connected:=false;
end;

Bon très bien la tables est bien modifiée mais le problème intervient quand je veux fermer mon appli j'ai une erreur qui me dit: 'Erreur ElistERROR, indice de liste hors limite (0)'

Je sais vraiment pas d'ou ca peu venir. Voila mon code quand je veux fermer mon appli:

procedure TForm1.Button2Click(Sender: TObject);
begin
IBQuery1.Close;
form1.close;
end;

Si quelqu'un à une idée elle est la bien venu parce que là je suis à court....
Merci d'avance

vincent

1 réponse

vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
11 août 2005 à 12:31
Je te conseillerai de télécharger la dernière version des composants
IBExpress et d'utiliser le composant IBScript qui te permet d'exécuter
plusieurs lignes de requêtes.



Je constate également que tu ne fermes pas IBQuery1 après ajouter la
colonne mais que tu fermes directement la base de données. Il y a
peut-être quelque chose là.


Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
Rejoignez-nous