2015-07-23 100 views
5

atmasına neden olur. ADO ve C++ kullanarak erişmeye çalıştığım bir SQLCompact veritabanı var. Ancak veritabanı boyutu (300MB, varsayılan 256MB sınırı üzerinde) nedeniyle, bağlantı dizesinde Max Database Size belirtmek zorunda. Ancak bunu yapmak .Open(...) işlevinin fırlamasına neden olur.ADO'da Maksimum Veritabanı Boyutu seçeneğini kullanma, Aç komutunun

kullanıyorum kodu:

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); 

hatası:

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"

Not:

daha küçük bir veritabanı ve Max Database Size çıkarmadan ile aynı kodu kullanarak denedim bağlantı dizesinden ve beklendiği gibi çalışır. Max Database Size'u tekrar eklemek sorunun yeniden ortaya çıkmasına neden olur, bu nedenle hataya neden olanın varsayımım.

Herhangi bir düşünce? Provider varsayılan boyutu üzerinden veritabanlarıyla nasıl çalışabilirim?

cevap

2

Sen kullanmalıdır: Ben bir şans olarak

Provider= Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;ssce:Max Database Size=512 

+0

teşekkür (aynı şifre ve diğer SQL Compact belirli anahtar kelimeler için de geçerlidir), I (kısa sürede yan notu deneyeceğim: En SQLCompact Blog mesajları ve araçları muhteşem, teşekkür ederim =)) – Omni

+0

Teşekkürler! Sizin için çalışıyorsa bana bildirin ... – ErikEJ

+0

Çok çalıştı, teşekkür ederim. – Omni