Foxtable(狐表)用户栏目专家坐堂 → 动态创建内部临时表


  共有2541人关注过本帖树形打印复制链接

主题:动态创建内部临时表

帅哥哟,离线,有人找我吗?
18523500398
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
动态创建内部临时表  发帖心情 Post By:2018/11/8 15:28:00 [只看该作者]

老师们,求助个问题,我想问一下怎么动态创建一个内部表啊,内部表的数据和表的格式来自我外部表的查询

 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2018/11/8 15:29:00 [只看该作者]

内部表不用了过后就删除

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 15:30:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2018/11/8 15:32:00 [只看该作者]

感谢感谢,之前好像我弄过相似的问题。尴尬。谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2018/11/8 17:28:00 [只看该作者]

还能顺便问一下,ft里面怎么从外部临时表查询出来的数据保存到ft内部的临时表嘛?
我用绑定内部临时表的查询语句,临时表的值是空的。
我采用的方式:外部数据源建立存储过程来查询,查询的思路是把一个表的数据的行转换成列,因为对应的条件下的行数不同,所以对应的列数不同,所以就没有采用再建立表的形式了。
然后在ft内部的临时表的sql语句调用存储过程,但是外部数据查询出来的值绑定不到内部的临时表中,想问一下怎么解决,这个问题困扰了我好久,我之前是用建表的形式解决的,但是感觉那个方法不够科学,想寻求一个解决的方法。

 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2018/11/8 17:29:00 [只看该作者]

执行的存储过程查询出来的值是sql语句经过处理的,处理过后的数据就相当于一个临时查询结果

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 17:38:00 [只看该作者]

得到datatable,可以绑定到table,或者直接用

 

Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源"        'Name前空格要去掉
cmd.CommandText = "Exec 存储过程名"  '有参数--cmd.CommandText = "Exec 存储过程名 参数1,参数2"

Dim t As DataTable = cmd.ExecuteReader

 

只能返回一个记录集
如果存储过程产生多个记录集,
就在存储过程中先执行set nocount on,再执行Select
而要返回记录集时,就要先执行set nocount off,再执行Select

 

 



 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2018/11/8 17:43:00 [只看该作者]

我这样弄了,把查询的集放datatable里面,然后我统计了一下,datatable里面的行数和列数都为0.还是不行

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 17:46:00 [只看该作者]

1、你sqlserver里面执行 Exec 存储过程名 能否得到返回一个表格?如果能够得到,foxtable里面也可以。

 

2、认认真真看这段文字:

 

只能返回一个记录集
如果存储过程产生多个记录集,
就在存储过程中先执行set nocount on,再执行Select
而要返回记录集时,就要先执行set nocount off,再执行Select


 回到顶部
帅哥哟,离线,有人找我吗?
18523500398
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:178 积分:1150 威望:0 精华:0 注册:2018/9/17 11:16:00
  发帖心情 Post By:2018/11/8 17:49:00 [只看该作者]

Dim ss As String
ss="JL20181029008"
Dim cmd As new SQLCommand
cmd.ConnectionName=_strBooks
cmd.CommandText="exec show_mftf '" & ss & "'"
Dim dt As DataTable
dt=cmd.ExecuteReader()
Dim Rowcount As Integer
Dim Colcount As Integer
Rowcount=dt.DataRows.Count
Colcount=dt.DataCols.Count
MessageBox.Show(Rowcount)
MessageBox.Show(Colcount)

这是我的source,我在sqlserver里面执行出来的结果集是
JL20181029008 0 0 0 0 0 0 0 0 0 0 0
这样的。
我这边不能添加图片附件,只有文字了。
[此贴子已经被作者于2018/11/8 17:50:05编辑过]

 回到顶部
总数 19 1 2 下一页