求助:怎样在数据窗口中使用临时表?

chenyikun2003 2003-05-09 09:37:09
我创建了一个SQL Select 数据源的数据窗口,想使用一张临时表,但总不成功,下面是我的操作步骤,请大家看一下兄弟有什么问题:
一、创建一张实表 tab_name 。
二、使用 tab_name 表创建 SQL Select 数据源的数据窗口 dw_name。
三、在代码中:创建临时表#tab_name,结构同 tab_name , 并将 dw_name 的sql语句改为‘...from #tab_name ...’。
四、删除实表 tab_name , 在运行程序时,执行到dw_name.retrieve()时,出现下列错误 '#tab_name 对象已存在'。
我不知道哪儿有问题,请大家指教。
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyikun2003 2003-06-07
  • 打赏
  • 举报
回复
序号有误,大家从上向下读就行
chenyikun2003 2003-06-07
  • 打赏
  • 举报
回复
这个问题我已经解决,步骤:
一、创建一张实表 tab_name 。
二、使用 tab_name 表创建 SQL Select 数据源的数据窗口 dw_name。
三、在Database 画笔中,使用语句建立临时表#tab_name。
四、在PB 中,datawindow画笔中,修改dw_name的SQL语句,将表名统统修改为#tab_name,因为此时系统中已有了表#tab_name,故PB并不报错。
三、在代码中:创建临时表#tab_name。数据窗口就可以使用咧。
四、实表 tab_name 删不删已不重要,但此时实表已无用了。
fengzeng 2003-05-11
  • 打赏
  • 举报
回复
在SQL SERVER中创建,让SQL SERVER自动处理
tjm1 2003-05-11
  • 打赏
  • 举报
回复
为什么要删除实表?

在pb中创建临时表如下
string ls_table
ls_table = "create table #tab_name(...)"
EXECUTE IMMEDIATE :ls_table;

更改数据窗口的数据源:
dw_name.setsqlselect(变量)
dw_name.settransobject(sqlca)
dw_name.retrieve()

删除表
string ls_sql
ls_sql = "drop table tablenname"
EXECUTE IMMEDIATE :ls_sql;

试试看,不知对不对。
946 2003-05-10
  • 打赏
  • 举报
回复
好象临时表SP才可以用
如果想要一样的表结构和数据,可以这样
select * into temp_tab_name from tab_name
这样产生一个新表 temp_tab_name

611

社区成员

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

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