Hallo liebe Entwickler und Delphianer,
ich habe seit Tagen ein problem, bei welchem ich nicht mehr weiter weis. Es geht um folgendes:
Ich habe eine DLL die eine Klasse kapselt, welche für Datenbankzugriffe zuständig ist. Als Verbindungsobjekte nutzt die Klasse die ADO Klassen TADOConnection und TADOQuery.
Es gibt generel zwei Datenbanken auf welche aus der DLL zugegriffen wird: eine lokale Access (MDB) und eine globale MSSQL (MDF). Beide werden von der Klasse in der DLL, zur Laufzeit erstellt falls nicht vorhanden. Wenn ich die ADOConnection nach einer erfolgreichen Verbindung zur Datenbank wieder Disconnecten möchte um mich zu der anderen Datenbank zu verbinden, hängt sich mein Programm auf ohne irgendwelche Exceptions oder ähnliches. Es passiert einfach nichts mehr. Der Debugger steht nach der Zeile AdoConnection.Close; und meine Anwendung auch. Erzeugt wird die MDB über ADOX und die MSSQL über SQL. Hier der Code zur erstellung der MDB:
function CreateDB(const Database: string): boolean
var
cat: _Catalog;
begin
Result := false;
if checkPath(Database) then //lokale Funktion Pfad anlegen
begin
try
cat := CoCatalog.Create;
cat.Create( 'Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source=' + Database +
';Jet OLEDB:Engine Type=5' );
cat := nil;
if DatabaseHandle.DBConnect then //Verbinden zur Datenbank
Result := DatabaseHandle.CreateTables; //Tabellen erzeugen
except
end;
end;
Weis den einer warum ich mich nicht mehr disconnecten kann und mein Prog hängt?
Ich hoffe mir kann einer schnell helfen, den die Zeit für das Projekt drängt sehr.
Vielen Dank im Voraus,
MFG
ich habe seit Tagen ein problem, bei welchem ich nicht mehr weiter weis. Es geht um folgendes:
Ich habe eine DLL die eine Klasse kapselt, welche für Datenbankzugriffe zuständig ist. Als Verbindungsobjekte nutzt die Klasse die ADO Klassen TADOConnection und TADOQuery.
Es gibt generel zwei Datenbanken auf welche aus der DLL zugegriffen wird: eine lokale Access (MDB) und eine globale MSSQL (MDF). Beide werden von der Klasse in der DLL, zur Laufzeit erstellt falls nicht vorhanden. Wenn ich die ADOConnection nach einer erfolgreichen Verbindung zur Datenbank wieder Disconnecten möchte um mich zu der anderen Datenbank zu verbinden, hängt sich mein Programm auf ohne irgendwelche Exceptions oder ähnliches. Es passiert einfach nichts mehr. Der Debugger steht nach der Zeile AdoConnection.Close; und meine Anwendung auch. Erzeugt wird die MDB über ADOX und die MSSQL über SQL. Hier der Code zur erstellung der MDB:
function CreateDB(const Database: string): boolean
var
cat: _Catalog;
begin
Result := false;
if checkPath(Database) then //lokale Funktion Pfad anlegen
begin
try
cat := CoCatalog.Create;
cat.Create( 'Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source=' + Database +
';Jet OLEDB:Engine Type=5' );
cat := nil;
if DatabaseHandle.DBConnect then //Verbinden zur Datenbank
Result := DatabaseHandle.CreateTables; //Tabellen erzeugen
except
end;
end;
Weis den einer warum ich mich nicht mehr disconnecten kann und mein Prog hängt?
Ich hoffe mir kann einer schnell helfen, den die Zeit für das Projekt drängt sehr.
Vielen Dank im Voraus,
MFG