Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi OpenParamQuery benutzen (https://www.delphipraxis.net/194065-openparamquery-benutzen.html)

Luca Haas 13. Okt 2017 10:16

Datenbank: MSSQL • Version: ? • Zugriff über: TADO Query

OpenParamQuery benutzen
 
Hi Leute,
hab mal eine Frage, bin aktuell dabei einen OpenParamQuery Befehl zu nutzen, weiß aber nicht 100%ig was wo rein muss.
Und zwar habe ich das so in einem älteren Programm von mir gefunden und bin mir nicht mehr sicher was ich für die "??" einsetzen muss.

Delphi-Quellcode:
Query1 := OpenParamQuerySQL(Query2, 'SELECT * FROM Table1 WHERE LfdNr := :LfdNr', ['LfdNr'], [??], Connection1, (true));

Neutral General 13. Okt 2017 10:24

AW: OpenParamQuery benutzen
 
Die Funktion hast du oder jemand anderes der mit dir arbeitet geschrieben.
Da kann dir hier keiner eine Antwort geben.

Wobei ich schätze dass es ein Array mit den Parameter-Werten sein soll.
Aber ich würde einfach ganz normal eine Query mit der SQL erstellen, Parameter setzen und öffnen.

Ist deutlich übersichtlicher als dieses Monster.

Luca Haas 13. Okt 2017 10:31

AW: OpenParamQuery benutzen
 
Ja das Problem ist, dass das Programm etwas umständlicher ist und ich das mit einer normalen Query nicht hinbekomme, aber dann frage ich meinen Kollegen mal, ob er mir das nochmal erklären kann.
Aber trotzdem danke.

Neutral General 13. Okt 2017 10:43

AW: OpenParamQuery benutzen
 
Das hat nix mit nem umständlichen Programm zu tun.
Delphi-Quellcode:
OpenParamQuerySQL(Query2, 'SELECT * FROM Table1 WHERE LfdNr := :LfdNr', ['LfdNr'], [??], Connection1, (true));
=
Delphi-Quellcode:
var query: TQuery; // Oder welche Komponente von welchem Hersteller auch genutzt werden soll
begin
  query := TQuery.Create(Connection1);
  try
    query.RequestLive := true; // Spekulation.
    query.SQL.Text := 'SELECT * FROM Table1 WHERE LfdNr := :LfdNr';
    query.ParamByName('LfdNr').AsInteger := ??;
    query.Open();
      // Mach was mit den Daten (while not query.Eof do begin Bla = query.FieldByName('FELD').AsString/AsInteger/...)
    query.Close();
  finally
    query.Free;
  end;
end;

p80286 13. Okt 2017 11:50

AW: OpenParamQuery benutzen
 
@Luca Haas
Es wäre u.U sinnvoll, wenn Du den Source dieser OpenParamQuerySQL posten würdest. z.Zt. können wir hier nur spekulieren was da stattfindet. Neutral General hat wohl seine Kugel gerade geputzt:glaskugel:

Gruß
K-H

Luca Haas 13. Okt 2017 15:11

AW: OpenParamQuery benutzen
 
Tut mir Lied, das länger keine Info´s von mir kame, mit wurde gesagt, dass ich das OpenParamQuery noch gar nicht benutzen soll :oops:.
Stattdessen habe ich das hier benutzt:
Delphi-Quellcode:
begin
  Query.Close();
  Query.SQL.Text := 'SELECT MAX(ID) AS nextNr FROM TableWHERE LfdNr = :LfdNr';
  Query.Paramcheck := true;
  Query.Parameters.ParamByName('LfdNr').DataType := ftInteger;
  Query.Parameters.ParamByName('LfdNr').Value := LfdNr;
  Query.Open();
  result := Query.FieldByName('nextNr').AsInteger + 1;
end;

es kamen noch 1-2 Sachen dazu, weswegen es evtl nicht ganz die selbe Funktion hat wie sie es heute morgen noch hatte.

mkinzler 13. Okt 2017 16:46

AW: OpenParamQuery benutzen
 
Delphi-Quellcode:
 
  //Das hier ist nur einmal nötig
  //Query.Close; ist nicht nötig
  Query.Paramcheck := true; //besser vor der Zuweisung der Abfrage, dass diese Einstellung auch wirkt
  Query.SQL.Text := 'SELECT MAX(ID) AS nextNr FROM TableWHERE LfdNr = :LfdNr';
  Query.Parameters.ParamByName('LfdNr').DataType := ftInteger;
 
  //Später nur noch dies
  Query.Parameters.ParamByName('LfdNr').Value := LfdNr;
  Query.Open;
  result := Query.FieldByName('nextNr').AsInteger + 1;


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