bonjour à tous,
Voila mon problème est simple, je veux accéder à une base interbase et créer une nouvelle colonne dans une table existante.
voila mon code:
Quand j'exécute, tout ce passe bien, ma table est bien modifié, mais quand je veux fermer mon application j'ai un message d'erreur: 'Erreur ElistERROR, indice de liste hors limite (0)'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 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;
J'ai lu que ce type d'erreur se produisait quand on faisait des requetes en utilisant les parameters, ce qui n'ait pas mon cas.
Le plus curieux dans cette histoire c'est que la commande SQL est exécutée....
Voila merci d'avance pour vos lumières sur ce problème.
vince
Partager