AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FIBPLus, DataSet Insert klappt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

FIBPLus, DataSet Insert klappt nicht

Ein Thema von hoika · begonnen am 11. Aug 2009 · letzter Beitrag vom 11. Aug 2009
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

FIBPLus, DataSet Insert klappt nicht

  Alt 11. Aug 2009, 08:48
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus
Hallo #,

folgenden Code habe ich hier

Delphi-Quellcode:
dt: TpFIBDataSet

with dt do
begin
  SelectSQL.Text:= 'Insert Into Table1'  usw.
  Open;
end;
Es wird aber nichts eingetragen.

OK, ich gehe über SelectSQL statt InsertSQL,
aber muss ich denn jetzt selber jedes SQL-Statement
in das richtige SQL-Dingens reinfummeln ?

Da ich ja die BDE ersetze, würde das heissen,
jede einzelne Abfrage zu prüfen.

So hatte ich mir das mit FIBPlus aber nicht vorgestellt ;(


Da ich jetzt eh einen abgeleitete Klasse habe,
könnte ich ja noch was dran drehen (über StatementType),
nur habe ich noch nicht ein einziges Example gefunden,
wie ich eine im InsertSQL befindliche Abfrage zum Server schicke.
Über Open geht es schon mal nicht, der sucht im SelectSQL.

In den eigentliche Quellen steht was wie

DataSet.QInsert.ExecQuery;

Das kann es doch nicht sein, oder ?


Hilfe !

Danke


Heiko
Heiko
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#2

Re: FIBPLus, DataSet Insert klappt nicht

  Alt 11. Aug 2009, 09:34
im "Normalfall" FibDataSet aufs Formular oder DatenModul ziehen -
rechte Maustaste - "SQL Generator" - und dort alles weitere.

Wenn du die DataSets dynamisch erzeugen willst, dann steht
folgendes in der FibPlus-Hilfe:
Zitat:
TpFIBDataSet.GenerateSQLs

Generates SQLs for inserting, updating, deleting and refreshing records.

procedure GenerateSQLs;

Description

Call the GenerateSQLs procedure to fill the InsertSQL, UpdateSQL, DeleteSQL and RefreshSQL properties. The condition for WHERE construction is made in the following way: at first, the AutoUpdateOptions .KeyFields value is checked. If it is not empty the fields from AutoUpdateOptions.KeyFields are inserted into WHERE condition. Otherwise the existence of a primary key in a table is checked. If it is found the WHERE condition is build by primary key fields. If nothing above-mentioned has happened, all fields are inserted in WHERE condition.

The dataset must be open before calling the GenerateSQLs procedure.
Die üblichen Methoden des DataSets (ds.Open, ds.Append, ds.Edit, ds.Delete ds.Refresh) verwenden dann die entsprechenden SQL-Statements.
Dabei laufen ds.Open und ds.Refresh im Context der Property ds.Transaction, während
ds.Append, ds.Edit und ds.Delete die ds.UpdateTransaction verwenden.

alex
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: FIBPLus, DataSet Insert klappt nicht

  Alt 11. Aug 2009, 09:41
Hallo,

habe zwar FibPlus gerade nicht da, aber ein INSERT Statement wird normalerweise mit Execute und nicht mit Open ausgefüht, da es ja keine Datenmenge zurückgibt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: FIBPLus, DataSet Insert klappt nicht

  Alt 11. Aug 2009, 13:34
Hallo,

Zitat:
im "Normalfall" FibDataSet aufs Formular oder DatenModul ziehen
Komponenten auf Forms/DM ??
neeeh
Dazu habe ich eigene DB-Klassen, dass lässt sich dann auch besser
per dUnit testen.

#MrSpock:
Bei FIBPlus ist es leider etwas anders


Lösung:
Ich habe mir ein DataSet abgeleitet,
dort ein SQL: TStrings definiert, was die Daten in das SelectSQL schickt.
Und ein ExecSQL (Name in der BDE) ruft QSelect.ExecQuery auf.

Ist jetzt leider langsamer als die Original-BDE,
weil jede Query über TXDataSet läuft,
auch die Modify-Queries (I/U/D).


Heiko
Heiko
  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 04:42 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