AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firedac und Servervariablen
Thema durchsuchen
Ansicht
Themen-Optionen

Firedac und Servervariablen

Ein Thema von Delbor · begonnen am 9. Dez 2015
Antwort Antwort
Delbor

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

Firedac und Servervariablen

  Alt 9. Dez 2015, 16:04
Datenbank: MySQL • Version: 5.9.1 • Zugriff über: Firedac
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:


FireDacMySQLModul.FDMySQLQueryInfo.SQL.Text := 'SHOW TABLES from ContentMasterData;'

oder

  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:
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EMySQLNativeException mit der Meldung '[FireDAC][Phys][MySQL] Table 'contentmasterdata.contentmasterdata' doesn't exist' aufgetreten.
In diesem konkreten Fall konnte ich das zwar lösen, indem ich GetTableNames der Connctionkomponente aufrief. Folgender Code erzeugt die im angehängten Jpeg gezeigte Ausgabe, wobei die Komponenten sind TMemo, LBxCatalogNames, LBxTableNames, LBxFieldNames und LBxStoredProcedures:

Delphi-Quellcode:
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;
Um die SessionVariablen abzurufen, benötige ich aber Zugriff auf die ServerTabelle SESSION_VARIABLES.
Wie komme ich an diese Variablen?

Gruss
Delbor
Miniaturansicht angehängter Grafiken
gettablenames.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  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 09:26 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