社区
DataWindow
帖子详情
怪事:为什么数据窗口对象里能修改更新,放到datawindow里就不能修改更新?
cht3160
2003-08-21 02:32:39
报错:
Row changed between retrieve and update.
No changes made to database.
...全文
37
7
打赏
收藏
怪事:为什么数据窗口对象里能修改更新,放到datawindow里就不能修改更新?
报错: Row changed between retrieve and update. No changes made to database.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cht3160
2003-08-22
打赏
举报
回复
今天接着问
怪事
理由1.数据源里可以update(),放到dw_1中就不能update().
理由2.可以添加后update(),不能修改,删除后update().
理由3.别的数据源放到dw_1中一切正常.
这是为什么??????????
albert_qingdao
2003-08-21
打赏
举报
回复
很有可能是你指定的update主键不正确,或者逐渐存在重复数据。
eastpond
2003-08-21
打赏
举报
回复
检查一下dw_1的update属性
cht3160
2003-08-21
打赏
举报
回复
1.代码:dw_1.update()
2.前面无行
3.哪里设置,我找不到,能不能告诉我?
workhand
2003-08-21
打赏
举报
回复
我前几天还遇到这个问题,我的情况是:用数据窗口的update提交,结果我在代码里不小心给数据窗口的属性set了一下,例如:我新增的数据dw的status应该是Newmodify,我给set成Datamodified了,然后dw生成的sql是update....,其实应该是Insert...,就提示跟你相同的错误。
不知道这个对你有没有帮助,希望你的问题能解决。
xingxing
2003-08-21
打赏
举报
回复
你在update前数据的行有变化,仔细看看代码,漫漫的调试吧!
冷箫轻笛
2003-08-21
打赏
举报
回复
帖出代码来看看!
Data
Window
数据
窗口
资料
Data
Window
数据
窗口
资料
PB 刷新
data
window
当前行的
数据
当
数据
存在主次表时,当
更新
了次表
数据
后,主表
数据
在后台有更变时。可利用刷新主表当前行的方法重显主表
数据
。 /************************************************************ 函数名称: f_refresh_currentrow(adw) 功 能: 刷新DW当前行
数据
,不可刷新NO update or 带arguments的DW 参数说明: adw 目标DW 返 回 值: integer 成功返回1,失败返回-1 作 者: sean 创建时间: 2010年8月18日 ************************************************************/ string ls_
data
object string ls_keys[] //key Column Name string ls_dbname[] //key field Name string ls_coltype[] //field style string ls_tablenm //table name string ls_condition //sql Condition long ll_currentrow //Current Row numeric long ll_column //Column count integer i
data
window
ldw
data
store l
data
store ldw=adw if ldw.rowcount( )=0 then return -1 elseif trim(ldw.describe( "
data
window
.table.arguments"))<>'?' then messagebox('','刷新
数据
窗口
当前行失败!,
数据
窗口
需要参数',exclamation!) return -1 else ll_currentrow=ldw.getrow( ) FOR ll_column = 1 TO long(ldw.object.
data
window
.column.count)//key names If ldw.Describe("#"+string(ll_column)+".key") ='yes' Then i++ ls_keys[i]=ldw.Describe("#"+string(ll_column)+".name") ls_dbname[i]=ldw.Describe("#"+string(ll_column)+".dbname") ls_coltype[i]=ldw.Describe("#"+string(ll_column)+".coltype") End If NEXT if upperbound(ls_keys[])=0 then messagebox('','刷新
数据
窗口
当前行失败!,没有主键',exclamation!) return -1 else ls_tablenm=left(ls_dbname[1],pos(ls_dbname[1],'.') -1) //table name for i=1 to upperbound(ls_keys[]) if pos('numb,deci,long,',LeftA(ls_coltype[i],4) +',')>0 then ls_condition+="and "+ls_dbname[i]+"="+string(f_getitem(ldw,ll_currentrow,ls_keys[i])) else ls_condition+="and "+ls_dbname[i]+"='"+string(f_getitem(ldw,ll_currentrow,ls_keys[i]))+"'" end if next ls_condition=mid(ls_condition,4) //sql Condition l
data
store=create
data
store l
data
store.
data
object=ldw.
data
object l
data
store.settransobject( sqlca) if f_addwhere_retrieve(l
data
store,ls_condition)=1 then if l
data
store.rowcount( )=1 then ldw.object.
data
[ll_currentrow]=l
data
store.object.
data
[1] ldw.setitemstatus( ll_currentrow, 0, primary!, NotModified!) //if ldw.getrow( )<>ll_currentrow then ldw.scrolltorow( ll_currentrow) end if else messagebox('','刷新
数据
窗口
当前行失败!,条件语法错误',exclamation!) return -1 end if destroy l
data
store end if end if
PB
Data
window
数据
窗口
编程指南WDL
PB
Data
window
数据
窗口
编程指南WDL,电子图书中详细讲解了
Data
window
编程的各种方法!
PB
数据
窗口
source介绍及举例
数据
窗口
源码介绍 (举例见d_dbit_example.srd,测试
数据
库为PB自带的EAS Demo DB V120) 1.第一行:release 12;
数据
窗口
所属PB的版本号,如果想把高版本的
data
window
导入低版本的PB中要
修改
此数字; 2.
data
window
()行 通常用
修改
processing属性,可以把你的
数据
窗口
由grid变成freeform或其它类型 例:freeform:0 grid:1 3.header()行 可以整行复制粘贴,并命名为header[1],header[2],这样可以让
数据
窗口
有多个header 4.table()行 这
里
全是定义的
数据
属性,是setitem,update,object.
data
等方法访问的根源 如果存在table()
里
的column,
数据
窗口
里
可以不存在任何
对象
,仍然可以访问
数据
窗口
的
数据
如果想创建一个空的
数据
窗口
,可以只定义: release 12; table() 5.table(column行) 是第几个column,它的ID就是多少,其中也定义了是否可以update时和
更新
到
数据
表的字段名 6.table(retrieve行) 检索
数据
时使用的SQL语句,可以通过setsqlselect或modify("table.sqlselect")方法去动态
修改
修改
后要重新定义
数据
窗口
的
更新
属性 7.column()行 id即是对应table(column行)
里
的行次,名称(name)可以随便命名,也可以没有,则默认为table(column行)
里
的name 8.compute()行 计算列,可以通过表达式计算显示特定值(具体函数可以见共享
里
的画笔函数). 9.text()行 有时可以代替计算列; 通过定义text的表达式,可以实现一列中显示两个字段值,注意结果必须要转换成string类型(而column和compute则不行); 10.htmltable()行 按照格式导出(saveas)html文件,为了保证格式的完整,
数据
窗口
的单位最好设置成pixels GenerateCSS='1' //保持格式及颜色 Border='0' //不要table边框 CellSpacing='0' //单元格无间距(此项在界面上经常设置不上) 注: (1)Grid生成
标签,Freeform生成
+
标签; (2)生成htmltable时,不知为何会在CSS中的开始自动加一个分号";",导致excel等浏览器打开
不能
正常显示格式; (3)band为foreground或background的
对象
导不出来,可以动态
修改
后再导出. 11.export.xml()行 定义导出xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate值 12.import.xml()行 定义导入xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate值 13.表达式介绍 略 14.其它也略
在PB中巧用下拉
数据
窗口
在PB中巧用下拉
数据
窗口
,内含源码。PowerPB提供了下拉
数据
窗口
(DropDown
Data
Window
),使
数据
窗口
更灵活、更方便
DataWindow
609
社区成员
20,469
社区内容
发帖
与我相关
我的任务
DataWindow
PowerBuilder DataWindow
复制链接
扫一扫
分享
社区描述
PowerBuilder DataWindow
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章