AGB  ·  Datenschutz  ·  Impressum  







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

TableNames und die Zugriffsverletzung

Ein Thema von Delbor · begonnen am 16. Mär 2017 · letzter Beitrag vom 17. Mär 2017
 
Delbor

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

TableNames und die Zugriffsverletzung

  Alt 16. Mär 2017, 16:09
Datenbank: MySQL • Version: 5.7 • Zugriff über: FireDac
Hi zusammen

In der Createprozedure meiner Mainform hab ich 2 Aufrufe:
Delphi-Quellcode:
    ServerInfoFrame1.CatalogInformation;
    Serverinfoframe1.TableInformation('contentmasterdata');
Beide Methoden tun problemlos, was sie sollen:
Delphi-Quellcode:
procedure TServerInfoFrame.TableInformation(Catalog: string);
  var LIndent : String;
begin
  LIndent := ' - ';
  Self.LBxTableNames.Items.AddStrings(FDMySQLDml.Contentmastertables);
  FDMySQLDml.FDConnectionMySql.GetTableNames(Catalog, '', '', FTablelist);
  if FTablelist.Count > 0 then
  begin
    Memo1.Lines.Add('TServerInfoFrame.TableInformation / '+ Catalog);
    Memo1.Lines.Add('FDMySQLDml.FDConnectionMySql.DatabaseName' + FDMySQLDml.FDConnectionMySql.Params.Database);
    Memo1.Lines.AddStrings(FTablelist)
  end
  else
  begin
    Memo1.Lines.Add('Keine Tabellen-Angaben zu '+Catalog+' vorhanden!');
    Memo1.Lines.Add('');
  end;
end;
und der Getter des Propertys FDMySQLDml.Contentmastertables:

Delphi-Quellcode:
function TFDMySQLDml.GetContentmasterTables: TStringlist; // Wird nach TMySQL verlegt
  var SqlString : String; I: integer;
begin
    SqlString := 'SHOW TABLES';
    FDQueryMain.Open(SqlString);
    FDQueryMain.First;
    while not FDQueryMain.Eof do
    begin
      FContentmastertables.Add(FDQueryMain.Fields.Fields[0].AsString);
      FDQueryMain.Next;
    end;
      FDQueryMain.Close;
  Result := (FContentmastertables);
 end;
Trotzdem erhalte ich die Fehlermeldung:

Zitat:
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EMySQLNativeException mit der Meldung '[FireDAC][Phys][MySQL] Table 'contentmasterdata.kategorien_tabelle' doesn't exist' aufgetreten.
Die entsprechende Abfrage:

Delphi-Quellcode:
procedure TFDMySQLDml.SelectCategoryRecords;
  var SQLString: UTF8String; Zero: Boolean;
      QueryCategory : TQueryResultClass; LCategory : String; LCategoryKey : Integer;
begin
  if FCategoryList.Count>0 then
     FCategoryList.Clear;
  if assigned(FOnStartCategoryQuery) then
  begin
     Zero := True;
     FOnStartCategoryQuery(Self, Zero);
  end;
  SQLString := 'SELECT Kath_ID as Kath_ID, Kategorie as Kategorie FROM kategorien_tabelle';
  FDQueryMain.SQL.Text := SQLString;
  FDQueryMain.Open; //<==Kategorientabelle wird nicht gefunden `` ` ` ``
  FDQueryMain.First;
  while not FDQueryMain.Eof do
  begin
    QueryCategory := TQueryResultClass.Create(Self);
    QueryCategory.KategoryTabelle.Kath_Id := FDQueryMain.FieldByName('Kath_ID').AsInteger;
    QueryCategory.KategoryTabelle.Kategory := UTF8ToUnicodeString(FDQueryMain.FieldByName('Kategorie').AsString);
    FCategoryList.Add(QueryCategory);
    if assigned(FOnFoundedCategory) then
    begin
      LCategory := QueryCategory.KategoryTabelle.Kategory;
      LCategoryKey := QueryCategory.KategoryTabelle.Kath_Id;
      FOnFoundedCategory(Self,LCategory,LCategoryKey);
    end;
    FDQueryMain.Next;
  end;
// CM_First.CmbxFrame1.ComboBox1.Items.Add(FCategoryList.CurrentRecord.KategoryTabelle.Kategory);
  FDQueryMain.SQL.Clear;
  FDQueryMain.Close;
end;
Wie aus dem Anhang ersichtlich, tun beide Abfragemethoden (die von Firedac und die Direktabfrage) genau, was sie sollen und listen die gesuchten Tabellen auf - inklusive der schlussendlich vermissten 'contentmasterdata.kategorien_tabelle'.

Was soll das, bzw. was mache ich falsch?

Gruss
Delbor
Angehängte Grafiken
Dateityp: jpg TableNames.JPG (66,3 KB, 27x aufgerufen)
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
 


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 07:45 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