Foxtable(狐表)用户栏目专家坐堂 → 如何将数据源中的表名和视图写入表中


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

主题:如何将数据源中的表名和视图写入表中

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/13 23:04:00 [只看该作者]

Dim cmd As New SQLCommand
cmd.ConnectionName = "数据源名称"
cmd
.CommandText = "create view s1 as select * f rom sapprd.t001"
cmd.ExecuteNonQuery()

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/8/14 22:10:00 [只看该作者]

        For Each r As Row In Tables("SAP数据源").Rows
            If r("表加载") = True Then
                Dim qb As new QueryBuilder
                qb.C
                qb.TableName = r("表名")
                qb.TableCaption = r("表描述")
                qb.Selectstring = "select * f rom " & r("表名") & ""
                qb.Build
               Else
                If DataTables.Contains(r("表名")) = True Then
                    DataTables.unload(r("表名"))
                End If
            End If
        Next

此主题相关图片如下:加载数量过大时提出错误.png
按此在新窗口浏览图片
我在运行上述代码加载表时,提示上述错误
B2在.net里被中断,报错:  [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014

        在DB2的开发过程中,今日运行了一个较为复杂的sql语句。使用DB2服务端的控制台,运行该sql大约需要1分钟左右。而,在.net下,开发的程序里,运行30秒后,就被打断了,爆出异常  [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014。找了网上好多的资料,都没有结果。只在一篇ADO开发DB2的文章里找到了线索:

        我们开发时,只注意到了connection的连接时长。事实上,connection过期时间属性,已经被设置为0了,且只读。所以默认是永不过期的。

      而对于我们每次SQL语句的执行,事实上是和DB2.DBCommand直接相关的。有意思的是,DBCommand也有个CommandTimeout 属性,且可读可写。将其设置为0后,就不会爆出处理被中断的问题了。呵呵!

那我现在将上述代码修改为

        For Each r As Row In Tables("SAP数据源").Rows
            If r("表加载") = True Then
                Dim cmd As new  SQLCommand
                cmd.CommandTimeOut = 0
                cmd.ExecuteNonQuery
                Dim qb As new QueryBuilder
                qb.C
                qb.TableName = r("表名")
                qb.TableCaption = r("表描述")
                qb.Selectstring = "select * f rom " & r("表名") & ""                                            
                qb.Build
         
            Else
                If DataTables.Contains(r("表名")) = True Then
                    DataTables.unload(r("表名"))
                End If
            End If
        Next
为什么上还要出现上述错误,应怎样修改代码

[此贴子已经被作者于2018/8/15 14:25:51编辑过]

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/8/14 22:11:00 [只看该作者]

老师请问:查询指定表且该表中存储了70万条记录,应怎么样修改上述代码

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/14 22:20:00 [只看该作者]

分页:http://www.foxtable.com/webhelp/scr/2692.htm


或者初始不加载,然后通过条件进行查询和分页

select * from " & r("表名") & " where 1=2"


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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/8/15 14:27:00 [只看该作者]

请问下老师应怎么修改上述代码

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


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

qb.Selectstring = "select * f rom " & r("表名") & " where 1=2"   

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


加好友 发短信
等级:小狐 帖子:398 积分:2369 威望:0 精华:0 注册:2017/3/19 15:30:00
  发帖心情 Post By:2018/8/15 15:21:00 [只看该作者]

修改成上述代码,加载表时,就不会加载数据,那有时要显示某一年的数据(200万条记录)时怎么解决加载失败问题

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


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

以下是引用wtfwsk05在2018/8/15 15:21:00的发言:
修改成上述代码,加载表时,就不会加载数据,那有时要显示某一年的数据(200万条记录)时怎么解决加载失败问题

 

分页,如(语法是sqlserver的)

 

Select top 10 * from 视图


 回到顶部
总数 18 上一页 1 2