加载中…
  
博文

今天调试爬虫程序,遇到了Idispatch #3105 error 错误,折腾半天找不到原因,最后才发现原来高老师给我的数据库的字段类型是错误的,晕死。。。

字段类型应该是ntext,不知道怎么给我的变成了nvarchar 类型长度为(1) ,我提交了个很大的摘要字符串

调试过程中查看到如下帮助,比较有用,原贴如下:

[http://hezhenwei.spaces.live.com/blog/cns!C5E95043D17A1B62!750.entry]

ADO Idispatch #3105 error 的原因和解决 这两天在玩ado的时候,使用RecordSet对于特定的字段更新总是出现 idispatch #3105 error. 在网上搜索资料也搜索不到。于是自己尝试,发现原因是这样的:
 在数据库中有些字段是字符串类型,允许为NULL,但是长度不允许为空.如果当数据为NULL的时候读取了数据,但是未经处理又需要插入的时候,可能会变成长度为空的字符串,这时进行插入或者更新时就会报#3105错误.
 解决办法:声明_variant_t 类型,将其类型值设为 VT_NULL,然后用PutCollect放到RecordSet 里面就好了:
 _variant_t myValue;
 myValue.vt = VT_NULL;
 m_pRecordset->PutCollect('FieldName1&q
更多来
标签:

杂谈

    写多线程程序,一旦遇到线程访问冲突和软件崩溃的问题,就变得非常难以调试和解决,网络上给出的解释是,“一个线程想要访问该资源,另一个线程却要改变该资源”,就可能会出现各种各样的问题,而且在数据量或者是线程数目和总线程数目较少的情况下,难以察觉,但是100个线程同时运行且运行时间一长,软件往往就会崩溃掉。

下面是易语言多线程的稳定性解决一些新领悟。

    易语言也是支持线程池、读写锁、信号量、Event事件、临界区的、原子锁。

原子锁对一个全局变量或者程序集变量赋值,会大大提高效率。弄明白临界区之后,我基本上都不用易语言的许可证了,因为闲麻烦。

 

标签:

杂谈

开发环境:PB

数据库:SQL2000

操作:修改了SQL2000里的字段长度,运行PB出现错误提示:Item''xx'does not pass validation test

今天在用PB做软件维护的时候,客户要求将“部门名称”字段长度加长,之前是30个字符,现在改成了50字符长度,结果运行PB调试,输入多余之前一个字符就会出错,字段没有加有效性验证,不可
友情连接:http://20006423.blog.hexun.com/93222255_d.html
能是程序控制错误。将数据库字段重新引用仍然不能解决问题。最后考虑到可能是datawindow源文件没有更新的问题。右击datawindow---Edit Source打开源文件找到数据库字段,发现改字段的值仍然是原值30,手动改为50后保存,运行PB调试程序通过。

在网上找了在itemerror里加入return的方法,但治标不治本。

return说明:

return 1   弹出错误对话框,拒绝接受错误的值,焦点保持。

return 2   不弹出错误对话框,接受错误的值,焦点失去。

return 3   不弹出错误对话框,拒绝接受错误的值,焦点失去。

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有