社区
DataWindow
帖子详情
DataWindow、DataStore和SQL获取数据的区别?
hjshuang
2003-12-12 03:25:38
在书中见到这样的观点:
使用数据窗口代替潜入式SQL、动态SQL和游标可以提高执行性能。例如,你可以使用DataStore获取那些不需要显示的数据,代替用潜入式SQL填充数组的方式。作为一个通用的原则,只有在没有其他选择时才使用潜入时式SQL。
请问大家,这样的原理是什么?DataWindow、DataStore和SQL获取数据的区别?
...全文
82
5
打赏
收藏
DataWindow、DataStore和SQL获取数据的区别?
在书中见到这样的观点: 使用数据窗口代替潜入式SQL、动态SQL和游标可以提高执行性能。例如,你可以使用DataStore获取那些不需要显示的数据,代替用潜入式SQL填充数组的方式。作为一个通用的原则,只有在没有其他选择时才使用潜入时式SQL。 请问大家,这样的原理是什么?DataWindow、DataStore和SQL获取数据的区别?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
thelazyman
2003-12-14
打赏
举报
回复
DataWindow、DataStore 比较节省系统资源,响应快些!
而游标、嵌入式SQL响应要慢些,特别是使用循环时,建议少用!
mittee
2003-12-12
打赏
举报
回复
如果检索的数据少有时候为了少写代码,喜欢用一些
用游标、嵌入式SQL
klbt
2003-12-12
打赏
举报
回复
同意,不提倡使用游标、嵌入式SQL,尤其是在循环中要避免。
liliang800207
2003-12-12
打赏
举报
回复
workhand(☆★★★☆) 说得对
workhand
2003-12-12
打赏
举报
回复
DataWindow、DataStore 取出数以后就放到主缓冲区里了,每次再用的时候不用再到服务器上取数了,这样速度快,不占用资源。
好像是这样
PB 从
SQL
语句
获取数据
存储(My
SQL
)
PB11.5 从
SQL
语句
获取数据
存储Demo(数据库是用My
SQL
)。
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(
sql
ca) 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
store
用法
PB虛擬
data
store
用法-----------------------------------------------------------------------
pb 导入excle 到
data
window
有详细例子,有建表脚本,很简单很好用,易学易懂
pb
data
window
手册
pb
data
window
手册 pb
data
window
手册
DataWindow
611
社区成员
20,469
社区内容
发帖
与我相关
我的任务
DataWindow
PowerBuilder DataWindow
复制链接
扫一扫
分享
社区描述
PowerBuilder DataWindow
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章