复制 DBF/MDX 文件时出错
我使用以下代码将 dbf/mdx 文件从一个文件夹复制到另一个文件夹:
procedure TfrmMain.MyCopyFile(S1, S2: string);
begin
if not FileExists(S2) then
CopyFile(PCHAR(S1), PCHAR(S2), true)
else
if Application.MessageBox(PCHAR('Overwrite existing file ' + S2 + '?'), 'File exists in folder',MB_YESNO + MB_DEFBUTTON1) = IDYES
then CopyFile(PCHAR(S1), PCHAR(S2), false)
end;
当表名称保持不变时,代码可以正常工作。
如果我更改表的名称:
MyCopyFile(CurPath + '\orders.dbf', NewPath + '\ordly.dbf');
MyCopyFile(CurPath + '\orders.mdx', NewPath + '\ordly.mdx');
当我尝试打开 ordly.dbf 时,我收到一条错误消息:
表/索引头损坏。
文件:C:\DATA\2011\ORDLY.MDX
I use the following code to copy dbf/mdx files from one folder to another:
procedure TfrmMain.MyCopyFile(S1, S2: string);
begin
if not FileExists(S2) then
CopyFile(PCHAR(S1), PCHAR(S2), true)
else
if Application.MessageBox(PCHAR('Overwrite existing file ' + S2 + '?'), 'File exists in folder',MB_YESNO + MB_DEFBUTTON1) = IDYES
then CopyFile(PCHAR(S1), PCHAR(S2), false)
end;
The code works fine when table name stays the same.
If I change the name of the table:
MyCopyFile(CurPath + '\orders.dbf', NewPath + '\ordly.dbf');
MyCopyFile(CurPath + '\orders.mdx', NewPath + '\ordly.mdx');
When I try to open ordly.dbf I get an error message:
Corrupt table/index header.
File: C:\DATA\2011\ORDLY.MDX
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是由于
mdx
格式存储在关联的数据文件的名称(表名称)中。因为当您重命名mdx
文件时,索引仍然指向数据文件的旧名称。检查此链接以查看 mdx 文件的结构。
多个索引文件 (*.mdx) 的结构
the problem is due to the
mdx
format stores inside the name of the data file associated (table name). because that when you rename amdx
file the index still points to the old name of data file.check this link to see the structure of the mdx file.
The Structure of Multiple Index files (*.mdx)