?
Hallo,
da keine Antwort auf mein Problem mehr kommt und ich daraus schließe, das niemand eine Idee hat, warum das nicht funkt, melde ich mich nochmal mit meiner jetztigen Lösung.
Ich habe zwei statische ADODataSet's definiert und weise in der entsprechenden Funktion die Werte zu:
void __fastcall Tkorrekturen::okClick(TObject *Sender)
{
try
{
s_data->CommandText ="select * from "+Gettable()+"stamm where sign = '"+Fsig+"' order by sigow";
s_data->Open();
for(int x=1; x<3; x++)
{
if(s_data->Locate("walznr", (Variant)grid->Cells[grid->ColCount-1][x], TLocateOptions()))
{
b_data->CommandText = "select * from "+Gettable()+"bestand where walznr = '"+
s_data->FieldByName("walznr")->AsString+"'";
b_data->Open();
s_data->Edit();
b_data->Edit();
for(int c=1; c<grid->ColCount; c++)
{
if(grid->Cells[c][0].LowerCase().Pos("max")>0)
s_data->FieldByName("maxdrm")->AsFloat = StrToFloat(grid->Cells[c][x]);
if(grid->Cells[c][0].LowerCase().Pos("aktuell")>0)
b_data->FieldByName("aktdrm")->AsFloat = StrToFloat(grid->Cells[c][x]);
if(grid->Cells[c][0].LowerCase().Pos("radius")>0)
b_data->FieldByName("radius")->AsFloat = StrToFloat(grid->Cells[c][x]);
if(grid->Cells[c][0].LowerCase().Pos("winkel")>0)
b_data->FieldByName("flankenwinkel")->AsFloat = StrToFloat(grid->Cells[c][x]);
}
if(x == 2 && Fzapfen)
b_data->FieldByName("zapfen_neu")->AsBoolean = z->Checked;
try
{
s_data->Post();
b_data->Post();
b_data->Close();
}
catch(const Exception &E)
{
MainForm->LMDMessage->Execute("Walzendaten korrigieren",
"Fehler:\n\n"+E.Message+"\n\nDie Änderungen an den Stamm- bzw. Bestandsdaten "
"wurden nicht ausgeführt.", NULL, mtInformation, TMsgDlgButtons() << mbOK, 0,0,0,0,0);
ModalResult = mrNone;
}
}
else
MainForm->LMDMessage->Execute("Walzendaten korrigieren",
"Fehler:\n\nWalzennummer nicht gefunden.", NULL,
mtInformation, TMsgDlgButtons() << mbOK, 0,0,0,0,0);
}
}
__finally
{
s_data->Close();
b_data->Close();
}
}
//---------------------------------------------------------------------------
So werden die betreffenden Tabellen korrekt geändert.
Gruß Udo