Man kann es kaum glauben, aber Programmieren hat tatsächlich etwas mit Mathematik zu tun.
Und wie schonmal erwähnt, fehlt noch der
Rest.
Delphi-Quellcode:
procedure TForm1.InputDataset3Click(Sender: TObject);
const
Anzahl = 30;
var
StartZeit, StopZeit: TDateTime;
i, i2: Integer;
begin
StartZeit := Now;
Screen.Cursor := crHourGlass;
ZConnection.Database := 'c:\msql\firedb.fdb';
ZQuery1.SQL.Clear;
for i2 := 0 to Anzahl - 1 do
ZQuery1.SQL.Add(Format('INSERT INTO dat12006 (Begriff, Frage) VALUES (:v%d, :v%d);', [i2 * 2, i2 * 2 + 1]));
for i := 0 to SG1.RowCount div Anzahl - 1 do begin
for i2 := 0 to Anzahl - 1 do begin
ZQuery1.Params[i2 * 2 + 0].Value := SG1.Cells[0, i * Anzahl + i2];
ZQuery1.Params[i2 * 2 + 1].Value := SG1.Cells[1, i * Anzahl + i2];
end;
ZQuery1.ExecSQL;
end;
//ZQuery1.SQL.Text := 'INSERT INTO dat12006 (Begriff, Frage) VALUES (:v0, :v1);';
//for i := SG1.RowCount div Anzahl * Anzahl to SG1.RowCount - 1 do begin
// ZQuery1.Params[0].Value := SG1.Cells[0, i];
// ZQuery1.Params[1].Value := SG1.Cells[1, i];
// ZQuery1.ExecSQL;
//end;
if SG1.RowCount mod Anzahl > 0 then begin
ZQuery1.SQL.Clear;
for i2 := 0 to SG1.RowCount mod Anzahl - 1 do
ZQuery1.SQL.Add(Format('INSERT INTO dat12006 (Begriff, Frage) VALUES (:v%d, :v%d);', [i2 * 2, i2 * 2 + 1]));
i := SG1.RowCount div Anzahl;
for i2 := 0 to SG1.RowCount mod Anzahl - 1 do begin
ZQuery1.Params[i2 * 2 + 0].Value := SG1.Cells[0, i * Anzahl + i2];
ZQuery1.Params[i2 * 2 + 1].Value := SG1.Cells[1, i * Anzahl + i2];
end;
ZQuery1.ExecSQL;
end;
Screen.Cursor := crDefault;
StopZeit := Now;
Panel1.Caption :='SuchZeit : ' + FormatDateTime('nn:ss:zzz', StopZeit - StartZeit) ;
end;
PS: Mit einer ordentlichen Einrückung braucht man kaum noch kommentare, um die Zusammenhänge zu erkennen. (wie z.B. wozu das END gehört)