免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1990 | 回复: 6
打印 上一主题 下一主题

esql 中NULL的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-24 22:10 |只看该作者 |倒序浏览
我最近在写一个程序,要向一个表插入数据,表的字段非常多(100多个),所以我把表的字段都集合在一个$struct fileds的结构体里,这样就可以使用insert into aaa value($fields)的方式而不需要书写出全部的字段了。但是有一个问题,如何对付float的空值情况呢?
我知道可以射定指示器变量为-1,但是这样我就不得不在insert的时候写出所有的字段,是否可以有更好的方式解决这个问题呢,既可以使用结构体又可以写入空值呢?

论坛徽章:
0
2 [报告]
发表于 2004-02-24 22:16 |只看该作者

esql 中NULL的问题

结构体的成员是可以赋值(设置)为NULL的。

论坛徽章:
0
3 [报告]
发表于 2004-02-24 22:34 |只看该作者

esql 中NULL的问题

如果你的表中的字段允许有null值,那就可以了。不过我觉得你最好做一个初始化该结构值得函数,这样可以在每次调用insert之前的赋值操作的时候先对该结构的所有值进行初始化设定。

论坛徽章:
0
4 [报告]
发表于 2004-02-24 22:49 |只看该作者

esql 中NULL的问题

不可以,因为比如结构体中有个成员income是double类型,那么我进行以下调用
  $struct khxx_t khxx;
   khxx.income=(double)NULL;
   $insert into tkhxx values($khxx);
   的以后,看到里面的值不是空,而是0

论坛徽章:
0
5 [报告]
发表于 2004-02-24 22:53 |只看该作者

esql 中NULL的问题

此外,我也把informix里面的空值提取出来过
$struct khxx_t khxx;
$select * into $khxx from tkhxx where 。。。。。。;
printf("%f\n",khxx.income);
打印出来的结果是
nal(-1(7ffffffffffffff))我想只要能把这个常数给double就可以了吧,可是我不知道该如何给这个常数

论坛徽章:
0
6 [报告]
发表于 2004-02-25 12:07 |只看该作者

esql 中NULL的问题

可以使用risnull函数判断一下嘛,不过如果字段很多的话挺麻烦的

论坛徽章:
0
7 [报告]
发表于 2004-02-25 23:25 |只看该作者

esql 中NULL的问题

表中的字段很多, 但你可以用syscloumns和ultraedit
帮你写这条萨sql萨,

先将表中字段取出应该是一行一行的,
用ultraedit的正则表达式替换将^p换成,
将全部排成一行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP