Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mySQL-Datenbankzugriff über C-API: mysql_create_db(...) (https://www.delphipraxis.net/15265-mysql-datenbankzugriff-ueber-c-api-mysql_create_db.html)

Chewie 25. Jan 2004 14:20

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Hast du bei meinem Testprojekt die Zugangsdaten durch deine ersetzt?

Steffen 25. Jan 2004 14:20

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
ja, habe ich.

Chewie 25. Jan 2004 14:21

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Wo hast du denn die DLL liegen?

Steffen 25. Jan 2004 14:23

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Sie lieg da, wo auch die Anwendung liegt, beide im gleichen Verzeichnis

Chewie 25. Jan 2004 14:24

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Zitat:

Zitat von Steffen
Immerhin bekomme ich jetzt keine AccessViolation mehr, sondern es wird der except-Teil ausgeführt...

Und welche Fehlermeldung wird ausgegeben?

Steffen 25. Jan 2004 14:26

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Bei dem Code:

Delphi-Quellcode:
uses
  ...
  mySQL;

var
  DataBaseSocket: PMySQL;
  ...
function TDataBaseModule.CreateDatabase(strDatabaseName : String) : Boolean;
begin
  if Connected then
    begin
      Result := True;
      try
        mysql_create_db(DataBaseSocket, PAnsiChar(strDataBaseName)) // Hier entsteht der Fehler! 
      except
        Result := False;
        ShowMessage('Fehler bei CreateDataBase!' + mysql_error(DataBaseSocket));
      end
    end
  else
    begin
      ShowMessage('Um eine Datanbankanfrage auszuführen muss eine Verbindung zur Datenbank bestehen!');
      Result := False
    end
end;
Bekomme ich "Fehler bei CreateDataBase! " (allerding gibt mysql_error(DataBaseSocket) nur '' zurück...)

Chewie 25. Jan 2004 14:29

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Dann überprüf mal den Rückgabewert. Hier findest du eine Auflistng der möglichen Rückgabewerte.

Leider finde ich in der MySQL-Unit keine numerischen Entsprechungen der Konstanten, aber vielleicht hast du in den Original-C-Header mehr Glück.

Steffen 25. Jan 2004 14:36

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Ich habe jetzt folgendes gemacht...

Delphi-Quellcode:
function TDataBaseModule.CreateDatabase(strDatabaseName : String) : Boolean;
begin
  if DataBaseModule.Connected then
    begin
      Result := True;
      try
        //ExecuteQuery('CREATE DATABASE ' + strDataBaseName);
        ShowMessage(IntToStr(mysql_create_db(DataBaseModule.DataBaseSocket, PAnsiChar(strDataBaseName))));
      except
        Result := False;
        ShowMessage('Fehler bei CreateDataBase!' + mysql_error(DataBaseModule.DataBaseSocket));
      end
    end
  else
    begin
      ShowMessage('Um eine Datanbankanfrage auszuführen muss eine Verbindung zur Datenbank bestehen!');
      Result := False
    end
end;
aber ich bekomme keine Meldung... welchen Wert die Funktion mysql_create_db zurückliefert...

Chewie 25. Jan 2004 14:41

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
Geh doch im Einzelschrittverfahren durch deinen Code durch, dann siehst du genau, welche Anweisungen ausgeführt werden.

Steffen 25. Jan 2004 14:45

Re: mySQL-Datenbankzugriff über C-API: mysql_create_db(...)
 
mache ich ja, wenn ich beim Befehl mysql_create_db ankomme habe ich wieder 'ne AccessViolation. Deshalt liefert die Funktion auch keinen Integer zurück.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr.
Seite 2 von 3     12 3      

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