mysql导入文件出错
时间:2011-06-01
来源:互联网
作者: pengderun 发布时间: 2011-06-01
作者: Linkor 发布时间: 2011-06-01
作者: wwwwb 发布时间: 2011-06-01
作者: pengderun 发布时间: 2011-06-01
begin
FOwner.FLogIntf.DoAddLog(Self, '批量导入 '+task.DatFile);
name:= Q_ReplaceStr(task.DatFile, '\', '\\') ;
sql := Format(SQL_LOAD_DATA,[name, task.TabName]);
if 0 <> mysql_real_query(FLibHandle, PAnsiChar(sql), Length(sql)) then
begin
line := mysql_error(FLibHandle);
FOwner.FLogIntf.DoAddLog(Self, line );
end
else
begin
FOwner.FLogIntf.DoAddLog(Self, sql+'.OK.');
//导入成功才删除
FOwner.FLogIntf.DoAddLog(Self, '删除文件 '+task.DatFile);
DeleteFileA(PAnsiChar(task.DatFile));
end;
end;
代码是什么
作者: pengderun 发布时间: 2011-06-01
作者: pengderun 发布时间: 2011-06-01
路径没问题的,已经用'\\'替换掉'\'了,因为只是有时出错,有时可以导入的
作者: Linkor 发布时间: 2011-06-01
if FileExists(task.DatFile) then begin FOwner.FLogIntf.DoAddLog(Self, '批量导入 '+task.DatFile); name:= Q_ReplaceStr(task.DatFile, '\', '\\') ; sql := Format(SQL_LOAD_DATA,[name, task.TabName]); if 0 <> mysql_real_query(FLibHandle, PAnsiChar(sql), Length(sql)) then begin line := mysql_error(FLibHandle); FOwner.FLogIntf.DoAddLog(Self, line ); end else begin FOwner.FLogIntf.DoAddLog(Self, sql+'.OK.'); //导入成功才删除 FOwner.FLogIntf.DoAddLog(Self, '删除文件 '+task.DatFile); DeleteFileA(PAnsiChar(task.DatFile)); end; end;
作者: pengderun 发布时间: 2011-06-01
引用 3 楼 pengderun 的回复:
路径没问题的,已经用'\\'替换掉'\'了,因为只是有时出错,有时可以导入的
有时出错有时成功??确定两次使用的方法都一模一样吧?如果是一样的,不大可能结果不一样,除非有什么别的因素干扰了,又或者除非MySQL有bug。
作者: pengderun 发布时间: 2011-06-01
作者: pengderun 发布时间: 2011-06-01
得到 这个 sql变量的实际内容 后,可以直接到MYSQL中测试一下,如果有错误则把错误信息一同贴出以供分析。
作者: ACMAIN_CHM 发布时间: 2011-06-01
对了,Linkor,你前面的可能是中文路径的问题?路径确实有中文,但是问题是也有导入成功的。
作者: Linkor 发布时间: 2011-06-01
建议直接调试你的DELPHI程序,看看if 0 <> mysql_real_query(FLibHandle, PAnsiChar(sql), Length(sql)) then的时候sql变量的实际内容是什么 , 这样别人可以直接针对你的SQL语句进行分析修改,而不是分析你的DELIPH代码,毕竟懂MYSQL的未必熟悉DELPHI。
得到 这个 sql变量的实际内容 后,可以直接到MYS……
作者: pengderun 发布时间: 2011-06-01
导入失败记录的日志(括号中是SQL):
导入失败:(LOAD DATA LOCAL infile 'C:\\省标服务\\轨迹\\MyData\\gps_2011_06_01_103024_0001.txt' IGNORE into table gps_2011_06 lines terminated by '\r\n' )File 'C:\省标服务\轨迹\MyData\gps_2011_06_01_103024_0001.txt' not found (Errcode: 13)
把一个导入失败的SQL拿出来执行也没问题:Query OK,1024 rows affected(0.03 sec)
作者: pengderun 发布时间: 2011-06-01
更换为英文的目录名测试一下
LOAD DATA LOCAL infile 'C://省标服务//轨迹//MyData//gps_2011_06_01_103024_0001.txt' IGNORE into table gps_2011_06 lines terminated by '\r\n'
试试
作者: wwwwb 发布时间: 2011-06-01
这个拿出来执行都没错的
作者: pengderun 发布时间: 2011-06-01
复制少了一段
作者: pengderun 发布时间: 2011-06-01
作者: pengderun 发布时间: 2011-06-01
下,测试一下能否通过
作者: wwwwb 发布时间: 2011-06-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28