AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Umstieg DBExpress -> FireDac
Thema durchsuchen
Ansicht
Themen-Optionen

Umstieg DBExpress -> FireDac

Ein Thema von Delbor · begonnen am 27. Nov 2015 · letzter Beitrag vom 27. Nov 2015
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Umstieg DBExpress -> FireDac

  Alt 27. Nov 2015, 12:10
Datenbank: MySQL • Version: 5.7.9.1 • Zugriff über: DBExpress/FireDac
Hi zusammen

Da ich unter Verwendung der DBExpress-Komponenten keine Verbindung mit meinem MySQL-Server herstellen konnte, hab ich das mal mit FireDac versucht, und das klappte problemlos. Soweit, so gut, sieht man mal davon ab, dass mich die Vielfalt an FireDac-Komponenten fürs erste fast erschlagen hätte - glücklicherweise hab ich noch das gefunden (Die Antwort von Uwe Raabe)...
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:
  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;
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:
  1. MySQLDataMod.BildTabelleInsert2(100, FolderID),
  2. BildDescribeTabelleInsert(BildTabelleLastId,BildNa me,Bildpfad);
  3. kategorien_bildDescribeTabelleInsert(BildDescribeL astID,bildtabelle_idbild);
Dadurch werden Bilder im Bitmapformat in die Datenbank geschrieben, deren Originale sich im RAW-Format am angegebenen Pfad befinden.

Die Umstellung hab ich schon mal damit begonnen:
Delphi-Quellcode:
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;
Meine Unsicherheit hier besteht in der Verwendung der Params: Laut Help gibt es neben Params.Add(); aber auch Params.Create().
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (27. Nov 2015 um 12:18 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Umstieg DBExpress -> FireDac

  Alt 27. Nov 2015, 12:30
Eigentlich sollten die Parameter automatisch auf Grund der Abfrage erzeugt werden (wenn nicht in Einstellungen der Query-Komponente deaktiviert.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:20 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