ado。net连接失败 3105

lori227 2011-04-16 01:58:58

m_pConnect.CreateInstance( _uuidof( Connection ) );
m_pConnect->PutCursorLocation( adUseClient );
m_pConnect->CommandTimeout = 30;
m_pConnect->ConnectionString =
"Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\Project\\xxx\\debug\\Database\\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

if ( FAILED ( m_pConnect->Open( "", "", "", adModeUnknown ) ) )
{
return false;
}



连接错误, IDispatch error #3105
有人遇到相同的问题么,如何解决?
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-04-16
  • 打赏
  • 举报
回复
看看这篇文章能不能给楼主一点思路:
http://patmusing.blog.163.com/blog/static/135834960201001425943786/
woszsj 2011-04-16
  • 打赏
  • 举报
回复
连接语句没必要这么长
书虫 2011-04-16
  • 打赏
  • 举报
回复
路过!顶下
太乙 2011-04-16
  • 打赏
  • 举报
回复
hr = m_pConnection-> Open("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=restaurant;Data Source=[机器名]\\sqlexpress","dbaccess","dbaccess",adModeUnknown);
lori227 2011-04-16
  • 打赏
  • 举报
回复
我还没有开始读写数据库。。只是连接而已。。
太乙 2011-04-16
  • 打赏
  • 举报
回复
[转]

在数据库中有些字段是字符串类型,允许为NULL,但是长度不允许为空.如果当数据为NULL的时候读取了数据,但是未经处理又需要插入的时候,可能会变成长度为空的字符串,这时进行插入或者更新时就会报#3105错误.
 解决办法:声明_variant_t 类型,将其类型值设为 VT_NULL,然后用PutCollect放到RecordSet 里面就好了:
 _variant_t myValue;
 myValue.vt = VT_NULL;
 m_pRecordset->PutCollect("FieldName1",myValue);
 m_pRecordset->Update();
所以这类问题一般都是类型不符或者格式匹配。

建议lz转到数据库版问问
叶子 2011-04-16
  • 打赏
  • 举报
回复
建议转到C++板块去问下...

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧