Foxtable(狐表)用户栏目专家坐堂 → 向SQL数据库追加数据


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

主题:向SQL数据库追加数据

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


加好友 发短信
等级:五尾狐 帖子:1128 积分:11035 威望:0 精华:2 注册:2008/9/1 10:45:00
向SQL数据库追加数据  发帖心情 Post By:2014/10/4 11:33:00 [只看该作者]

向SQL数据库追加一批数据,我的做法是用Merger方法将EXCEL类型数据合并到数据表中,再执行保存命令,

由于数据量较大(80列,2000行),保存比较耗时(可能是我的方法有问题)做了一个进度条,代码如下:

 

Dim s As Integer
Dim jd As WinForm.ProgressBar = e.Form.Controls("ProgressBar1")
jd.Minimum=0
jd.Maximum=Tables("测试").Rows.Count
e.Form.Controls("ProgressBar1").Visible=True
For s = 0 To Tables("测试").Rows.Count-1
    Tables("测试").Rows(s).Save()
    If s Mod 20 = 0 Then
        jd.Value=s
        Application.DoEvents()
    End If
Next
MessageBox.Show("导入完成!","提示")

 

现在主要想解决保存的速度问题,搜了一下论坛贴子,说是用事务,但这句不知道怎么弄

cmd.CommandText = "save From {测试}"

或者各位老大有什么好办法,请赐教!


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


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

 1、你尝试直接保存 Datatables("测试").Save 看保存速度;

 

 2、如果1的方法保存依旧很慢,就需要用sql语句去实现 http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52855&replyID=&skin=1

 


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


加好友 发短信
等级:五尾狐 帖子:1128 积分:11035 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2014/10/4 11:46:00 [只看该作者]

Datatables("测试").Save 这个速度和

 

For s = 0 To Tables("测试").Rows.Count-1
    Tables("测试").Rows(s).Save()
    If s Mod 20 = 0 Then
        jd.Value=s
        Application.DoEvents()
    End If
Next

是一样的,早已测试过了

 

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52855&replyID=&skin=1 这个贴子也看过了,是从一个表向另一个表保存数据,如果我用这个方法,是不是得增加一个过渡表?

 

[此贴子已经被作者于2014-10-4 11:46:42编辑过]

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


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

 回复3楼,人家只是模仿,你关键是看sql语句怎么生成。

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


加好友 发短信
等级:五尾狐 帖子:1128 积分:11035 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2014/10/4 11:49:00 [只看该作者]

我备份数据采用的就是这个方法http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52855&replyID=&skin=1 
[此贴子已经被作者于2014-10-4 11:49:07编辑过]

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


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

 关键是看最后的SQL语句是什么,怎么生成,保存数据实际上就是执行一段sql语句即可。


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


加好友 发短信
等级:五尾狐 帖子:1128 积分:11035 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2014/10/4 12:06:00 [只看该作者]

谢谢,我学习一下!

 回到顶部