Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firedac Query fetch all (https://www.delphipraxis.net/194024-firedac-query-fetch-all.html)

bnreimer42 10. Okt 2017 15:48

AW: Firedac Query fetch all
 
Also laut http://docwiki.embarcadero.com/Libra...taSet.FetchAll bezieht sich FetchAll nur auf das aktuelle Resultset.

Ich verwende FetchAll manchmal, wenn ich nicht eh FetchOptions.Mode auf fmAll gesetzt habe, um alle Datensätze in einem Grid anzuzeigen und hatte da noch nie Nebenwirkungen. Allerdings habe ich mit MariaDB noch nie gearbeitet.

Aber ein kurzer Blick in die MySQL FireDAC Doku bringt den Parameter ResultMode zum Vorschein. Wie ist der denn gesetzt? Wenn der auf Store steht, würde das erklären, wo die Daten des zweiten Resultsets herkommen, denn dann macht er immer FetchAll.

himitsu 10. Okt 2017 17:40

AW: Firedac Query fetch all
 
Vielleicht kann hier irgendwer nur eine gleichzeitige Verbindung aufrechterhalten? (FireDAC, DB-Treiber, Datenbank-Server, DBMS, ....)
Bzw. man muß erst irgendwo aktivieren, dass mehrere Verbindungen gehen?

Also sobald über die selbe Connection nun was Neues geht, wird die andere Verbindung getrennt (und vorher noch schnell alles geholt).

MES 11. Okt 2017 15:23

AW: Firedac Query fetch all
 
So, wir haben das Problem erheblich einkreisen - aber noch nicht ganz lösen können.

In einem Initbereich war folgendes hinterlegt:
stLibFile := ExtractFileDir(stABSEXE) + '\lib\libmysql.dll';
md.FDPhysMySQLDriverLink1.VendorLib := stLibFile;

Den angegebenen Pfad gab es aber gar nicht. Statt einer Fehlermeldung auszugeben wurde intern danach gesucht(weil es in den uses steht?) und eine Version von libmysql.dll von 2015 genommen. Hm, ganz schön alt dachte ich und durchsuchte meinen PC nach weiteren libmysql.dll. Ich fahnd in einem Ordner eine weitere lib mit dem Datum 2001. Ich biege
also den obigen Quellcode auf diesen Ordner hin und siehe da! Es funktioniert!!! Das FetchAll ist weg!!! Genau das hätte ich aber nicht erwartet den der Treiber ist uralt.

Noch bissl Verwirrung: Ich fand die FireDacAdministrator.exe. Hier wird genau diese uralte Version von libmysql.dll angezeigt. Kein Problem dachte ich, ich stell den Pfad auch hier um - doch wie? In der ConnectionDef.ini ist kein Pfad eingetragen. Weiß jemand wo/wie dieser Pfadeintrag editierbar ist? Oder was die aktuelle Version von libmysql ist?

MES 11. Okt 2017 16:05

AW: Firedac Query fetch all
 
Libmysql haben wir in der Version .19 von MySql runtergezogen.... bin gespannt.. morgen gibts news. Danke erstmals für eure Hilfe.

MES 13. Okt 2017 09:01

AW: Firedac Query fetch all
 
Es ist leider wie befürchtet: Mit dem Uralttreiber(2001) funktioniert es und mit jedem neuerem nicht. Um alle eventuelle Altlasten zu umgehen wurde ein neues Projekt erzeugt und auf einer neu aufgesetzten VM getestet.
Bin nun echt ratlos und frage mich ob der Wechsel von der Uralt(aber funktionierender) BDE zu neueren(aber nicht funktionierenden) Technologien der richtige Weg war. Wo ich hinlang nur Mist. Nicht mal der einsatz von TFDTable funktioniert denn hier führt die unterschiedliche Sortierung des Client und des Servers zu dopellten Zeileneinträge und somit zu einer Fehlermeldung. Auch dieses Problem wird im Internet seit vielen Jahren immer wieder erkannt(auch hier im Forum) doch eine Lösung scheint keiner zu haben. Die vagen Aussagen von Embarcadero versteh ich jetzt endlich richtig: Müll ist Müll und kann nicht zu Gold gemacht werden. Embarcadero ist auf dem sicheren Weg einen seit 20 Jahren (ab Delphi 2) glühenden Fan zu verlieren. Wünsche euch ein schönes Wochenende und hoffe das ihr mehr Erfolg hattet als ich.

MES 13. Okt 2017 12:36

AW: Firedac Query fetch all
 
Wir haben einen Test mit myDac (anstatt FireDac) gemacht - alles funzt wie es soll, also ist dieses ominöse "fetch all" beim "open" weg. FireDac fliegt höchstwahrscheinlich raus.

Hat jemand mit myDac bzw. UniDac Erfahrungen? Spricht was dagegen diese einzusetzen? In Verbindung mit MariaDb. Erste Tests haben zumindest ein deutlich schnelleres Fetching
gezeigt(doch das müssen wir genauer testen).

mkinzler 13. Okt 2017 13:05

AW: Firedac Query fetch all
 
Nicht mit MySQL/MariaDB. Aber allgemein recht gute Erfahrungen mit UniDAC.

mikhal 13. Okt 2017 13:47

AW: Firedac Query fetch all
 
Ich habe sehr gute Erfahrungen mit UniDAC machen können. Erwähnenswert ist auch das mitgelieferte Migrationstool um von BDE, den eigenen und fremden DACs (auch von FireDAC nach UniDAC) zu konvertieren.

Grüße
Mikhal


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.
Seite 2 von 2     12   

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