Hai cell,
ich habe mir deinen obigen Code noch einmal angesehen
Eines verstehe ich nicht. Warum machst Du für jede Änderung ein eigenes
.ExecSQL? Viel einfacher, und übersichtlicher, wäre es doch das alles in einem Rutsch zu machen. Auch ist das mit der Funktion
updatesqlz nicht so glücklich.
Um genau helfen zu können müsste man natürlich wissen welche Datenbank Du verwendest und wie Du auf diese zugreiffst.
Ich würde das ganze einfach so machen (die Fehlerprüfungen müssen natürlich noch rein:
Delphi-Quellcode:
begin
Query1.Close;
Query1.SQL.Text :=
'
UPDATE friktionstest ' + #10 +
'
SET ' + #10 +
'
Anfangsgewicht_Scheibe = :pAnfangsgewicht_Scheibe ,' + #10 +
'
Anfangsgewicht_Belag_vorne_oben = :pAnfangsgewicht_Belag_vorne_oben ,' + #10 +
'
Anfangsgewicht_Belag_vorne_unten = :pAnfangsgewicht_Belag_vorne_unten ,' + #10 +
'
Anfangsgewicht_Belag_hinten_oben = :pAnfangsgewicht_Belag_hinten_oben ,' + #10 +
'
Anfangsgewicht_Belag_hinten_unten = :pAnfangsgewicht_Belag_hinten_unten ,' + #10 +
'
Endgewicht_Scheibe = :pEndgewicht_Scheibe ,' + #10 +
'
Endgewicht_Belag_vorne_oben = :pEndgewicht_Belag_vorne_oben ,' + #10 +
'
Endgewicht_Belag_vorne_unten = :pEndgewicht_Belag_vorne_unten ,' + #10 +
'
Endgewicht_Belag_hinten_oben = :pEndgewicht_Belag_hinten_oben ,' + #10 +
'
Endgewicht_Belag_hinten_unten = :pEndgewicht_Belag_hinten_unten ' + #10 +
'
WHERE Testnummer = :pTestnummer';
Query1.ParamCheck := True;
// Parameter verarbeiten. EinParameter
// beginnt in der SQL-Anweisung mit einem :
with Query1
do
begin
ParamByName('
:pAnfangsgewicht_Scheibe').AsFloat := StrToFloat(txtscheibe.Text);
ParamByName('
:pAnfangsgewicht_Belag_vorne_oben').AsFloat := StrToFloat(txtbelagvo.Text);
// Hier die weiteren Parameter für das SET
ParamByName('
pTestnummer').AsInteger := IntToStr (frmtestauswahl.cbotestnummer.Text);
ExecSQL;
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"