以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQL语句的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144606)

--  作者:ap9709130
--  发布时间:2019/12/25 11:36:00
--  SQL语句的问题
 老师

今天发现一个很奇怪的问题.出现一个以下错误:

IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。

测试后发现,是SQL 语句生成表出错,但我output.show 出SQL语句,在执行SQL 中又没有问题.不知道是什么原因

代码如下:

cmd.Co mand Text = se le ct _Identify,产品名称,CAST(round({物料信息表}.包装系数,2) as varchar)+IIF(单位 is null,\'KG\',单位)+ \'/\'+ {物料信息表}.包装单位 as 包装规格,分类名称,所属部门,所属公司,IIF(单位 is null,\'KG\',单位) as 单位,开票名称 from {物料信息表} where _Identify in (32)

wlb = cmd.ExecuteReader()

SQL执行中可以,但生成表会出错.

--  作者:有点蓝
--  发布时间:2019/12/25 12:04:00
--  
什么数据库?哪个版本?确定这个SQL可以执行?SQL SERVER 2012开始才有IIF函数。

1、改为case when
2、把这个sql做成视图调用试试

0x80004005貌似是共享的问题:https://www.baidu.com/baidu?word=0x80004005

--  作者:ap9709130
--  发布时间:2019/12/25 12:12:00
--  
 老师

是SQL server 2012. 太奇怪了. 这么简的SQL 语句. 现在还在找原因.

--  作者:ap9709130
--  发布时间:2019/12/25 12:16:00
--  
 老师

不好意思,低级错误,没有指定数据源.