AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit dem Zugriff auf die Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit dem Zugriff auf die Datenbank

Ein Thema von TUX_der_Pinguin · begonnen am 18. Jan 2007 · letzter Beitrag vom 19. Jan 2007
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 10:12
Datenbank: MySQL • Version: 5.0 • Zugriff über: dbExpress
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:
Var
  query : TSQLQuery;

Begin
  query := TSQLQuery.Create(Self);
  query.Connection := SQLConnection;
  query.SQL.ADD('SELECT * From Kunde');
  query.open;
  query.close;
  query.free;
Also wäre es möglich mal ein einfaches Beispiel für TSQLQuery und TSQLDataSet zu bekommen, ich habe nirgendwo ein Tutorial
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 11:04
http://www.dsdt.info/tutorials/?cat=6
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;
Markus Kinzler
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 11:20
Zitat von mkinzler:
http://www.dsdt.info/tutorials/?cat=6
Also die Seite hatte ich auch gefunden, da steht aber nix über dbExpress.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 11:39
Aber Alle Komponeneten die das Datenhandling von Delphi verwenden arbeiten gleich bis ähnlich. Es ist also egal ob TQuery oder TSQLQuery verwendet wird.
Markus Kinzler
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 13:27
Ich habe das noch mal ausprobiert und ich bekomme immer eine Zugriffsverletztung in der dbxmys30.dll
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 13:49
Wie lautet der Code, der den Fehler verursacht?
Markus Kinzler
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 14:02
Zitat von mkinzler:
Wie lautet der Code, der den Fehler verursacht?
Der Code ist der wie oben bereits erwähnnt

Delphi-Quellcode:
  query := TSQLQuery.Create(Self);
  query.Connection := SQLConnection;
  query.SQL.Text := 'SELECT * From Kunde';
  query.open;

  query.close;
  query.free;
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 18. Jan 2007, 14:44
Zwei Dinge:
1. Wie sieht der Text deiner SQLConnection aus?
2. In welcher Zeile wird der Fehler ausgelöst? dazu die Zeile query := TSQLQuery.Create(Self); 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!

Grüße
Mikhal

[edit]Deutsche Sprache schwere Sprache...[/edit]
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 19. Jan 2007, 07:29
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.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Problem mit dem Zugriff auf die Datenbank

  Alt 19. Jan 2007, 13:05
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;
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz