本人刚学delphi6.0 ,用odbc 连接informix 数据库sqlstr :='update  tableaa set num1=:num1 ';
query1.sql.clear;
query1.sql.add(sqlstr);
query1.prepare;
query1.parambyname('num1').value:=edit1.text;
query1.execsql;其中num1 为数值型字段(integer); edit1.text 为数字(1,2....)时程序不报错,
我想让num1 为空值(null),(edit1.text='') 时 程序就报错!!
但我在后台informix库中运行(update tableaa set num1='')程序不抱错,请问如何
解决,急死俺了,请大虾帮忙!!!!!

解决方案 »

  1.   

    num1 为数值型字段(integer) 数据库怎么会让你随便给它设置任意的值呢?
    你可以将空值等同于0(或者-1)啊,然后在自己的程序中判断是否空值!
      

  2.   

    可是informix 后台可以为空值的呀 (update tableaa set num1=''),
    sql 语句最终不还是要在后台执行吗?
      

  3.   

    num1='' 和num1 is null是两个概念,null是没有任何值得意思
    即时是null=null也是不成立的条件
      

  4.   

    当然要出错了呀
    edit1.text:=''是一个字符型呀.
      

  5.   

    但是我这样执行不报错,edit1.text 为空值可以!!sqlstr :='update  tableaa set num1='''+edit1.text+'''';
    query1.sql.clear;
    query1.sql.add(sqlstr);
    query1.prepare;
    query1.execsql;