Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriffsverletzung dbxmys30.dll (https://www.delphipraxis.net/132675-zugriffsverletzung-dbxmys30-dll.html)

Cyf 17. Apr 2009 11:43

Datenbank: MySQL • Version: 5.1 • Zugriff über: dbExpress

Zugriffsverletzung dbxmys30.dll
 
Beim Öffnen der SQLQuery knallt es im dbExpress Treiber, ich hab mal ein bischen nachgeforscht und es scheint wohl so zu sein, dass die Delphi Versionen vor 2007 keie LIBMYSQL.dll > 4.0 unterstürtzen. Der Fehler liest sich so:

Code:
---------------------------
Fehler
---------------------------
Zugriffsverletzung bei Adresse 0D04B960 in Modul 'dbxmys30.dll'. Lesen von Adresse 00000002.
---------------------------
OK  Details <<  
---------------------------
Callstack (wenn man die SQLQuery zur Designzeit auf Active setzt):

Code:
+ $1907C[0D04B960]{dbxmys30.dll} getSQLDriverMYSQL + $1907C
 + $0[51F26B4B]{rtl100.bpl } System.System.@HandleAnyException (Line 9980, "system.pas" + 13) + $0
 + $81[77779B66]{ntdll.dll  } RtlRaiseStatus + $81
 + $A[777799F2]{ntdll.dll  } KiUserExceptionDispatcher + $A
 + $1AE8[0D0343CC]{dbxmys30.dll} getSQLDriverMYSQL + $1AE8
 + $33C9[0D035CAD]{dbxmys30.dll} getSQLDriverMYSQL + $33C9
 + $A[52BE86E1]{dbexpress100.bpl} SqlExpr.SqlExpr.TISQLCommand30.execute (Line 2287, "SqlExpr.pas" + 1) + $A
 + $14[52BF3F23]{dbexpress100.bpl} SqlExpr.SqlExpr.TCustomSQLDataSet.ExecuteStatement (Line 6750, "SqlExpr.pas" + 38) + $14
 + $2[52BF0FFA]{dbexpress100.bpl} SqlExpr.SqlExpr.TCustomSQLDataSet.InternalOpen (Line 5590, "SqlExpr.pas" + 1) + $2
 + $4[036DF069]{dbrtl100.bpl} DB.DB.TDataSet.DoInternalOpen (Line 9259, "DB.pas" + 2) + $4
 + $7[036DEFDD]{dbrtl100.bpl} DB.DB.TDataSet.SetActive (Line 9241, "DB.pas" + 12) + $7
 + $0[51F4AC2E]{rtl100.bpl } TypInfo.TypInfo.SetOrdProp (Line 1318, "TypInfo.pas" + 27) + $0
 + $6[20EFD30A]{designide100.bpl} DesignEditors.DesignEditors.TEnumProperty.SetValue (Line 1402, "DesignEditors.pas" + 5) + $6
 + $16[20EFB99C]{designide100.bpl} DesignEditors.DesignEditors.TPropertyEditor.Edit (Line 671, "DesignEditors.pas" + 11) + $16
 + $5[20C9697E]{coreide100.bpl} PropInsp.PropInsp.TPropertyInspector.PropListEditDblClick (Line 837, "PropInsp.pas" + 20) + $5
 + $A[20FDD681]{vclide100.bpl} IDEInspListBox.IDEInspListBox.TInspListBox.DoEditDblClick (Line 981, "ideinsplistbox.pas" + 2) + $A
 + $6[5205CA19]{vcl100.bpl } Controls.Controls.TWinControl.WndProc (Line 7246, "Controls.pas" + 105) + $6
...
so zu reproduzieren:
  • TSQLConnection aufs Form, korrekte Eigenschaften eingeben.
  • TSQLQuery aufs Form, Verbinden und SQL, das eine Ergebnismenge liefert, zuweisen
  • TSQLQuery ausführen (z.B. über Komponenten, Active:= true oder .Open)

Befehle ohne Ergebnisse (Create Table) gehen intressanterweise über .ExecSQL .

Konkret angewendeter Code, der den Fehler auch produziert:

SQL-Code:
select * from firsttable;
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
var
  Str: string;
begin
  SQLQuery1.Open; //Fehler
  SQLQuery1.First;
  while not SQLQuery1.EOf do begin
     Str:= SQLQuery1.FieldByName('Name').AsString;
     ShowMessage(Str);
     SQLQuery1.Next;
  end;
end;
Weiß jemand, ob (und wenn ja wo) es einen funktionierenden dbExpress Treiber für MySQL 5.1 gibt? Man müsste diesen ja dann nur noch der dbxdrivers.ini hinzufügen.

[Edit]Aus der TQuery die TSQLQuery gemacht.

DeddyH 17. Apr 2009 12:25

Re: Zugriffsverletzung dbxmys30.dll
 
Für MySQL 5.0 habe ich das hier gefunden: http://www.justsoftwaresolutions.co....d_mysql_5.html. Ob das auch mit der 5.1 funktioniert, müsste man mal ausprobieren.

Cyf 17. Apr 2009 13:00

Re: Zugriffsverletzung dbxmys30.dll
 
Ich teste das mal.

Bernhard Geyer 17. Apr 2009 13:13

Re: Zugriffsverletzung dbxmys30.dll
 
Ich schmeiß mal die Devart-Kompos in den Raum.

Cyf 17. Apr 2009 20:31

Re: Zugriffsverletzung dbxmys30.dll
 
Zitat:

Zitat von DeddyH
Für MySQL 5.0 habe ich das hier gefunden: http://www.justsoftwaresolutions.co....d_mysql_5.html. Ob das auch mit der 5.1 funktioniert, müsste man mal ausprobieren.

Scheint leider für 5.1 nicht zu klappen.


Zitat:

Zitat von Bernhard Geyer
Ich schmeiß mal die Devart-Kompos in den Raum.

Die sehen natürlich ganz gut aus, kosten nur leider auch Geld und scheinen den TDE nicht zu unterstützen. :wink:

mkinzler 17. Apr 2009 20:33

Re: Zugriffsverletzung dbxmys30.dll
 
Zitat:

Die sehen natürlich ganz gut aus, kosten nur leider auch Geld und scheinen den TDE nicht zu unterstützen. Wink
Das ist ja eher ein Problem vom TDE (Beschränkung).

Cyf 17. Apr 2009 20:47

Re: Zugriffsverletzung dbxmys30.dll
 
Ja, ich würde auch im Zweifelsfall auch tippen, dass sie wie alles andere im TDE auch zur Laufzeit keine Probleme machen, nur ist es halt umständlicher.
Nur sind mir 100+ Euro für ein kleines Programm, was ich umsonst für einen Freund schreibe, dann doch zu viel. :wink:
Es muss doch irgendwo einen aktuellen Treiber zu finden geben?

Mal sehen vielleicht hilft die Embarcadero-Seite, die von hier verlinkt ist, aber da scheint es auch erst Probleme mit gegeben zu haben: http://www.delphi-forum.de/topic_dbe...ery_89456.html

[OT]Google ist wieder schnell "treiber dbexpress dehlphi mysql 5.1" bringt uns schon auf Platz 3.

Bernhard Geyer 17. Apr 2009 21:51

Re: Zugriffsverletzung dbxmys30.dll
 
Wieso muß es denn überhaupt dbExpress sein? Nimm Zeos und du solltest keine Probleme haben.

mkinzler 17. Apr 2009 21:54

Re: Zugriffsverletzung dbxmys30.dll
 
Da muss er auch alles manuell machen.

Oder ADO ( nicht optimal aber bei TDE dabei)

Cyf 18. Apr 2009 01:20

Re: Zugriffsverletzung dbxmys30.dll
 
Mit ADO hab ich mich leider noch nicht ausreichend beschäftigt, zumindest hab ichs eben mit allem was nach SQL klang nicht wirklich zum laufen bekommen, was aber hier mehr an eigener Unfähigkeit gelegen haben dürfte :wink:
Für welche Anwendungsfälle wäre ADO von Vorteil?

DbExpress hab ich nun nach einigem hin und her und ausprobieren diverses Treiber hiermit zum koopieren mit MySQL 5.1 gebracht, zumindest sieht es bis jetzt so aus. :P
Damit sollte das jetzt (hoffentlich) erstmal funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr.
Seite 1 von 2  1 2      

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