Autor Beitrag
Josef-B
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 293

2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
BeitragVerfasst: Mi 07.05.03 18:58 
Das ist dann meine letzte Frage für heute:

Bei IBDATASET gibt es ja die Eigenschaften
SelectSQL, InsertSQL, ModifySQL und DeleteSQL.
Hierin kann man ja die gewünschten Anweisungs-String eintragen.

Die Frage ist, wie werden diese Anweisungen dann ausgelöst?
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 07.05.03 19:25 
Die werden automatisch in Zusammenhang z.B. mit einem DBGrid ausgelöst. Da werden dann auch so Parameter verwendet, wie Du sie schon nachgefragt hast. Für eine schnell geschriebene DB-Anwendung ist das sinnvoll. Aber sobald es größere Projekte sind, greife ich eher zu IBQuery für die Datenauflistung und IBSQL für alle Änderungen an der DB. Da hab ich dann mehr Kontrolle drüber.

Die Anweisungen kannst Du ja automatisch erzeugen lassen, das weißt Du ja?
Josef-B Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 293

2003 Server, Win7, Win8
Delphi 2010 Pro, Firebird 2.5
BeitragVerfasst: Mi 07.05.03 19:38 
Ja das mit der automatischen Erzeugung hab ich verstanden.

Wenn ich jetzt aber einen einzelnen Satz abspeichern will, die Werte habe ich z.b. DBedits, da sind die ja schon den einzelnen Feldern zugewiesen.
Kann man ja sogar einfach rüberziehen, wenn man das IBDATASET einrichtet. Dazu habe ich eigene Buttons: Einer heißt 'Speichern'

Da nehme ich jetzt das Onclick Ereignis. Wie sage ich dem Rechner jetzt, dass der eben diese

IBDATASET1 -SQL - Anweisung ausführen sollen.

IBDATASET1.INSERTSQL. .....?
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 07.05.03 19:55 
Nein, bei allen datensensitiven Komponenten (z.B. die DB****) wird das Feld direkt verändert (solange nichts anderes eingestellt ist). Das Schreiben in die Datenbank machst Du mit einem endgültigen Commit bzw. CommitRetaining, über die für die Datenmenge zuständige Transaktion.
Solltest Du letztere Möglichkeit wählen, solltest Du acht geben, dass ab und zu auch ein Hard-Commit mit anschließendem erneuten Öffnen der Datenmenge gemacht wird.

Willst Du aber von den DB-Kompos abkommen (was ich Dir empfehle, da sie auf die Dauer nicht wirklich flexibel und resourcen-schonend sind) solltest Du Dir selber SQL-Anweisungen zusammenbasteln und diese über IBSQL ausführen.