![]() |
Datenbank: MySQL • Version: 5.7.9.1 • Zugriff über: DBExpress/FireDac
Umstieg DBExpress -> FireDac
Hi zusammen
Da ich unter Verwendung der DBExpress-Komponenten ![]() ![]() So denke ich, sollte ich die Sache durchziehen können, indem ich (einfach?) die verwendeten DBExpress-Komponenten durch entsprechende FireDac-Komponenten ersetze. Als erstes will ich mir die Insert-Prozeduren vornehmen, wobei ich am Code selbst möglichst wenig ändern will. Der Ablauf ist folgender, beginnend mit dem Aufruf der ersten Insert-Prozedur aus einem eigenen FileopenFrame:
Delphi-Quellcode:
Innerhalb einer Iteration durch eine Pathlist werden hier folgende Prozeduren aufgerufen, die jede ein SQL-Insert-Statement für jeweils eine Tabelle ausführt und jeweils die in der Liste nächste Prozedure aufruft:
if MySQLDataMod.GetSQLConnection(AUser,APass) then begin
try MySQLDataMod.MySQLConnection.KeepConnection := true; Transaction := MySQLDataMod.MySQLConnection.BeginTransaction; MySQLDataMod.MySQLConnection.AutoClone := false; MySQLDataMod.BildTabelleInsert2(100, FolderID); // Startet die Insert-Prozeduren finally MySQLDataMod.MySQLConnection.CommitFreeAndNil(Transaction); CM_First.ProgressbarDlg.FormStyle := fsnormal; CM_First.ProgressbarDlg.Close; FreeAndNil(CM_First.ProgressbarDlg); end; end;
Die Umstellung hab ich schon mal damit begonnen:
Delphi-Quellcode:
Meine Unsicherheit hier besteht in der Verwendung der Params: Laut Help gibt es neben Params.Add(); aber auch Params.Create().
procedure TFireDacMySQLModul.CreateCategory;
var ACategory, SQLString: String; begin ACategory := Self.Category; SQLString := 'Insert Into kategorien_tabelle(kategorie) Values (:ACategory)'; if GetSQLConnection(FUser,FPass) then begin Self.FDQueryMain.Connection := Self.FDConnectionMySql; Self.FDQueryMain.Command := SQLString; Self.FDQueryMain.Params.CreateParam(ftString,ACategory,ptInput); MySQLQuery1.Params[0].AsString := ACategory; MySQLQuery1.ExecSQL(false); SelectCategoryRecords; end; end; In DExpress ist es so, dass jedes Paramlist-Item mit CreateParams erzeugt werden muss. Wie sich das unter FireDac verhält, habe ich bislang noch nicht finden können. Die oben aufgelisteten Prozeduren arbeiten mit mehreren Createparams... Einzig die an Createparams übergebenen Parameter scheinen gleich zu sein; die ersten 2 sind es, soviel ich bis jetzt gefunden habe, sicher. Vielen Dank für eure Antworten! Gruss Delbor |
AW: Umstieg DBExpress -> FireDac
Eigentlich sollten die Parameter automatisch auf Grund der Abfrage erzeugt werden (wenn nicht in Einstellungen der Query-Komponente deaktiviert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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