为什么我update的内容为空?

地球修理员 2005-04-21 03:12:54
我在窗体的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的提示信息?(在哪里定义)
...全文
363 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
herrick 2005-04-22
  • 打赏
  • 举报
回复
回复人: asurasa70(暴风) ( ) 信誉:100 2005-04-21 17:42:00 得分: 0


sybase的db的id能自动增长么?


***********************************************************
如果你用id作为表的Key,要更新的时候就要那样去设
这只是PB针对不需要程序控制的自动增长字段的一个处理机制
具体id的值,还是由DBMS去控制。
greatnear 2005-04-22
  • 打赏
  • 举报
回复
可以选择多个表,也可以含有同名的列.
但你的dw的update选择有问题。你最好重建dw看看。
地球修理员 2005-04-21
  • 打赏
  • 举报
回复
另外两个name一个是kind表的,另一个是provider表的。
请问一下是不是我建立dw的时候有问题?(dw能正常显示)
liliang800207 2005-04-21
  • 打赏
  • 举报
回复
duplicate insert column 意思是重复的插入了列
INSERT INTO "goods" ( "name", "bar_code", "unit", "price", "name", "name", "remark" ) VALUES ( ?, ?, ?, ?, ?, ?, ? )
从这个语句中可以看出你有三个name列???
greatnear 2005-04-21
  • 打赏
  • 举报
回复
INSERT INTO "goods" ( "name", "bar_code", "unit", "price", "name", "name", "remark" ) VALUES ( ?, ?, ?, ?, ?, ?, ? )

提示已经很清楚,你将name字段插入了3遍。
DW中是不是使用了计算字段,你在update中也选择了3个name,即name字段在同一条记录中被你使用了3次。
地球修理员 2005-04-21
  • 打赏
  • 举报
回复
sybase的db的id能自动增长么?
herrick 2005-04-21
  • 打赏
  • 举报
回复
id如果是数据库中定义的自动增长的,
那么update properties 中有个identity column下拉的,
在这里要把你的id字段选上
地球修理员 2005-04-21
  • 打赏
  • 举报
回复
除了id没有选中,其他的都选中了
不过这个dw里有2个字段用到dddw了,会不会有影响阿?
不过update的时候不用修改那2个关联表里的内容。
herrick 2005-04-21
  • 打赏
  • 举报
回复
好像update自动生成的insert也没有被填充完整。
*************************************************
什么意思,新加入值的字段,没有出现在insert语句?
如果是这样的话,你真的要看看update properties
中是否有把需要更新的字段都选中了!
地球修理员 2005-04-21
  • 打赏
  • 举报
回复
楼上所说的主键是db里的主键么?
herrick 2005-04-21
  • 打赏
  • 举报
回复
按照错误信息的提示,应该是重复数据的原因,而且是主键的重复
数据窗口,生成的SQL语句是根据每行每列的状态标志来生成的,
如果你要改变这个,只能通过手工的修改标志来实现。
不过一般的应用,都不需要这样做的,会把简单的事情做复杂了,
先针对数据的问题解决吧
地球修理员 2005-04-21
  • 打赏
  • 举报
回复
主键绝对不会有重复,这是我写了一个函数取检索db后得到的,
我用的是freeform的风格,应该一次只能增加一条记录

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

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

好像update自动生成的insert也没有被填充完整.
zxjnew 2005-04-21
  • 打赏
  • 举报
回复
看你是不是一次加了多条同样主键的数据进去
sh_zll 2005-04-21
  • 打赏
  • 举报
回复
去update的设置里看一下
li_d_s 2005-04-21
  • 打赏
  • 举报
回复
是不是新输入的数据和原有数据的主键重复了啊?
地球修理员 2005-04-21
  • 打赏
  • 举报
回复
表里已经有数据了,我检查过数据库了,的确设了主键,而且没有重复
li_d_s 2005-04-21
  • 打赏
  • 举报
回复
主键重复,表里面是不是已经有数据了?

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧