在 ADO 中使用最大数据库大小选项会导致 Open 命令抛出
Using Max Database Size option in ADO causes the Open command to throw
我有一个 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);
错误:
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"
注:
我尝试使用相同的代码,使用较小的数据库并从连接字符串中删除 Max Database Size
,它按预期工作。再次添加 Max Database Size
会导致问题再次出现,因此我假设它是导致错误的原因。
有什么想法吗?我如何使用超过 Provider
默认大小的数据库?
您必须使用:
Provider= Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;ssce:Max Database Size=512
(同样适用于密码和其他 SQL 压缩特定关键字)
我有一个 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);
错误:
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"
注:
我尝试使用相同的代码,使用较小的数据库并从连接字符串中删除 Max Database Size
,它按预期工作。再次添加 Max Database Size
会导致问题再次出现,因此我假设它是导致错误的原因。
有什么想法吗?我如何使用超过 Provider
默认大小的数据库?
您必须使用:
Provider= Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;ssce:Max Database Size=512
(同样适用于密码和其他 SQL 压缩特定关键字)