hur.cn - 华软网

 热门搜索

为什么我update的内容为空?

  作者:未知    来源:网络    更新时间:2017/9/26
我在窗体的open里加了
long newrow
dw_1.settransobject(sqlca)
newrow=dw_1.insertrow(0)
dw_1.scrolltorow(newrow)

另外update选项也打开了

为什么在update的时候得到这样的错误
SQLSTATE = 37000
[Sybase][ODBC Driver][Adaptive Server Anywhere]Syntax error or access violation: duplicate insert column

No changes made to database.

INSERT INTO "goods" ( "name", "bar_code", "unit", "price", "name", "name", "remark" ) VALUES ( ?, ?, ?, ?, ?, ?, ? )

我明明在新建立的行里添加了数据,而且在确定按钮里加了
dw_1.accepttext()
dw_1.update()
请高手指点一下.

顺便问一句,我能不能自定义update的提示信息?(在哪里定义)

------华软网友回答------
主键重复,表里面是不是已经有数据了?
------华软网友回复------
表里已经有数据了,我检查过数据库了,的确设了主键,而且没有重复
------华软网友回复------
是不是新输入的数据和原有数据的主键重复了啊?
------华软网友回复------
去update的设置里看一下
------华软网友回复------
看你是不是一次加了多条同样主键的数据进去
------华软网友回复------
主键绝对不会有重复,这是我写了一个函数取检索db后得到的,
我用的是freeform的风格,应该一次只能增加一条记录

最主要的是
No changes made to database.
为什么他说我没有作任何改动?

INSERT INTO "goods" ( "name", "bar_code", "unit", "price", "name", "name", "remark" ) VALUES ( ?, ?, ?, ?, ?, ?, ? )

好像update自动生成的insert也没有被填充完整.
------华软网友回复------
按照错误信息的提示,应该是重复数据的原因,而且是主键的重复
数据窗口,生成的SQL语句是根据每行每列的状态标志来生成的,
如果你要改变这个,只能通过手工的修改标志来实现。
不过一般的应用,都不需要这样做的,会把简单的事情做复杂了,
先针对数据的问题解决吧
------华软网友回复------
楼上所说的主键是db里的主键么?

------华软网友回复------
好像update自动生成的insert也没有被填充完整。
*************************************************
什么意思,新加入值的字段,没有出现在insert语句?
如果是这样的话,你真的要看看update properties
中是否有把需要更新的字段都选中了!

------华软网友回复------
除了id没有选中,其他的都选中了
不过这个dw里有2个字段用到dddw了,会不会有影响阿?
不过update的时候不用修改那2个关联表里的内容。
------华软网友回复------
id如果是数据库中定义的自动增长的,
那么update properties 中有个identity column下拉的,
在这里要把你的id字段选上
------华软网友回复------
sybase的db的id能自动增长么?
------华软网友回复------
INSERT INTO "goods" ( "name", "bar_code", "unit", "price", "name", "name", "remark" ) VALUES ( ?, ?, ?, ?, ?, ?, ? )

提示已经很清楚,你将name字段插入了3遍。
DW中是不是使用了计算字段,你在update中也选择了3个name,即name字段在同一条记录中被你使用了3次。

------华软网友回复------
duplicate insert column 意思是重复的插入了列
INSERT INTO "goods" ( "name", "bar_code", "unit", "price", "name", "name", "remark" ) VALUES ( ?, ?, ?, ?, ?, ?, ? )
从这个语句中可以看出你有三个name列???

------华软网友回复------
另外两个name一个是kind表的,另一个是provider表的。
请问一下是不是我建立dw的时候有问题?(dw能正常显示)
------华软网友回复------
可以选择多个表,也可以含有同名的列.
但你的dw的update选择有问题。你最好重建dw看看。
------华软网友回复------
回复人: asurasa70(暴风) ( ) 信誉:100  2005-04-21 17:42:00  得分: 0  
 
 
   sybase的db的id能自动增长么?
  
 
***********************************************************
如果你用id作为表的Key,要更新的时候就要那样去设
这只是PB针对不需要程序控制的自动增长字段的一个处理机制
具体id的值,还是由DBMS去控制。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。