Einzelnen Beitrag anzeigen

Delbor

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

AW: TableNames und die Zugriffsverletzung

  Alt 16. Mär 2017, 17:16
Hi hoika

Erstmal vielenDank für deine Antwort!
Zitat:
Was mich wundert, ist deine unterschiedliche Herangehensweise bei den SQL-Abfragen.
Das ist relativ einfach: Der Code entstand vor etlicher Zeit unter DelphiXE4 und DBExpress.

Delphi-Quellcode:
Delphi-Quellcode:
 
SqlString := 'SHOW TABLES';
FDQueryMain.Open(SqlString);
.....
Delphi-Quellcode:
 
SQLString := 'SELECT Kath_ID as Kath_ID, Kategorie as Kategorie FROM kategorien_tabelle';
FDQueryMain.SQL.Text := SQLString;
FDQueryMain.Open;
Du meinst damit, ich soll bei der unteren open-Anweisung den SQLString auch als Parameter anhängen? Hab ich soeben getan - mit dem selben Ergebnis. Ausserdem nachfolgend eine Prozedur, die genau das tut, was ich von ihr will - auch ohne jeden open-Parameter;

Delphi-Quellcode:
function TFDMySQLDml.GetMaxAllowedPacket : integer;
  var SQLString: AnsiString;
begin
  SqlString := 'SELECT Variable_Value FROM performance_schema.SESSION_VARIABLES WHERE VARIABLE_NAME = ''MAX_ALLOWED_PACKET''';
  FDMySQLQueryInfo.SQL.Text := SqlString;
  FDMySQLQueryInfo.Open; // Läuft Problemlos ab.
  if not FDMySQLQueryInfo.IsEmpty then
  begin
    Result := FDMySQLQueryInfo.Fields.Fields[0].AsInteger;
    FMaxAllowedPacket := Result;
  end;
  FDMySQLQueryInfo.Close;
end;
Zitat:
verstehe ich nicht, was soll das As hier bringen?
Das soll sicherstellen, das das Feld im Query dann auch genauso heisst. Ist nicht auf meinemMist gewachsen. Und wenn ich mich richtig erinnnere, wird dies auch von MySQL selbst, aber zumindest von Buchautoren, so empfohlen.

Zitat:
Ausserdem ist es nicht Utf8String, sondern nur string.
Das ist - oder war - unter DXE4/DBExpress/der damaligen MySQL-Installation/Konfiguration des Servers/der Verbindung wegen. Das könnte der Haken an der Sache sein.

Gruss
Delbor

PS:
Zitat:
Vielleicht ist das aber das gleiche (?).
Nein. Der Delphi-Datentyp String ist unter DXE8 (und IMHO seit Delphi9/10) ein Unicode-String. Ich weiss aber gerade nicht, ob das Problematisch ist/sein kann.
Unicode => UTF8 : wahrscheinlich schon, umgekehrt aber wohl nicht.
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 (16. Mär 2017 um 17:22 Uhr)
  Mit Zitat antworten Zitat