Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi NEW bei QInsert bei TFIBDataset (https://www.delphipraxis.net/91196-new-bei-qinsert-bei-tfibdataset.html)

Artur 1. Mai 2007 09:51

Datenbank: Firebird • Version: 2.0 • Zugriff über: lokal / LAN

NEW bei QInsert bei TFIBDataset
 
Guten Morgen,

ich hoffe Ihr (bzw. Eure Autos und Gartentore) habt die Freinacht gut überstanden ;-)

Ich beiße mich gerade ein wenig durch FIBplus durch (ist doch ziemlich anders als mit TIBTable)
Wenn ich ein FIBDataset nehme, dann den SLQSelect setze ('SELECT * FROM kunden') und anschließend im Editor die SQL-Statements Insert-SQLText, Modify, etc. erstellen lasse, erscheinen die Parameter mit :FELDNAME


Wenn ich den gleichen Spaß im Programm mache, setz FIBplus im Insert-SQLTExt ein 'NEW_' davor. Wie werde ich das los?

Delphi-Quellcode:
    with pFIBDataSetClnt do
    begin
      Close;
      SelectSQL.Clear;
      SelectSQL.Add('SELECT * FROM '+SyncTable);
      QInsert.SQL.Text := GenerateSQLText(SyncTable,'db_guid',skInsert,ifsAllFields);
      QUpdate.SQL.Text := GenerateSQLText(SyncTable,'db_guid',skModify,ifsAllFields);
      Open;
    end;





Und kann ich eigentlich die FIBplus Hilfe ins Delphi Hilfesystem einbinden? Das manuelle Suchen statt STRG + F1 nervt ein wenig.

Ciao,

Artur

Hansa 1. Mai 2007 16:26

Re: NEW bei QInsert bei TFIBDataset
 
Was macht denn das GenerateSQLText genau ? Noch nicht gesehen. :shock: Kann aber fast nur daran liegen. Gewöhne dir aber egal wie am besten an, Parameter zu benutzen.

Artur 2. Mai 2007 20:50

Re: NEW bei QInsert bei TFIBDataset
 
Guten Abend, hansa,

das arbeiten mit Parametern ist genau der Sinn von GenerateSQLText.
Damit erstellt FIBPlus die SQL-Texte für die gewünschten Querys (also in dem Beispiel ein SQL-Text um einen Datensatz über einen INSERT einzufügen und ein SQL-Text, um ein UPDATE durchzuführen).

Nur witzigerweise arbeitet das Ganze, wenn man es in der IDE über den Experten macht anders, als wenn man es im Code über die Prozeduren anstößt.

Ich habe jetzt auch gelernt, dass FIBplus beim FIBDataset diese SQL-Texte braucht, damit man mit Feldern wie bei einer IBTable arbeiten kann. Dabei ist das Verhalten aber auch verschiednen: Wenn ich einen parameterisierte SQL-Text verwende, die Parameter mit den Werten fülle und dann QInsert.ExecQuery bzw. QUpdate.ExecQuery ausführe, gibt es bei ein paar Datensätze einen Stringconvert Fehler. Wenn ich das Ganze mit Feldern ähnlich wie bei IBTable mache und dann FIBDataset.Post aufrufe, kommen die Fehler nicht
(Obwohl meine Tabellen nicht ganz koscher sind, denn beim Scrollen mit IBExpert kommen auch Fehler).

Strange, strange....



Ciao,


Artur

Hansa 2. Mai 2007 21:58

Re: NEW bei QInsert bei TFIBDataset
 
Zitat:

Zitat von Artur
...Wenn ich das Ganze mit Feldern ähnlich wie bei IBTable mache und dann FIBDataset.Post aufrufe, kommen die Fehler nicht..

Da liegt eben der Hund begraben. :mrgreen: Vergesse den ganzen IBTable/IBQuery-Kram, so wie die ganze BDE.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 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