ich verzweifele: obwohl beim Hinzufügen die ID mit -1 ausgewiesen wird geht das Programm (Debugger) beim Speichern (SavetoDB) in den Bereich UPDATE????
Was ist hier los? Es sollte doch bei -1 nach INSERT gehen. Was mache ich wohl falsch??? Stimmt die Procedure SaveToDB???????
Habe es jetzt neu gefasst:
Delphi-Quellcode:
procedure TCustomerList.SavetoDB(con: TZConnection);
var
zqryMain: TZQuery;
i: Integer;
begin
zqryMain:=TZQuery.Create(nil);
try
zqryMain.connection:=con;
for i := 0 to self.Count-1 do
begin
if self[i].ID>-1 then
begin
zqryMain.SQL.Text:='UPDATE WARENVERKAUF1 SET KDNR=:KNR, NAME =:NAM, VORNAME=:VNA, FIRMA=:FIR, PRODUKT=:PRO, ANZAHL=:ANZ, PREIS=:PRE WHERE ID=:CID';
zqryMain.params.parseSQL(zqryMain.sql.text, True);
zqryMain.Params.ParamValues['CID']:=self[i].ID; //update
zqryMain.params.ParamValues['KNR']:=self[i].KDNR;
zqryMain.params.paramValues['NAM']:=self[i].Name;
zqryMain.params.paramValues['VNA']:=self[i].Vorname;
zqryMain.params.ParamValues['FIR']:=self[i].Firma;
zqryMain.Params.ParamValues['PRO']:=self[i].Produkt;
zqryMain.Params.ParamValues['ANZ']:=self[i].Anzahl;
zqryMain.params.paramValues['PRE']:=self[i].Preis;
zqryMain.ExecSQL;
end;
begin
if self[i].ID=-1 then
begin
zqryMain.SQL.text:='INSERT INTO WARENVERKAUF1(KDNR,NAME,VORNAME,FIRMA,PRODUKT,ANZAHL,PREIS) VALUES(:KNR, :NAM, :VNA, :FIR, :PRO, :ANZ, :PRE)';
zqryMain.params.parseSQL(zqryMain.sql.text, True);
zqryMain.params.ParamValues['KNR']:=self[i].KDNR; //insert
zqryMain.params.paramValues['NAM']:=self[i].Name;
zqryMain.params.paramValues['VNA']:=self[i].Vorname;
zqryMain.params.ParamValues['FIR']:=self[i].Firma;
zqryMain.Params.ParamValues['PRO']:=self[i].Produkt;
zqryMain.Params.ParamValues['ANZ']:=self[i].Anzahl;
zqryMain.params.paramValues['PRE']:=self[i].Preis;
zqryMain.ExecSQL
end;
end;
end;
finally
zqryMain.Free;
end;
end;
Ich habe einen Haltepunt auf
zqryMain.Params.ParamValues['CID']:=self[i].ID; //update
gesetzt und dann geprüft, wass beim Aufruf des Programms und Hinzufügen eines Datensatzes passiert. Leider nicht dass was ich erwartet habe.
Es ist doch nicht zu glauben, dass das letzte Problem einfach nicht klappen soll.
Ich will eigentlich an dieser Stelle nicht aufgeben, doch ich weiss einfach nicht weiter.