ADO.NET load使用问题

现在有个业务需求,用户会外导一个csv文件,如果数据量稍微大一点,采用insert批量提交比较耗时,所以想到采用load的方式,请问,ADO.NET 在load 的时候,只能使用load ftp吗?我们在load ftp的时候,经常遇到ADO超时的问题。在ADO load 的时候需要注意一些什么问题?有没有什么技巧?

5 回答

超时问题是不是创建的数据库连接有超时设置呀
2018-8-10 13:12
grander 发表于 2018-8-10 13:12
超时问题是不是创建的数据库连接有超时设置呀

因为现在测试,只放了几条数据,有时候能够load进去,有时候不行,不知道gbase是不是对文件有什么要求。因为正常load的情况下,能够在ftp看到日志显示文件被下载,但是超时的时候,只看到ftp被登陆过、但是文件没有被下载就退出了ftp。请问,gbase能不能把文件流load到表中?
2018-8-10 14:15
wmymtx 发表于 2018-8-10 14:15
因为现在测试,只放了几条数据,有时候能够load进去,有时候不行,不知道gbase是不是对文件有什么要求。 ...

把加载的代码贴一下吧
2018-8-10 14:50
grander 发表于 2018-8-10 14:50
把加载的代码贴一下吧

LOAD DATA INFILE 'ftp://user:pwd@10.105.4.59/xxx.csv' INTO TABLE GDB_CD.IMPORT_CD CHARACTER SET utf8 FIELDS TERMINATED BY ','                               ADO.NET执行同样的语句,有时候能load进去、有时候超时

2018-8-10 15:22
wmymtx 发表于 2018-8-10 15:22
LOAD DATA INFILE 'ftp://user:pwd@10.105.4.59/xxx.csv' INTO TABLE GDB_CD.IMPORT_CD CHARACTER SET ut ...

完整代码,下面是一个示例,可以参考
using (GBaseConnection con = new GBaseConnection(connStr))
{
    con.Open();
    GBaseCommand cmd = new GBaseCommand("", con);
    //load data infile
    cmd.CommandText = @"load data infile 'ftp://test:123456@192.168.7.182/1.txt' into table test fields terminated by ',';";
    cmd.CommandTimeout = 400;
    int recordsRefected = cmd.ExecuteNonQuery();
    long recordsSkipped = cmd.RecordsSkipped;//跳过行数
    long recordsTaskId = cmd.RecordsTaskID;//任务ID
}
2018-8-10 15:32

撰写回答

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

提问者

发布2
回答5

相关问题

相关资料