首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

dw保存是产生的insert语句格式有关问题

2013-08-09 
dw保存是产生的insert语句格式问题各位大侠们,我遇到一个问题,我的前台程序及dw都是一样的,但连接不同的数

dw保存是产生的insert语句格式问题
各位大侠们,我遇到一个问题,我的前台程序及dw都是一样的,但连接不同的数据库时(都是sqlserver2008r 2,只是在不同的机器上),dw保存时,对数据库产生的insert语句格式不一样,正常是产生的格式是 
insert into table1 (column1,..) values (value1,..)

但有些库从后台跟踪到的语句是以下格式
exec sp_executesql N'INSERT INTO table1 (column1,..) values (@parm1,..),N'@Parm1 decimal(1,0),...@Parm1=2,@parm2=null....

后面这种格式带来一个问题,这个语句会把该dw的所有字段都赋予值,有些前台并没有赋值的这里会赋NULL值,如果数据库对该字段要求非NULL值(即使数据库给了字段默认值),会导致数据库报错

这是为什么呢?我的数据库连接方式都是一样,用 oledb 
datawindow?sqlserver
[解决办法]
怀疑和数据库的连接方式有关

在dbparm里增加DisableBind=0的试试

SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='(local)',PROVIDERSTRING='database=aaa',DisableBind=0"
[解决办法]
你更新方式换一下试试, update那里都选第二个,另给默认值的话,dw中也可以给,这个问题我也曾遇到过,不过没有深究,直接在dw中改了
[解决办法]
dw都是一样
是说是同1个DW
还是这个DW都对应同1个表?

查看DW原码,
有时是  retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"bas_admin_district~" ) 
也可能是
 retrieve="  SELECT bas_admin_district.......

热点排行