Использование параметра «Максимальный размер базы данных» в ADO вызывает команду «Открыть»

У меня есть база данных SQLCompact, к которой я пытаюсь получить доступ, используя ADO а также C++, Однако из-за размера базы данных (300 МБ, превышающей ограничение по умолчанию 256 МБ) я должен указать Max Database Size в строке подключения. Однако это вызывает .Open(...) Функция бросить.

Код, который я использую:

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

Ошибка:

HR: DB_E_ERRORSOCCURRED

Описание: «Многошаговая операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если доступно. Никакой работы не было сделано».

Сообщение: «Ошибка IDispatch # 3105»

Замечания:

Я пытался использовать тот же код, с меньшей базой данных и удаления Max Database Size из строки подключения, и она работает как ожидалось. Добавление Max Database Size снова вызывает проблему снова, поэтому я предполагаю, что это является причиной ошибки.

Какие-нибудь мысли? Как я могу работать с базами данных через Provider размер по умолчанию?

5

Решение

Вы должны использовать:

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

(то же самое относится к паролю и другим ключевым словам SQL Compact)

2

Другие решения


По вопросам рекламы [email protected]