以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何快速取得外部数据源内所有表的记录数?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59912)

--  作者:瞩望星空
--  发布时间:2014/11/13 13:04:00
--  [求助]如何快速取得外部数据源内所有表的记录数?

已建立外部数据源SQL的连接,并命名为“sa_sql”,这时通过预览数据源,可以看到有许多表。

 

请问如何快速取得这个外部数据源内所有表的记录数?最好是列表方式。

 

 

列出外部数据源的表名:

Dim lst As List(Of String)

lst = Connections("sa_sql").GetTableNames

For Each nm As String In lst    

     Output.Show(nm)

Next

[此贴子已经被作者于2014-11-13 15:31:57编辑过]

--  作者:Bin
--  发布时间:2014/11/13 14:07:00
--  
http://www.foxtable.com/help/topics/1943.htm
--  作者:瞩望星空
--  发布时间:2014/11/13 15:33:00
--  
如何取得后台表的总记录数?试了几次没成功
--  作者:有点甜
--  发布时间:2014/11/13 15:36:00
--  

用sqlcommand

 

sql语句 "select Count(*) from {" & nm & "}"

 

http://www.foxtable.com/help/topics/0696.htm

 


--  作者:瞩望星空
--  发布时间:2014/11/13 16:38:00
--  
谢谢,可以了
[此贴子已经被作者于2014-11-13 16:44:14编辑过]

--  作者:czy
--  发布时间:2014/11/13 16:52:00
--  

这个直接这样就可以了吧

 

Output.Show(Connections("sa_sql").GetTableNames.Count)


--  作者:瞩望星空
--  发布时间:2014/11/13 17:30:00
--  
嗯,明天再试试这个方法。 目前17G数据库统计费时4分钟。
--  作者:瞩望星空
--  发布时间:2014/11/13 22:59:00
--  
以下是引用czy在2014-11-13 16:52:00的发言:

这个直接这样就可以了吧

 

Output.Show(Connections("sa_sql").GetTableNames.Count)

这个语句是取得外部数据源所包含的表数量,而不是表的记录数啊

 

用一个ACCESS外部数据库作了测试:

Dim lst As List(Of String)
lst = Connections("sa_sql").GetTableNames
For Each nm As String In lst
     MessageBox.show("表名: " & nm & "  ,记录数: " & DataTables("" & nm & "").DataRows.Count)
Next

 

明天去SQL数据库试试。

[此贴子已经被作者于2014-11-13 23:06:49编辑过]

--  作者:有点甜
--  发布时间:2014/11/13 23:01:00
--  
 回复8楼,建议你还是在sqlserver那里做一个存储过程,查询各个表的记录数,最后一次性返回吧,因为你在foxtable里每查一次,连接时间都会很长的。
--  作者:瞩望星空
--  发布时间:2014/11/13 23:08:00
--  

哦,谢谢甜总指点。这个存储过程得另外查资料了,我试试。

[此贴子已经被作者于2014-11-13 23:09:18编辑过]