数据库为SQL,
windows身份验证模式
pConn->ConnectionString = _T("Provider=sqloledb;\
Data Source=PC2009100115WZZ\\SQLEXPRESS;\
Initial Catalog=管理系统 \
User Id="";\
Password="" ");
pConn->Open(L"",L"",L"",adConnectUnspecified);
调试的时候是这个地方出现问题。
请问:
1、用户名和密码是空么?这个是我在网上搜到的一个说法,不是的话应该怎么写?
2、改为混合模式,使用sa账户登录失败(在windows身份验证模式登录后启用并授权),这是怎么回事?谢谢!
windows身份验证模式
pConn->ConnectionString = _T("Provider=sqloledb;\
Data Source=PC2009100115WZZ\\SQLEXPRESS;\
Initial Catalog=管理系统 \
User Id="";\
Password="" ");
pConn->Open(L"",L"",L"",adConnectUnspecified);
调试的时候是这个地方出现问题。
请问:
1、用户名和密码是空么?这个是我在网上搜到的一个说法,不是的话应该怎么写?
2、改为混合模式,使用sa账户登录失败(在windows身份验证模式登录后启用并授权),这是怎么回事?谢谢!
最好是在数据库中新建一个用户名和密码。希望对你有所帮助!
------------------------------无法连接到 PC2009100115WZZ\SQLEXPRESS。------------------------------
其他信息:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) (Microsoft SQL Server,错误: 233)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=233&LinkId=20476
2、加入异常处理机制得出如下错误:Idispatch #3105 error
查到的解释如下:
在数据库中有些字段是字符串类型,允许为NULL,但是长度不允许为空.如果当数据为NULL的时候读取了数据,但是未经处理又需要插入的时候,可能会变成长度为空的字符串,这时进行插入或者更新时就会报#3105错误.
解决办法:声明_variant_t 类型,将其类型值设为 VT_NULL,然后用PutCollect放到RecordSet 里面就好了:
_variant_t myValue;
myValue.vt = VT_NULL;
m_pRecordset->PutCollect("FieldName1",myValue);
m_pRecordset->Update(); 所以这类问题一般都是类型不符或者格式匹配。同时谢谢ppkele的帮助。