![]() |
Datenbank: MySQL • Zugriff über: Devarts
DB Parameter
Hi,
Gibt es eine Möglichkeit die DB Parameter:
Delphi-Quellcode:
Einmalig für alle Querys zu definieren oder muss man sie unter jeden Query erneut schreiben?
QueryRead.Params.ParamValues['test']:= Infos.test;
. . . . . . . . |
Re: DB Parameter
Hallo,
wenn du in der Query, deinen SQL-String zuweisen tust, und dort die Parameter angibts (Was Du ja musst), werden die Parameter automatisch gesetzt. (Entwicklungszeit), Da ich aber bis jetzt die ganze Sache so verstanden habe, jede Abfrage etc. eine eigene Query, ist es ja so kein Problem. Gruß Jens |
Re: DB Parameter
Du kannst natürlich eine private Methode schreiben:
Delphi-Quellcode:
Bei vielen Queries und Parameter kann das viel Schreibarbeit sparen.
procedure TForm1.SetzeAlleParameter(qry:TMySQLQuery; Infos:TIrgendEinRecordOderKlasse);
begin Assert(Assigned(qry)); // Sicherheitsabfrage qry.Params.ParamValues['test']:= Infos.test; .. end; |
Re: DB Parameter
Hallo,
und die relevanten Queries kommen noch in eine TList (z.B.), dann geht das ganze per Schleife. Heiko |
Re: DB Parameter
Allerdings tritt da ein Problem bei mir auf.
Wenn ich die Procedure benutze Bsp:
Delphi-Quellcode:
public
Procedure ParamInfo (qry: TMyQuery);
Delphi-Quellcode:
Allerdings nun in einer anderen Unit verwenden möchte per
Procedure TFormMain.ParamInfo (qry: TMyQuery);
Begin Assert(assigned(qry)); //Sicherheitsabfrage qry.Params.ParamValues['histC']:= Infos.Hist; End;
Delphi-Quellcode:
aufruf.
FormMain.ParamInfo(QueryInsert);
Funktioniert es nicht da mir Delphi sagt QueryInsert undeklarierter Bezeichner. |
Re: DB Parameter
Hast Du denn auch in der aufrufenden Unit eine Variable QueryInsert vom Typ TMyQuery instanziert?
|
Re: DB Parameter
Ebend nicht, da das lediglich eine Unit ist ohne eine Form, daher kann ich die Komponente nicht auf die Form.
|
Re: DB Parameter
Wieso Komponente? Ich habe von der Instanz QueryInsert des Typs TMyQuery gesprochen. Auf Deutsch:
Delphi-Quellcode:
Diese Instanz musst Du dann übergeben.
var QueryInsert: TMyQuery;
... QueryInsert := TMyQuery.Create(<Parameter>); |
Re: DB Parameter
Danke das wusste ich gar nicht.
Funktionietr nun auch alles, allerdings eine Frage dazu. Wenn ich nun mehre Parameter angebe, allerdings niht alle verwenden muss in dem Query, dann spuckt Delphi einen Fehler aus über die nicht vrweneten Parameter. Ist das normal bzw kann man dies umgehen ohne die Parameter zu löschen? Da sie in eine Procedure aus gelagert wurden. Ist jetzt nicht sehr wichtig, aber wäre interessant zu wiessen. |
Re: DB Parameter
Das kann ich aus dem Hut nicht beantworten, da ich alle Parameter, die ich definiere, auch verwende. Evtl. könnte man die Werte ja als array of const übergeben, um flexibel zu bleiben (sofern die Procedure für mehrere Queries mit unterschiedlicher Parameteranzahl verwendet wird).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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