Ich habe eine SQLCompact-Datenbank, auf die ich unter Verwendung von ADO
und C++
zugreifen möchte. Aufgrund der Größe der Datenbank (300 MB, über das Standardlimit von 256 MB) muss ich jedoch die Max Database Size
in der Verbindungszeichenfolge angeben. Dies bewirkt jedoch, dass die .Open(...)
-Funktion ausgelöst wird.Verwendung der Option "Max. Datenbankgröße" in ADO bewirkt, dass der Befehl "Öffnen" ausgelöst wird
Der Code Ich verwende:
HRESULT hr = conn.CreateInstance(__uuidof(Connection), NULL);
conn->Open(L"Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;Max Database Size=512", L"", L"",adConnectUnspecified);
Der Fehler:
HR: DB_E_ERRORSOCCURRED
Description: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."
Message: "IDispatch error #3105"
Hinweis:
Ich habe versucht, mit dem gleichen Code, mit einer kleineren Datenbank und Entfernen Max Database Size
aus der Verbindungszeichenfolge und es funktioniert wie erwartet. Das Hinzufügen der Max Database Size
wieder verursacht das Problem wieder angezeigt werden, daher meine Annahme, dass es die ist, die den Fehler verursacht.
Irgendwelche Gedanken? Wie kann ich mit Datenbanken über die Standardgröße Provider
arbeiten?
Danke, ich werde es versuchen, sobald ich eine Chance (Randnotiz haben: Ihre SQLCompact Blogposts und Tools sind erstaunlich, danke =)) – Omni
Danke! Lass es mich wissen, wenn es für dich funktioniert ... – ErikEJ
Es hat funktioniert, vielen Dank. – Omni