Hi und danke
Ja, dass
BDE und
MSSQL nicht wirklich optimal sind, hab ich schon des öfteren gelesen, aber ich muss die beiden Sachen leider benutzen, da alle anderen Projekte hier auch schon auf diese Kombi setzen.
Mmmh, um die Struktur nochmal zu verdeutlichen. Im Prinzip dreht es sich um zwei Tabellen. Die eine enthält Artikelnummern und Bezeichnungen, die andere enthält dasselbe plus eine ID, die den Datensatz einem Protokoll zuordnet.
Die Tabelle in der die ProtokollID gespeichert ist, wird mittels einer
Query, wo RequestLive auf true gesetzt ist, im angesprochenen DBGrid angezeigt.
Trägt man jetzt eine Artikelnummer in die erste Spalte ein, dann soll aus der anderen Tabelle die dazugehörige Bezeichnung ausgelesen werden und in die andere Tabelle kopiert werden.
Und das funktioniert mit dem ColEnter-Ereignis momentan eher schlecht als Recht.
Delphi-Quellcode:
if DBGrid_Komponenten.SelectedIndex = 1 then
begin
Datenbank.Hole_Bezeichnung.ParamByName('ArtikelNr').AsString := DBGrid_Komponenten.DataSource.DataSet.FieldByName('ArtikelNr').AsString;
Datenbank.Hole_Bezeichnung.Open;
DBGrid_Komponenten.SelectedField.Value := Datenbank.Hole_Bezeichnung.FieldByName('Bezeichnung').AsString;
Datenbank.Insert_Komponente.ParamByName('ID').AsInteger := ID;
Datenbank.Insert_Komponente.ParamByName('ArtikelNr').AsString := Datenbank.Hole_Bezeichnung.FieldByName('ArtikelNr').AsString;
Datenbank.Insert_Komponente.ParamByName('Bezeichnung').AsString := Datenbank.Hole_Bezeichnung.FieldByName('Bezeichnung').AsString;
Datenbank.Insert_Komponente.ExecSQL;
Datenbank.Hole_Bezeichnung.Close;
Datenbank.Hole_Komponenten.Close;
Datenbank.Hole_Komponenten.Open;
end;
Aber dir
Query um das in die Datenbank einzufügen scheint eh überflüssig zu sein wenn ichs mir recht überlege, da es ja auf RequestLive steht... Irgendwie bin ich grad voll verwirrt und komm nicht weiter.