Einzelnen Beitrag anzeigen

DADAMAN

Registriert seit: 21. Feb 2006
Ort: Rotenburg an der Fulda
9 Beiträge
 
Delphi 6 Professional
 
#3

Re: DBGrid-Feld bearbeiten und Feld mit Daten füllen

  Alt 27. Feb 2006, 10:38
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.
  Mit Zitat antworten Zitat