FTP后文件的读取导入问题

秋天之落叶 2019-05-16 04:30:33
上一个问题,使用shell和cmd命令,由于某一台客户端的问题,导致cmd命令加载有问题,可能重装系统会修复。
使用了copyfile(),和使用DOS命令一样,其他机子没问题,原来的机子还是不行。
我就更换了FTP,以前没有使用过FTP,这里出现了一个问题:如何调用建立FTP上传文件成功后的使用问题?
以下为:客户端A上传datafile.xlsx文件到服务器端B的E:\temp\files\下,然后系统将服务器端B上传的文件E:\temp\files\datafile.xlsx导入SQL数据库表中。
问题:这个服务器端的E:\temp\files\datafile.xlsx文件,如何设置路径才能被客户端A远程调用?
使用\\IP\E$\temp\files\datafile.xlsx还是DOS的那一套,有的终端不能正常执行,有没有FTP状态下的路径使用方法?
以下请问: filespath := ??? //在FTP状态下,这里的路径如何写?
begin
with DataModule1.IdFTP1 do
begin //上传Excel文件
host := ftpip;
Username := ftpuser;
Password := ftppwd;
Connect;

RetrieveCurrentDir;
str := TStringList.Create;
List(str, '', False);

if DataModule1.OpenDialog1.Execute() then
Put(DataModule1.OpenDialog1.FileName, ExtractFileName(DataModule1.OpenDialog1.FileName));

filespath := ??? //在FTP状态下,这里的路径如何写?
end;

s := TStringList.Create;

with DataModule1.ADOConnection2 do
begin //远程装载FTP上传的excel文件,并读出其sheet页
Close;
ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + filespath +
';Extended Properties=Excel 12.0;Persist Security Info=False';
LoginPrompt := False;
Open;
GetTableNames(s, False);
Close;
end;

s.Sort;
s.Sorted := True;
CheckListBox1.Items.AddStrings(s);

FreeAndNil(str);
FreeAndNil(s);
end;
...全文
125 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋天之落叶 2019-05-17
  • 打赏
  • 举报
回复
终于搞明白了,FTP连接下确实可以认知目录文件,Excel表本地连接,SQL远程读取,效果不错,多谢大家。
无聊的猪 2019-05-17
  • 打赏
  • 举报
回复
FTP的文件是要先下载到本地,才能打开的
秋天之落叶 2019-05-16
  • 打赏
  • 举报
回复
你提到了copyfile()和执行shellexecute+cmd效果一样,原来不能执行shell的同样不能执行copyfile()
秋天之落叶 2019-05-16
  • 打赏
  • 举报
回复
引用 1 楼 早打大打打核战争 的回复:
你要在ConnectionString里使用FTP路径是不行的,还是要映射为本地路径或者UNC路径(\\xxx\...这种),或者你直接打开本地的文件备份也可以

哦,那我更换FTP的意义就不大了,我测试了一下,客户端和服务器端使用同样的盘符+路径+文件名,就可以直接操作。
映射为本地路径,有的机子不能执行DOS命令(奇怪的是在机子上手工执行没问题,在delphi中调用就不行),更换FTP就是为了避开这个BUG,看来白费劲了,郁闷啊。
  • 打赏
  • 举报
回复
你要在ConnectionString里使用FTP路径是不行的,还是要映射为本地路径或者UNC路径(\\xxx\...这种),或者你直接打开本地的文件备份也可以

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧