起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 刺青

【结贴】TExcelToTable导入问题

[复制链接]
发表于 2009-9-23 17:41:50 | 显示全部楼层
在这句上设置断点,看看row.PropertyGet('count',[])是什么值。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 19:03:10 | 显示全部楼层
是空值,不知道哪里没写好。
回复 支持 反对

使用道具 举报

发表于 2009-9-24 09:03:12 | 显示全部楼层
换成:
s :=ObjectHelper.ToString(row.PropertyGet('count',[]));
试试
回复 支持 反对

使用道具 举报

发表于 2009-9-24 09:03:41 | 显示全部楼层
那应该是没有找到'count',楼主,你先在delphi中试验一下这个用法,确认无误后,再在x3中调用吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-24 11:28:52 | 显示全部楼层
换成13楼的,就没有错了。
但是,分批来导入,还是很慢,16000多记录十分钟没导完。我的代码有问题,还是本来就是这么慢?还有没有别的方法可以把Excel中的数据导入数据库里?
代码如下:
for i := 0 to math.Ceil(sysUtils.StrToInt(strRow)/2000)-1 do              //分批导入
begin
  lExcelToTable.StartRow := i*2000;
  lExcelToTable.EndRow := (i+1)*2000;
  if not lExcelToTable.Execute(lmsg) then
      jsDialogs.ShowError(lmsg, '导入excel失败!');
end ;
回复 支持 反对

使用道具 举报

发表于 2009-9-24 11:51:09 | 显示全部楼层
那就看看能不能用其他的工具了,比如sqlserver的dts
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-24 15:17:49 | 显示全部楼层
用这个ExcelToTable还能不能加快一点速度?花了这么多时间来做了,不想轻易放弃。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-24 15:23:01 | 显示全部楼层
sql server的dts怎么样调用,可以给个例子看看吗?
回复 支持 反对

使用道具 举报

发表于 2009-9-24 15:28:59 | 显示全部楼层
单次导入2000条速度怎么样?如果导入10000天是2000条的5倍么?
如果是这样ExcelTotable就没有什么好方法了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-24 16:08:29 | 显示全部楼层
单次导入2000条,也不是很理想。
是5倍。

sql server的dts的问题:

SELECT * into newtable

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

  'Data Source="c:\book1.xls";User ID=Adminassword=;Extended properties=Excel 5.0')...[Sheet1$]

写这样的一条SQL语句,然后用Query来执行就可以了是吗?那这个Excel文件可以是本地的文件吗?不会要把文件上传到服务器才能导入吧?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 22:57 , Processed in 0.040166 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表