在ADO中使用"最大数据库大小"选项会导致"打开"命令抛出

Omn*_*mni 5 c++ ado sql-server-ce

我有一个SQLCompact数据库,我试图使用ADO和访问C++.但是由于数据库的大小(300MB,超过默认的256MB限制),我必须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);  
Run Code Online (Sandbox Code Playgroud)

错误:

HR:DB_E_ERRORSOCCURRED

说明:"多步OLE DB操作生成错误.检查每个OLE DB状态值,如果可用.没有工作."

消息:"IDispatch错误#3105"

注意:

我尝试使用相同的代码,使用较小的数据库并Max Database Size从连接字符串中删除它,它按预期工作.Max Database Size再次添加会导致问题再次出现,因此我假设它是导致错误的问题.

有什么想法吗?如何使用Provider默认大小的数据库?

Eri*_*kEJ 2

您必须使用:

Provider= Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;ssce:Max Database Size=512
Run Code Online (Sandbox Code Playgroud)

(同样适用于密码和其他 SQL Compact 特定关键字)