Foxtable(狐表)用户栏目专家坐堂 → [求助] SQL语句插入行报错


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

主题:[求助] SQL语句插入行报错

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/23 16:50:00 [显示全部帖子]

用Union all连接SQL语句试试,

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/23 17:03:00 [显示全部帖子]

以下是引用lsy在2014-6-23 16:53:00的发言:

慢在cmd.CommandText的合成上。

 

现在想用下面的语句:

 

Dim cmd As New SQLCommand
cmd.ConnectionName = _Connection 'ACCESS
cmd.CommandText = "Insert Into 订单 Select * From 导入订单"
cmd.ExecuteNonQuery
MessageBox.Show("OK")

 

但【导入订单】在内部数据源,而【订单】在ACCESS数据源,两个数据源如何兼顾?

 

合成SQL语句不会慢把?除非你这个表非常大,SQL语句也有长度限制,可能要分批。


跨数据源的话就没办法按照插入表的方法了


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/23 17:23:00 [显示全部帖子]

换一个思路,你是先用自动导入,然后进行操作

如果你EXCEL是规范的表,那么使用SQL操作EXCEL,获取dt,
不是规范的就是通过代码导入到转移。

将dt转移到 ACCESS保存。这样减少2步操作,效率会有很大提升。

加快效率主要就是将所有数据导入到内存,通过内存进行转换,然后再SAVE应该可以了。还有另一个问题,不是Foxtable慢而是ACCESS数据源在对数据多的时候效率低。




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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/23 17:33:00 [显示全部帖子]

应该不会,我的是SQL2005, 一次性保存1000多行也就1-2秒的事情

不过Foxtable,在保存上万的数据的时候会出现卡死的情况。这个在2012版本的是没有的,2013和2014好像都存在。

比如同步几万行表会出现卡死情况,但是你直接使用FILL进行加载却只要1-2秒的事情。


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/24 9:17:00 [显示全部帖子]

InSert Into 订单 (产品,客户,雇员,单价,数量,日期,折扣,金额,已付款) Values ('PD05','CS02','EP03',30.5,289,#2012-02-13#,0,8814.5,False)

Union all

InSert Into 订单 (产品,客户,雇员,单价,数量,日期,折扣,金额,已付款) Values ('PD02','CS02','EP02',27,104,#1999-01-21#,0,2808,True)

union all

InSert Into 订单 (产品,客户,雇员,单价,数量,日期,折扣,金额,已付款) Values ('PD05','CS01','EP04',31.5,131,#1999-01-22#,0.1,4126.5,False)


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/24 9:26:00 [显示全部帖子]

你把主要遇到的情况在详细描述下吧,看看有没有其他办法。

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/24 9:46:00 [显示全部帖子]

access是不可能了,MSSQL你可以试试 sqlbulkcopy这个类

 回到顶部