我在尝试使用Delphi将制表符分隔的文本文件加载到MS ACCESS数据库表时遇到了一些问题。
到目前为止,我已经能够创建一个新的Access数据库和表,但是当我尝试加载数据时,我得到一个带有消息的EOLeException:
'INSERT INTO语句包含以下未知字段名称:'FIELD1_FIELD2_FIELD3 _...'
我的代码如下:
cs := 'insert into TABLENAME(FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6, FIELD7, FIELD8, FIELD9, FIELD10, FIELD11, FIELD12, FIELD13, FIELD14, FIELD15) select * from [FILENAME.txt] in "' + EditJobLocation.Text + '" "Text;HDR=Yes"';
ADOCommand2.CommandText := cs;
try
ADOCommand2.Execute;
etc...
不确定问题是什么,但我认为它与'select *'部分有关,将所有字段作为一个下划线分隔字符串返回。
我一直在谷歌上搜索寻找答案,但还没有找到任何答案。
非常感谢任何帮助。
答案 0 :(得分:0)
建议:尝试删除insert
部分,只留下select * from...
部分,例如
cs := 'select * from [FILENAME.txt] in "' + EditJobLocation.Text + '" "Text;HDR=Yes"';
使用此修订的SQL语句打开记录集对象。如果成功,请检查记录集的Fields
集合:即返回的列数,名称,序数位置等。
希望这可以确定问题是从文本文件中获取数据还是使用插入操作。
P.S。如果您还没有,请考虑使用schema.ini
文件来更好地控制Access如何根据列及其数据类型“看到”文本文件的数据。