![]() |
Re: SQL ANweisung liefert leere Datenmenge
Hallo,
um mal zu den Parametern zu kommen:
Delphi-Quellcode:
sieht hübsch aus, keine blödes ""
with Query do
begin SQL.Clear; SQL.Add('Select * From Stammdaten'); SQL.Add('Where Name=:Name'); ParamByName('Name').AsString:= 'Juhu'; Open; try if QueryIsNotEmpty ... finally Close; end; end; und nun weiter
Delphi-Quellcode:
Das Datum wird auf jeden Fall korrekt übergeben,
with Query do
begin SQL.Clear; SQL.Add('Select * From Stammdaten'); SQL.Add('Where Datum=:TheDate'); ParamByName('TheDate').AsDateTime:= EncodeDate(2009,3,4); Open; try if QueryIsNotEmpty ... finally Close; end; end; egal wie es intern gespeichert wird. Ein weiterer Vorteil, Prepare.
Delphi-Quellcode:
Die Query muss nur 1 mal prepared werden (das dauert je nach Komplexität der Query etwas),
with Query do
begin SQL.Clear; SQL.Add('Select * From Stammdaten'); SQL.Add('Where Name=:Name'); Prepare; for i:= 1 to 5 do begin ParamByName('Name').AsString:= 'Juhu'+IntToStr(i); Open; try if QueryIsNotEmpty ... finally Close; end; end; end; wird dann 5mal mit unterschiedlichen Parametern benutzt. Je nach DB bringt das ne Menge Geschwindigkeit (unter Firebird bei mir + 50%) Noch mal zu PK kenne ich nicht, Indexfeld auch nicht. Den PK bekommt man u.U. raus (steht in den System-Tabellen) Um Änderungen an einem Datensatz zu erkennen, deen Felder du erst zur Laufzeit kennst, dessen DB du auch erst zur Laufzeit kennst, dessen DB-Struktur du nicht ändern kannst -> gute Nacht. ;) Ne, im Ernst. Schau dir mal das NULL-Tutorial unter ibphoenix.com an, ist nicht so einfach. Ich würde viell. den Datensatz des PK (er muss da sein !!!) komplett laden und mit dem alten (vorher sichern) vergleichen. Heiko |
Re: SQL ANweisung liefert leere Datenmenge
Aber woher soll ich wissen welches Feld welchen Typ hat? Ich muß doch einmal alle Felder auslesen und bei jedem Feld den Typ erfragen. Nur dann kann ich doch die Parameter füllen.
Was macht die Funktion Prepare? Denn beim TADODataSet gibts diese Funktion nicht. |
Re: SQL ANweisung liefert leere Datenmenge
Zitat:
|
Re: SQL ANweisung liefert leere Datenmenge
Hallo,
was du willst, geht einfach nicht. Akzeptier es einfach. Du musst schon irgendwas über die DB/Tabelle wissen. Die Datentypen einer Tabelle stehen in den System-Tabellen der jeweiligen Datenbank. Es gibt aber keine einheitliche regelung. Da macht jeder DB-Hersteller, was er will. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz