Hi zusammen
Eben hab ich ein seltsames Problem etdeckt; zumindest hab ich keine Erklärung dafür und weiss deshalb auch nicht, wo ich den Fehler suchen könnte.
Beim Aufstarten wird erstmal die Createmethode des Datenmoduls aus dem OnCreateEvent des Hauptformulars aufgerufen:
Delphi-Quellcode:
procedure TFDMySQLDml.DataModuleCreate(Sender: TObject);
var LIndent :
String;
begin
LIndent := '
- ';
CM_First.ProcedureReport.Add('
PROCEDURE TFDMySQLDml.DataModuleCreate');
CM_First.ProcedureReport.Add('
--------------------------------------');
FQueryResultList := TObjectList.Create;
TPicture.RegisterFileFormat('
NEF','
NEF Format',TWICImage);
FReportlist := TStringlist.Create;
FSessionVarList := TStringlist.Create;
FCategoryBildList := TDataObjectList<TQueryResultClass>.Create();
FCategoryList := TDataObjectList<TQueryResultClass>.Create();
FPathList := TStringList.Create;
FMySQLCorrespondent := TMySQLCorrespondent.Create(Self);
// TFDMySQLDml
FHost := '
localhost';
FDataBase := '
contentmasterdata';
FServerDB := '
performance_schema';
FPort := '
3306';
if not DefineContentmasterConnection
then //<==
begin;
ShowMessage('
Die Verbindung konnte nicht hergestellt werden');
// An dieser Stellle muss geeignet reagiert werden können
end;
FPerformanceSchemaTables := TStringList.Create;
ShowCharactersets;
//TFDMySQLDml Muss nach TMysqlkorrespondent verlagert werden
GetMaxAllowedPacket;
end;
An der bezeichneten Stelle wird die Booleanfunktion aufgerufen:
Delphi-Quellcode:
function TFDMySQLDml.DefineContentmasterConnection: Boolean;
var LIndent :
String;
begin
if (FHost <> '
localhost')
or (FDataBase <> '
contentmasterdata')
then
Exit;
LIndent := '
- ';
FDConnectionMySQL.Close;
FDConnectionMySQL.Params.Clear;
FDConnectionMySQL.Params.Add('
DriverID=MySQL');
FDConnectionMySQL.Params.Add('
Server=' + FHost);
FDConnectionMySQL.Params.Add('
Port=' + FPort);
FDConnectionMySQL.Params.Add('
Database=contentmasterdata');
FDConnectionMySQL.Params.Add('
User_Name=root');
FDConnectionMySQL.Open;
Result := True;
end;
Anschliessend kehrt die Programmfunktion zurück und überspringt korrekterweise die Showmessage-Anweisung - die Verbindung ist also hergestellt.
Im weiteren Verlauf wird ShowCharactersets und MaxallowedPacket aufgerufen.
Das Problem ist: DefineContentmasterConnection liefert False zurück!
Inzwischen vermute ich meine Verbindungsdefinitionen als Ursache. Im Anhang ein Jpeg der
OI-Einstellungen der Connection-Komponente:
Ansonsten: Was mache ich falsch?
Gruss
Delbor