我初学ADO时遇到这个问题 (100分)

  • 主题发起人 主题发起人 dafuwengshen
  • 开始时间 开始时间
D

dafuwengshen

Unregistered / Unconfirmed
GUEST, unregistred user!
编辑的时候啥事没有,表的内容也能看到;一运行就出下面的确定信息:
Project Project1.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type(Null) into type(String)'.Process stopped.Use Step or Run to continue.用我自己的话估计说不清楚,请各位看下面:
我是跟着从delphi园地http://www.delphifans.com/main.asp下载的"delphi6数据库深入编程技术",在学第四章的ado编程事例1时就遇到上述问题啦,我都是跟着书上的设置的,因为书上的编程事例部分要用到dbdemos,所以在注册odbc时照葫芦画瓢把delphi7.0的自带dbdemos.mdb给弄上去啦,然后就用,结果就出错啦,各位可以看一下这本书,pdf格式的,
比我说的清楚.
 
这当然是你的函数、过程的参数没有处理好,你查查你用了什么参数?
null 跟 string 不能转换的
 
我也碰到同样问题。是在取记录集某字段值时出现上述错误。该字段为string型,而且非空,不知道怎么回事。
 
not convert variant of type(Null) into type(String)
是你的操作有问题或者是数据库设置不当,而程序中有忽略了,我遇见过,当时就是我数据库设置不当造成的
 
都用了ADO组件了
为何不通过Microsoft.Jet.OLEDB.4.0引擎连接呢?
不用通过odbc
从出错提示不似连接异常,可能创建程序有例外代码吧
 
跟ODBC的设置没有关系;
是你数据库中某个字段的值为空,比如class字段的值可能为空,如果是文本型要转换一下,如:
i_class.Text:=ADOQuery1.FieldByName('class').AsString;//对
i_class.Text:=ADOQuery1.FieldByName('class').Value;//错
 
上面这为朋友你说我数据库中某个字段为空的意思是我在adodataset里所选的某一个表中的字段为空还是我所连接到的数据库中所有的表的某个字段可能为空;我现在所选的employee中确实有为空的字段,你所说的语句得加到哪啊?
 
把你的相关部分代码贴出来让大伙看看,就知道问题所在了?
 
现在我听了flyat这位朋友,安装了mdac2.8里面有Microsoft.Jet.OLEDB.4.0,我不用odbc了,用了jet这个引擎,上面的null和string的问题没了(纳闷儿,为什么换个Jet.OLEDB.4.0问题就不存在了那,其实表employee里明明有为null的字段啊), 现在的问题换成了这个了,我还是选的employee,错误信息是project project2.exe raised exception class EDatabaseError with message'A componet named ByName already exits'.Process stopped.
Use Step or Run to continue.
我什么代码也没写啊,connectstring属性是Provider=Microsoft.Jet.OLEDB.4.0;Data Source=H:/Program Files/Common Files/Borland Shared/Data/dbdemos.mdb;Persist Security Info=False
我的组件名完全用的默认啊,而且我把表employee换成country就屁事没有了,所以我怀疑是不是这个employee表有问题啊(我完全没有改动过这个表,是delphi7里自带的employee)
 
后退
顶部