各位老师好,我现在有个问题是关于工资计税.
先在sql server2000做触器,在sql server2000 这一端,当修改数据时税金可写入,但在 delphi 用Adoconnection1,Adotable1 读出,修改数据.但是当运行开始就出错了,
错误信息: project project1.exe raised exception class EVarianttypecastError with message'could not convert varant of 
type (null)into type(string)' process stopped use step or run to continue
如何解决呢.   

解决方案 »

  1.   

    修改数据的时候是不是有些字段用了空值? 空值不能转化为string类型.你在delphi里面用.value试试
      

  2.   

    有可能你的查询中某个字段值为null,类型不能转换为string类型 应在sql语句中处理null值 
    ...where field is not null...
      

  3.   

    或者改换一下ADOConnection的连接方式,或者是登录名称按sa登录再试试。
      

  4.   

    not convert varant of type (null)into type(string)
    不能将空值转化为字符串
    肯定是你在修改数据时,激活了sql的触发器,看看触发器中是不是对未赋值(或空值)没有做处理,从而导致了错误
      

  5.   


       could not convert varant of 
       type (null)into type(string)
      

  6.   

    加入默认值也不可.改用 BDE 就可以了.但这样一来,运行时如何做到不让数据库登录窗口出现呢?而用ADO时,数据库登录窗口可以不出现.(database login窗口) 
      

  7.   

    rouqing 老师:你好!Adoconnection 我只会一种连接方式.就是connectionString 连到ODBC数据源,还有那一种连接呢,请赐教. 一运行就错,不是在登录时出错.
      

  8.   

    晕,BDE也可以不让数据库登录窗口出现,在datebase控件里,也是loginprompt属性。
      

  9.   

    按提示就是null值的原因,你可以先在查询分析器中执行一下sql语句,看看具体信息
      

  10.   

    谢谢众多老师的帮助,特别是 Woniugongzuoshi 老师的具体指导使得问题得以解决.在此表感谢.