2015-07-23 7 views
5

. Ho un database SQLCompact a cui sto tentando di accedere utilizzando ADO e C++. Tuttavia, a causa delle dimensioni del database (300 MB, oltre il limite predefinito di 256 MB), devo specificare lo Max Database Size nella stringa di connessione. In tal caso, tuttavia, la funzione .Open(...) viene lanciata.L'utilizzo dell'opzione Dimensione massima database in ADO causa l'apertura del comando

Il codice che sto usando:

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

L'errore:

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"

Nota:

Ho provato con lo stesso codice, con un database più piccolo e la rimozione Max Database Size dalla stringa di connessione e funziona come previsto. Aggiungendo il Max Database Size nuovamente il problema si ripresenta, quindi il mio presupposto che è quello che causa l'errore.

Qualche idea? Come posso lavorare con i database sulla dimensione predefinita Provider?

risposta

2

È necessario utilizzare:

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

(stesso vale per password e altre parole chiave specifiche di SQL Compact)

+0

Grazie, ci proverò, non appena ho la possibilità (nota a margine: il tuo SQLCompact blog post e strumenti sono fantastici, grazie =)) – Omni

+0

Grazie! Fammi sapere se funziona per te ... – ErikEJ

+0

Ha funzionato, grazie mille. – Omni

Problemi correlati