如何实现批量录入DateWindows 真诚感谢!!!

programmer_lee 2003-08-21 11:56:15
我的窗体上有一个数据窗口dw_1,有一个button1,
现在我想完成单击按钮然后可以一次往数据窗口录入多条数据..

应该在按钮的单击事件如何写:
我已经写好了SQL语句,根据它的where条件。每次至少Select出300条数据..想一次将这些数据写入数据窗口....


求助各位高手支援!!!!
...全文
99 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
rogery 2003-08-23
  • 打赏
  • 举报
回复
写入数据窗口....???


要不要保存?如果这三百条数据符合显示的条件的话应该可以显示出来呀。

关键是看楼主到底要实现什么功能
Heavenfinder 2003-08-23
  • 打赏
  • 举报
回复
用游标或者做个通用查询程序,用自己设定的条件作为where语句
sinkiangscorpio 2003-08-23
  • 打赏
  • 举报
回复
可以用datastore 啊,然后再取出来,用for ....next ,dw_1.setitem()
YANGSTAR8888 2003-08-23
  • 打赏
  • 举报
回复
用游标。
jdsnhan 2003-08-22
  • 打赏
  • 举报
回复
那就用我原来说的方法,得到sql,修改,创建,copy出来,(可能还要修改)
保存。
pbtech 2003-08-22
  • 打赏
  • 举报
回复
用rowscopy就完事了!
programmer_lee 2003-08-22
  • 打赏
  • 举报
回复
我的DateWindows中原来有一条SQL 语句,并且Where中有变量。。
我现在在另一个按钮中加上另一条SQL,最后retrieve(),
可是在运行的时候每次单击新按钮,都提示我输入原来SQl中的几个变量。。

这两种SQL还都要保留,到底怎么办。。
programmer_lee 2003-08-22
  • 打赏
  • 举报
回复
up
polugen 2003-08-21
  • 打赏
  • 举报
回复
两个数据窗口间进行ROWSCOPY
freebirdwjy 2003-08-21
  • 打赏
  • 举报
回复
用选出的select语句做一个datastore或datawindow,然后用rowscopy或者sharedata即可
jackzhang168 2003-08-21
  • 打赏
  • 举报
回复
不好意思,搞错了
可以用datastore 啊,然后再取出来,用for ....next ,dw_1.setitem()
jackzhang168 2003-08-21
  • 打赏
  • 举报
回复
insert into tab1(col1,col2,...)
select .... from tab2 where ......
programmer_lee 2003-08-21
  • 打赏
  • 举报
回复
是只需要读出,然后并保存,
可是这个数据窗口中原来是一条一条插入的,现在原来的功能保留,还要增加一次全录的功能,
所以增加一个新的按钮,想在新按钮中实现批量录入....
albert_qingdao 2003-08-21
  • 打赏
  • 举报
回复
你是说要把数据库中的数据一次性的取到datawindow中吧?用retrieve()方法就可以了。何必要取出数据再送到datawindow中呢?
jdsnhan 2003-08-21
  • 打赏
  • 举报
回复
重新审视
to 楼主 到底想实现什么功能,如果只想插入,保存,完全可以不用这种方法
读出,插入就可以了。
to workhand(hander) 也可以那样做,直接创建出dw,但有时候为了执行其他操作
习惯性的放到另外一个dw中
programmer_lee 2003-08-21
  • 打赏
  • 举报
回复
我还是没有实现功能:
我的数据窗口是dw_1
我的SQL语句是:Select a.c1,a.c2,a.c3,b.c1,b.c2,b.c3
From a,b
Where a.c1=b.c1

请各位高手帮帮我,我被这个问题快烦死了。。。。。
diki 2003-08-21
  • 打赏
  • 举报
回复
用游标:
变量:用来存放字段
DECLARE 游标名 CURSOR FOR

你的SQL语句

OPEN 游标名 ;
FETCH 游标名 INTO 字段变量;
do while(SQLCA.sqlcode=0)
Insert 数据窗口关联的库
FETCH 游标名 INTO 字段变量;
loop
CLOSE 游标名;
数据窗口.retrieve()
workhand 2003-08-21
  • 打赏
  • 举报
回复
to jdsnhan:
然后重新创建ds.SetSQLSelect(ls_newsql),检索ds.retrieve()
如果可以的话,rowscopy是不是要求dw和ds的sql语句要一样?
如果是的话,能不能直接给dw的sql重新创建dw.SetSQLSelect(ls_newsql),检索dw.retrieve()? 我也是初学。谢谢
bomber2001 2003-08-21
  • 打赏
  • 举报
回复
up
jdsnhan 2003-08-21
  • 打赏
  • 举报
回复
可以先建立一个dw或ds,然后得到他的sql(也可以直接写出来)
然后重新创建ds.SetSQLSelect(ls_newsql),检索ds.retrieve()
最后用rowscopy
dw.rowscopy(1,dw.RowCount(), Primary!, ds,ds.rowcount()+ 1, Primary!)
试试吧
加载更多回复(1)

609

社区成员

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

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