![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: ZEOS
Direkteintrag in feld per Zeos
Hi,
ich denke das sollte fix gelöst werden und dann bin ich auch ruhig *gg*.... Da ich erst seid gestern mit Zeos arbeite wollte ich folgendes mit Zeos darstellen...
Delphi-Quellcode:
So sieht es zumindest mit BDE aus, mit Zeos weiß ich allerdings nicht wie ich es realisieren kann einen Wert direkt in ein feld einzutragen....
Query2['Matnr1'] := strtoint(Label9.Caption);
Query2['VNr1'] := strtoint(Label10.Caption); Query2.Append; Query2.Post; Query2.Active := true; showmessage('Student erfolgreich eingetragen!'); Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; LG Scuby |
Re: Direkteintrag in feld per Zeos
Du verbindest den Select-Query mit einer TZUpdateSQL-Kompo. Dort kannst du die entsprechenden Statements für Update, Insert, Delete hinterlegen. Mit Query.Insert/.Update./Delete + Query.Post wird dann das entsprechende Statement ausgeführt.
|
Re: Direkteintrag in feld per Zeos
ok soweit geht das...aber jetzt kommt er mir mit inkompatiebele Typen, welches nicht sein kann, wenn ich auf Button6 klicke....
Delphi-Quellcode:
Matnr1 = Integer
procedure TForm8.Button6Click(Sender: TObject);
var ver,s : string; var mat,a : Integer; procedure TForm8.Button2Click(Sender: TObject); begin zQuery3.First; Label3.Caption := zQuery3.FieldbyName('VName').AsString; Label5.Caption := zQuery3.FieldbyName('VNr').AsString; end; procedure TForm8.Button3Click(Sender: TObject); begin zQuery3.prior; Label3.Caption := zQuery3.FieldbyName('VName').AsString; Label5.Caption := zQuery3.FieldbyName('VNr').AsString; end; procedure TForm8.Button4Click(Sender: TObject); begin zQuery3.Next; Label3.Caption := zQuery3.FieldbyName('VName').AsString; Label5.Caption := zQuery3.FieldbyName('VNr').AsString; end; procedure TForm8.Button5Click(Sender: TObject); begin zQuery3.Last; Label3.Caption := zQuery3.FieldbyName('VName').AsString; Label5.Caption := zQuery3.FieldbyName('VNr').AsString; end; procedure TForm8.Button1Click(Sender: TObject); var m,n,v,s : String; var a,b,c : Integer; begin a:=1; b:=1; c:=1; if edit1.text = '' then a :=1 else a := 0; if edit2.text = '' then b := 1 else b := 0; if edit3.text = '' then c := 1 else c := 0; if (a = 0) and (b = 0) then showmessage('Bitte nur ein Suchkriterium nutzen!'); if (a = 0) and (c = 0) then showmessage('Bitte nur ein Suchkriterium nutzen!'); if (a = 0) and (b = 1) and (c = 1) then m := edit1.text else begin n := ''; v := ''; end; if (a = 1) and (b = 0) and (c = 0) then begin n := edit2.text; v := edit3.Text; end; zquery1.SQL.Text := 'select * from Studenten WHERE (Matnr='+#39+m+#39+') or (Name='+#39+n+#39+' and Vorname='+#39+v+#39+')'; zquery1.open; zQuery1.First; end; procedure TForm8.Button7Click(Sender: TObject); begin zQuery1.First; end; procedure TForm8.Button8Click(Sender: TObject); begin zQuery1.Prior; end; procedure TForm8.Button9Click(Sender: TObject); begin zQuery1.Next; end; procedure TForm8.Button10Click(Sender: TObject); begin zQuery1.Last; end; procedure TForm8.Button6Click(Sender: TObject); var s : string; var ver,mat,a : Integer; begin mat := zQuery1.Fieldbyname('Matnr').AsInteger; ver := zQuery3.Fieldbyname('VNR').AsInteger; zQuery2.SQL.Text := 'select * from studvera'; zquery2.open; s := 'INSERT INTO studvera (Matnr1, vnr1) VALUES ('+#39+ mat +#39+','+#39+ a +#39+')'; zquery2.close; zQuery2.Sql.Clear; zQuery2.Sql.Add(s); zQuery2.ExecSQL; showmessage('Student erfolgreich eingetragen!'); Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; end; procedure TForm8.Edit4Change(Sender: TObject); var s : string; begin s:= 'select * from Veranstaltungen WHERE VName='+#39+Edit4.Text+#39+''; zquery3.close; zQuery3.Sql.Text := s; zQuery3.Active:=true; zQuery3.First; end; end. Vnr1 = Integer Matnr = Integer VNR = Integer *Ich weiß Code etwas wirr aber eigentlich ging das so...* |
Re: Direkteintrag in feld per Zeos
Delphi-Quellcode:
Du kannst einem string keine integer-Werte einfach so zuweisen. Der Debugger hilft übrigens bei solchen Situationen ungemein.
s := 'INSERT INTO studvera (Matnr1, vnr1) VALUES ('+#39+ mat +#39+','+#39+ a +#39+')';
Gruß Calculon -- |
Re: Direkteintrag in feld per Zeos
Du scheinst so einiges nicht verstanden zu haben. Mit Tutorials anschauen meinen wir durchlesen und verstehen.
-Zudem Caste nur wenn notwendig: Man braucht keinen String in einen String, bzw. einen integer in einen Integer wandeln. (.as<Typ> ist ein Cast) besser .Value -Es geht nichts über aussagekräftige Variablennamen. Button6 sagt jedem der, den Code liest sofort was gemacht werden soll -Es gibt hier zudem auch einen Delphi-Tag -Da es sich immer um die gleichen Vorgänge handelt, würde ich die Abfragen parametrisieren. Verwende ein Update-Objekt (TZUpdateSQL) siehe oben. BTW. Dein Code ist Horror egal, ob für Zeos oder BDE. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz