2010-11-24 9 views
23

Ich habe meinen eigenen DBX 4 in Delphi 2010 für die Firebird-Datenbank geschrieben. Der Treiber ist ein Dynalink-Treiber und funktioniert gut mit TSQLConnection.Encounter-Fehler mit DataExplorer.exe zum Herstellen einer Verbindung zum selbst erstellten DBX4-Treiber

Vor kurzem ich versuche, die DataExplorer.exe mit Delphi 2010 und Begegnung Fehlern Freigabe zu verwenden:

"Attempted to read or write protected memory. 
This is often an indication that other memory is corrupt". 

Nach dem Quellcode, fand ich die folgende Export Verfahren die Ursache des Problems sein können:

Beim Debuggen dieser Methode enthalten die Parameter Names und Values ​​einen beschädigten Wert. Ich weiß nicht, was das Problem verursacht. Vielleicht gibt es ein Speicher-Manager Problem mit DataExplorer.exe (? .net Ausgabe)

Nach einigem Versuch und Irrtum, ich versuche, das Verfahren zu ändern, wie folgt:

type 
    TWideStringArray2 = array of PChar; 

function DBXLoader_GetDriver(Count: TInt32; Names, Values: TWideStringArray2; 
    ErrorMessage: TDBXWideStringBuilder; out pDriver: TDBXDriverHandle): 
    TDBXErrorCode; stdcall; 

Dieses Mal ist der Fehler gegangen und bald, nachdem sie diese Methode verlassen, erhöhen die gleichen Fehler wieder

"Attempted to read or write protected memory. 
This is often an indication that other memory is corrupt". 

haben Sie Ideen, was könnte die Ursache des Problems?

+0

Dies ist weit weniger wahrscheinlich ein .NET-Problem per se, als ein Problem in DataExplorer oder Ihren eigenen Code. – stephbu

+0

Einige der Informationen in diesem [post] (http://stackoverflow.com/questions/5765424/how-to-access-databases-from-within-delphi-xe-professional-ide) könnten nützlich sein. –

Antwort

Verwandte Themen