AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Direkteintrag in feld per Zeos
Thema durchsuchen
Ansicht
Themen-Optionen

Direkteintrag in feld per Zeos

Ein Thema von scuby · begonnen am 7. Apr 2008 · letzter Beitrag vom 7. Apr 2008
Antwort Antwort
scuby

Registriert seit: 31. Jul 2005
122 Beiträge
 
#1

Direkteintrag in feld per Zeos

  Alt 7. Apr 2008, 11:41
Datenbank: Firebird • Version: 2.0 • Zugriff über: 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:
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 := '';
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....

LG
Scuby
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Direkteintrag in feld per Zeos

  Alt 7. Apr 2008, 11:49
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.
Markus Kinzler
  Mit Zitat antworten Zitat
scuby

Registriert seit: 31. Jul 2005
122 Beiträge
 
#3

Re: Direkteintrag in feld per Zeos

  Alt 7. Apr 2008, 12:33
ok soweit geht das...aber jetzt kommt er mir mit inkompatiebele Typen, welches nicht sein kann, wenn ich auf Button6 klicke....

Delphi-Quellcode:
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.
Matnr1 = Integer
Vnr1 = Integer

Matnr = Integer
VNR = Integer

*Ich weiß Code etwas wirr aber eigentlich ging das so...*
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#4

Re: Direkteintrag in feld per Zeos

  Alt 7. Apr 2008, 12:38
s := 'INSERT INTO studvera (Matnr1, vnr1) VALUES ('+#39+ mat +#39+','+#39+ a +#39+')'; Du kannst einem string keine integer-Werte einfach so zuweisen. Der Debugger hilft übrigens bei solchen Situationen ungemein.

Gruß

Calculon
--
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Direkteintrag in feld per Zeos

  Alt 7. Apr 2008, 12:45
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz