AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL ANweisung liefert leere Datenmenge
Thema durchsuchen
Ansicht
Themen-Optionen

SQL ANweisung liefert leere Datenmenge

Ein Thema von Moony · begonnen am 3. Mär 2009 · letzter Beitrag vom 4. Mär 2009
 
hoika

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

Re: SQL ANweisung liefert leere Datenmenge

  Alt 4. Mär 2009, 14:09
Hallo,

um mal zu den Parametern zu kommen:

Delphi-Quellcode:
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;
sieht hübsch aus, keine blödes ""

und nun weiter


Delphi-Quellcode:
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;
Das Datum wird auf jeden Fall korrekt übergeben,
egal wie es intern gespeichert wird.

Ein weiterer Vorteil, Prepare.

Delphi-Quellcode:
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;
Die Query muss nur 1 mal prepared werden (das dauert je nach Komplexität der Query etwas),
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
Heiko
  Mit Zitat antworten Zitat
 


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 10:09 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