![]() |
Datenbank: MySQL • Version: 5.0 • Zugriff über: dbExpress
Problem mit dem Zugriff auf die Datenbank
Hallo,
ich habe mir die kostenlose Version von Turbo Delphi installiert und wollte nun einmal probieren wie man damit auf eine MySQL Datenbank zugreifen kann. Dafür habe ich die Komponente TSQLConnection (dbExpress) Verwendet, die Verbindung wird im OnCreate des Formulars auf und im OnClose wieder abgebaut. Starte ich das Programm zeigt mir das MySQL Admin Tool an das eine Weitere Verbindung besteht, daher gehe ich davon aus das die Verbindung klappt. Jedoch mein Problem wie bekomme ich die Daten aus der Datenbank herraus, dazu habe ich gesehen das sich zwei möglichkeiten bieten TSQLQuery und TSQLDataSet, jedoch weiß ich nicht wofür was ist und wie genau man die komponenten Verwenden muß. Hatte es wie folgt probiert bekomme jedoch Zugriffsverletztungen
Delphi-Quellcode:
Also wäre es möglich mal ein einfaches Beispiel für TSQLQuery und TSQLDataSet zu bekommen, ich habe nirgendwo ein Tutorial
Var
query : TSQLQuery; Begin query := TSQLQuery.Create(Self); query.Connection := SQLConnection; query.SQL.ADD('SELECT * From Kunde'); query.open; query.close; query.free; gefunden oder Beispiele. Ich weiß auch das dbExpress von Delphi 2006 / Turbo Delphi probleme hat mit MySQL > 4.0. Da aber die Verbindung besteht, dachte ich das der rest auch funktioniert. mfg TUX |
Re: Problem mit dem Zugriff auf die Datenbank
![]()
Delphi-Quellcode:
query := TSQLQuery.Create(Self);
query.Connection := SQLConnection; query.SQL.Text := 'SELECT * From Kunde'; query.open; // Mach was mit Daten query.close; query.free; |
Re: Problem mit dem Zugriff auf die Datenbank
Zitat:
|
Re: Problem mit dem Zugriff auf die Datenbank
Aber Alle Komponeneten die das Datenhandling von Delphi verwenden arbeiten gleich bis ähnlich. Es ist also egal ob TQuery oder TSQLQuery verwendet wird.
|
Re: Problem mit dem Zugriff auf die Datenbank
Ich habe das noch mal ausprobiert und ich bekomme immer eine Zugriffsverletztung in der dbxmys30.dll
|
Re: Problem mit dem Zugriff auf die Datenbank
Wie lautet der Code, der den Fehler verursacht?
|
Re: Problem mit dem Zugriff auf die Datenbank
Zitat:
Delphi-Quellcode:
query := TSQLQuery.Create(Self);
query.Connection := SQLConnection; query.SQL.Text := 'SELECT * From Kunde'; query.open; query.close; query.free; |
Re: Problem mit dem Zugriff auf die Datenbank
Zwei Dinge:
1. Wie sieht der Text deiner SQLConnection aus? 2. In welcher Zeile wird der Fehler ausgelöst? dazu die Zeile
Delphi-Quellcode:
markieren, einen Breakpoint auf diese Zeile mit Taste F5 setzen, das Programm mit F9 starten, der Debugger sollte dann in der markierten Zeile stehen bleiben, dann mit F8 Code-Zeile für Code-Zeile durchsteppen bis du eine Fehlermeldung erhältst. Die Zeile, die du gerade verlassen wolltest, wird dann die fehlerhafte Code-Zeile sein!
query := TSQLQuery.Create(Self);
Grüße Mikhal [edit]Deutsche Sprache schwere Sprache...[/edit] |
Re: Problem mit dem Zugriff auf die Datenbank
Die SQLConnection habe ich via Komponente realisiert und vor der Abfrage ein SQLConnection.Open ausgeführt,
wie bereits erwähnt zeigt mir das Tool MySQL Admin an, das eine Verbindung besteht daher denke ich das das soweit geklappt hat, sonst wäre dort doch bereits ein fehler aufgetreten. Die Zugriffsverletztung tritt bei query.open auf. |
Re: Problem mit dem Zugriff auf die Datenbank
Ich habe das ganze noch mal wie folgt ausprobiert es ändert sich aber nichts, die Verbindung klappt die Abfrage nicht.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var SQLConnection : TSQLConnection; SQLQuery : TSQLQuery; begin SQLConnection := TSQLConnection.Create(Self); SQLConnection.ConnectionName := 'SQLCon'; SQLConnection.DriverName := 'MYSQL'; SQLConnection.GetDriverFunc := 'getSQLDriverMYSQL'; SQLConnection.LibraryName := 'dbxmys30.dll'; SQLConnection.VendorLib := 'LIBMYSQL.dll'; SQLConnection.Params.Values['BlobSize'] := '-1'; SQLConnection.Params.Values['Database'] := 'Kunden'; SQLConnection.Params.Values['ErrorRessourceFile'] := ''; SQLConnection.Params.Values['HostName'] := 'localhost'; SQLConnection.Params.Values['LocaleCode'] := '0000'; SQLConnection.Params.Values['User_Name'] := 'root'; SQLConnection.Params.Values['Password'] := 'pwd'; SQLConnection.Params.Values['Compressed'] := 'False'; SQLConnection.Params.Values['Encrypted'] := 'False'; SQLConnection.LoginPrompt := False; SQLConnection.ParamsLoaded := True; SQLConnection.KeepConnection := True; SQLConnection.Connected := True; SQLConnection.Open; Memo1.Lines.Add('Verbindung hergestellt ...!'); SQLQuery := TSQLQuery.Create(Self); SQLQuery.SQLConnection := SQLConnection; SQLQuery.SQL.Text := 'Select * from Kunde'; SQLQuery.Active := True; SQLConnection.Close; SQLConnection.Free; Memo1.Lines.Add('Verbindung beendet ...!'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:24 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 by Thomas Breitkreuz