AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verwendung von TZUpdateSQL
Thema durchsuchen
Ansicht
Themen-Optionen

Verwendung von TZUpdateSQL

Ein Thema von hsbc · begonnen am 6. Jul 2006 · letzter Beitrag vom 6. Jul 2006
Antwort Antwort
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

Verwendung von TZUpdateSQL

  Alt 6. Jul 2006, 07:33
Datenbank: Firebird • Version: 1.5.3 • Zugriff über: ZEOS
Ich verwende derzeit zum Einfügen eines neuen Datensatzes folgende Routine, welche auch einwandfrei funktioniert:

Delphi-Quellcode:
with DatenModul.ZQuery_Buchung do begin
  SQL.Clear;
  SQL.Add('INSERT INTO BUCHUNG (BUNR, ZIMMERNR, DATUM, KUNDENNR, PREIS, ANZPERSONEN) ' +
          'VALUES (:BuNr, :ZimmerNr, :Datum, :KundenNr, :Preis, :AnzPers);');

  Params.ParamByName('ZimmerNr').AsInteger := _ZimmerNr;
  Params.ParamByName('Datum').AsDate := _Datum;
  Params.ParamByName('KundenNr').AsInteger := _KundenNr;
  Params.ParamByName('Preis').AsFloat := _Preis;
  Params.ParamByName('AnzPers').AsInteger := _AnzPers;
end;

try
  DatenModul.ZQ_Buchung.ExecSQL;
except
  ShowMessage('Fehler beim Buchen');
end;
Jetzt zu meiner Frage:

Wofür sollte ich besser die Komponente TZUpdateSQL verwenden, bzw. wie verwende ich diese richtig. Ich habe mal versuchsweise eine TZUpdateSQL auf mein DatenModul gezogen und das ZQuery damit verbunden. Danach habe ich die obigen 5 Params-Zeilen in die TZUpdateSQL gelegt. Die SQL-Anweisung habe ich ebenfalls in die TZUpdateSQL unter InsertSQL verschoben. Danach hat nichts mehr funktioniert.

Was mache ich da falsch bzw. wie macht man das richtig, vor allem wie führe ich ein INSERT durch? Funktioniert dies dann ebenfalls mit DatenModul.ZQ_Buchung.ExecSQL ? Wie weiss der Query.ExecSQL dann was er machen soll, zumal ja in der ZUpdateSQL sowohl UPDATE, INSERT und MODIFY ausgeführt werden kann? Fragen über Fragen...

Hat sich hier jemand schon mal näher damit beschäftigt?

mfg
Herbert
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Verwendung von TZUpdateSQL

  Alt 6. Jul 2006, 08:09
In die Query-Komponente gehört die Select-Anweisung und in die jeweiligen Abschnitte in der UpdateSQL-Kompo die Insert, Update, delete-Statements.
Markus Kinzler
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#3

Re: Verwendung von TZUpdateSQL

  Alt 6. Jul 2006, 11:16
Und wohin gehört die ExecSQL-Anweisung ?

Ich habe das mal so geändert, aber so geht das dann nicht mehr. Es kommt zwar keine Fehlermeldung, das INSERT wird aber nicht durchgeführt. Die ZQuery_Buchung ist mit der ZUpdateQuery_Buchung verbunden.

Delphi-Quellcode:
with DatenModul.ZUpdateQuery_Buchung do begin
  InsertSQL.Clear;
  InsertSQL.Add('INSERT INTO BUCHUNG (BUNR, ZIMMERNR, DATUM, KUNDENNR, PREIS, ANZPERSONEN) ' +
    'VALUES (:BuNr, :ZimmerNr, :Datum, :KundenNr, :Preis, :AnzPers);');

  Params.ParamByName('ZimmerNr').AsInteger := _ZimmerNr;
  Params.ParamByName('Datum').AsDate := _Datum;
  Params.ParamByName('KundenNr').AsInteger := _KundenNr;
  Params.ParamByName('Preis').AsFloat := _Preis;
  Params.ParamByName('AnzPers').AsInteger := _AnzPers;
end;

try
  DatenModul.ZQuery_Buchung.ExecSQL;
except
  ShowMessage('Fehler beim Buchen');
end;
Irgendetwas verstehe ich hier noch falsch. Ich sehe in meinem Code auch keinen Vorteil, ausser dass ich noch zusätzlich eine TZUpdateSQL-Komponente verwenden muss.

mfg
Herbert
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Verwendung von TZUpdateSQL

  Alt 6. Jul 2006, 11:33
Zitat:
Und wohin gehört die ExecSQL-Anweisung ?
Nirgens.

UpdateSQL bildet den DataSet-Mechanismus für Datenbanken an, welche keine Updatable Views unterstützen.

D.h. es sind dann Veränderungen an der Datenmenge einer Query-Komponente direkt möglich ( Verknüpfung von datensensitiven Controls oder explizit durch Query.Append, Query.Insert; usw.)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: Verwendung von TZUpdateSQL

  Alt 6. Jul 2006, 11:41
Bei Firebird kommt man aber gut ohen TZUpdadeSQL aus. Die Eintabellenstatements sind normalerweise edierbar.

Grüße // Martin
Martin Schaefer
  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 07:49 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