![]() |
Datenbank: MySQL • Version: 5.9.1 • Zugriff über: Firedac
Firedac und Servervariablen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen
Da ich auf meinem neuen Rechner die neueste Version des MySQL-Servers installiert habe (sofern dies immer noch so ist), kennt mein etwas älteres DelphiXE8 den Treiber unter Verwendung von DBExpress offenbar nicht mehr, weshalb ich gerade dabei bin, mich in Firedac einzuarbeiten. Das scheint in den Grundzügen kein grösseres Problem zu sein - ich hab einfach das DBExpress-Query durch dasjenige von Firedac ersetzt. Das hat mir problemlos die ersten 2 Testdatensätze eingefügt. Wobei ich allerdings trotz intensivem Studium der Embarcadero-Seiten noch Probleme habe,, ist das Abrufen und allfällige Verändern der Servervariablen. Ich hab z.B. Konstrukte wie:
Delphi-Quellcode:
FireDacMySQLModul.FDMySQLQueryInfo.SQL.Text := 'SHOW TABLES from ContentMasterData;'
oder
Delphi-Quellcode:
SqlString := 'SELECT * FROM SESSION_VARIABLES ORDER BY VARIABLE_NAME';
Unter DBExpress funktioniert das so, wie es sollte. Unter FireDac erhalte ich im ersten Fall die Fehlermeldung, dass die Tabelle 'ContentMasterData.ContentMasterData' nicht gefunden werden konnte: Zitat:
Delphi-Quellcode:
Um die SessionVariablen abzurufen, benötige ich aber Zugriff auf die ServerTabelle SESSION_VARIABLES.
procedure TServerInfoFrame.CatalogInformation;
var i, j: Integer; Catalog: string; begin FireDacMySQLModul.FDConnectionMySql.GetCatalogNames('', Self.LBxCatalogNames.Items); for i := 0 to LBxCatalogNames.Items.Count - 1 do begin Catalog := LBxCatalogNames.Items[i]; Memo1.Lines.Add(Catalog); Memo1.Lines.Add('*************'); SchemaInformation(Catalog); TableInformation(Catalog); StoredProcedureInfos; end; end; procedure TServerInfoFrame.SchemaInformation(Catalog: string); var j: Integer; begin FireDacMySQLModul.FDConnectionMySql.GetSchemaNames(Catalog,'', FSchemaList); if FSchemaList.Count > 0 then Memo1.Lines.AddStrings(FSchemaList) else begin Memo1.Lines.Add('Keine Schema-Angaben zu '+Catalog+' vorhanden!'); Memo1.Lines.Add(''); end; end; procedure TServerInfoFrame.StoredProcedureInfos; begin FireDacMySQLModul.FDConnectionMySql.GetStoredProcNames('', '', '', '', LBxStoredProcedures.Items, [osMy, osSystem]); end; procedure TServerInfoFrame.TableInformation(Catalog: string); begin FireDacMySQLModul.FDConnectionMySql.GetTableNames(Catalog, '', '', FTablelist); if FTablelist.Count > 0 then Memo1.Lines.AddStrings(FTablelist) else begin Memo1.Lines.Add('Keine Tabellen-Angaben zu '+Catalog+' vorhanden!'); Memo1.Lines.Add(''); end; end; Wie komme ich an diese Variablen? Gruss Delbor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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