Hi,
ich möchte aus dem stringgrid heraus finden, ob und welche daten verändert wurden.
Ich würde das so realisieren:
alle rows auslesen in den daten verändert wurden und diese dann in variablen speichern.
bei speichern der daten aus dem grid sollen dann die rows nach und nach aktualisiert werden.
ich wollte die ganzen daten in eine label schreiben, was auch funktioniert, ich konnte dann aber der label nicht nach den werten auslesen.
also versuche ich das jetzt über arrays, was leider noch nicht nach meinen wünschen funktioniert, aber sehet selbst:
Delphi-Quellcode:
procedure TForm1.stringgrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
var n:array of word;
i:integer;
s:word;
begin
arow:=StringGrid1.Row; //die reihe wird ermittelt, in der was geändert wurde
setlength(n,100);
for s:=1 to high(n) do
begin
n[s]:=arow; //soll in eine array übergeben werden
n[s]:=n[s+1]; // für den nächsten datensatz den array erhöhen
end;
showmessage(inttostr(n[s])); //--> es wird der falsche wert ausgegeben (4435)
end;
die variablen soll dann gespeichert werden und an die speicher procedure weitergeben werden.
Delphi-Quellcode:
for k:=n[1] to n[max] do
begin
IBstoredproc2.Params[0].AsString:= stringgrid1.Cells[1,k];
IBstoredproc2.Params[1].asstring:= stringgrid1.Cells[2,k];
IBstoredproc2.Params[2].asstring:= stringgrid1.Cells[3,k];
IBstoredproc2.Params[3].asstring:= stringgrid1.Cells[4,k];
IBstoredproc2.Params[4].asstring:= stringgrid1.Cells[5,k];
IBstoredproc2.Params[5].asstring:= stringgrid1.Cells[6,k];
IBstoredproc2.Params[6].asstring:= stringgrid1.Cells[7,k];
IBstoredproc2.Params[7].asstring:= stringgrid1.Cells[8,k];
IBstoredproc2.ExecProc;
ibtransaction1.Commit;
IBTransaction1.Active := True;
ibdataset1.Open;
k:=n[next];
end;
schaut ziehmlich chaotisch aus. Wäre gut wenn ihr mir bei ordnen helfen könntet.
THx,
Plautzer