说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

解决一个DBF表时的"Index not found.."错误-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
解决一个DBF表时的"Index not found.."错误-Delphi资料

怎样解决打开一个DBF表时的"Index not found.."的错误

当 你 创 建 一 个 DBF 表 时 , 如 果 使 用 了 MDX 格 式 的 索 引 文 件 , 那 么 DBF 表 的 表 头 中 的 某 个 字 节 就 自 动 被 设 置 了 一 个 标 志 , 当 你 下 次 试 图 重 新 打 开 这 个 DBF 表 的 时 候 , 数 据 引 擎 会 自 动 识 别 这 个 标 志 , 如 果 此 标 志 为 真 , 则 数 据 引 擎 将 试 图 打 开 相 应 的 MDX 文 件 , 当 相 应 的 MDX 文 件 不 存 在 时 , 错 误 就 产 生 了 。 知 道 了 问 题 产 生 的 原 因 , 解 决 方 案 也 就 有 了 : 我 们 只 需 将 那 个 标 志 字 节 ( 其 实 就 是 第 28 个 字 节 ) 设 为 零 就 行 了 。 下 面 为 示 范 代 码 :

unit Fixit;

interface

uses

SysUtils

WinTypes

WinProcs

Messages

Classes

Graphics

Controls

Forms

Dialogs

StdCtrls

DB

DBTables

Grids

DBGrids;

type

TForm1 = class(TForm)

Table1: TTable;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

const

TheTableDir = 'c:\temp\';

TheTableName = 'animals.dbf';

procedure RemoveMDXByte(dbFile: String);

{ 这 个 procedure 的 参 数 是 一 个 文 件 名 , 它 将 对 这 个 文 件 的 文 件 头 }

{ 进 行 处 理 , 以 确 保 它 不 在 需 要 MDX }

const

Value: Byte = 0;

var

F: File of byte;

begin

AssignFile(F

dbFile);

Reset(F);

Seek(F

28);

Write(F

Value);

CloseFile(F);

end;

procedure TForm1.Button1Click(Sender: TObject);

{ 此 procedure 将 试 图 打 开 一 个 表 , 如 果 相 应 的 .MDX 文 件 不 存 在 }

{ 将 对 表 文 件 进 行 处 理 并 尝 试 再 次 打 开 }

begin

try

{ 为 表 设 置 路 径 }

Table1.DatabaseName := TheTableDir;

{ 设 置 表 的 名 字 }

Table1.TableName := TheTableName;

{ 尝 试 打 开 表 }

Table1.Open;

except

on E:EDBEngineError do

{ 如 果 MDX 文 件 未 发 现 , 将 返 回 以 下 错 误 信 息 }

if Pos('Index does not exist. File'

E.Message)>0 then begin

{ 询 问 用 户 是 否 继 续 }

MessageDlg('MDX file not found. Attempting to open

without index.'

mtWarning

[mbOk]

0);

{ 从 表 头 中 移 去 相 应 标 志 }

RemoveMDXByte(TheTableDir + TheTableName);

{ 再 次 向 Button1 发 送 被 按 下 的 消 息 , 本 procedure 再 次 被 执 行 }

PostMessage(Button1.Handle

cn_Command

bn_Clicked

0);

end;

end;

end;

end.

代码审查,也要天时地利人和 Clash of Clans产品总监:游戏中的商品定价一开始就要高 移动互联网最核心的竞争是:设计的竞争 【直击美国云计算】面对AWS,VMware不会畏缩 美国白宫任命Twitter法务总监Nicole Wong为副CTO Keek宣布推出首款视频Update API 专访阿里前端工程师:淘宝移动Web开发那些事儿 【直击美国云计算】为什么eBay用燃料电池来驱动他的犹他州数据中心 【直击美国云计算】6周发布新产品,LinkedIn的trunk-based开发 移动周报:疯狂吐槽还是更得欢心?细数iOS 7的是与非 国内最受欢迎的开源项目集锦 开始3D编程前需注意的十件事 [CTO俱乐部第100期]软件平台的新思维及2345技术团队管理经验分享 失败怪圈:今天的移动App在重蹈1999年的覆辙 极客编程必备的五大PHP开发应用 Oracle或将宣布与Salesforce.com,NetSuite以及微软结盟 【专访间】神州数码谢耘:智慧城市需要以“融合平台”为特征的沃尔玛模式 对话OW2 CEO:开源≠安全隐患,免费≠无利可图 不断抄袭的Facebook正逐步沦为一家普通的公司 Windows 8.1会不会把Windows 8的“Modern”开发者踢到路边 任志鹏:FusionCloud是华为二十年技术积累的精华 机器学习典范?iOS7中的Siri能主动学习如何发音 三星宣布关闭PC业务 主推便携设备和一体机 Web设计师必须掌握的六大设计策略 Facebook为什么要推Instagram视频分享功能? 天气预报(id后面的9位数字为城市代码)年月日,星期,当前时间(仅用于javascript) PHP 5.5.0发布 不再支持Windows XP和2003 专访ThinkPHP创始人刘晨:用最简单最快速的方式开发PHP应用 重构:仔细查看,改进代码 加速编码的17款最棒的CSS工具 生于微信:专访疯狂猜图CEO曹晓刚 寻找压缩控件! 一个简单的SQL语句! 關於框架 请版主帮忙(怎样将asp中的动态数据填充到有一定格式的EXCEL模板文件中) 一个简单的问题,急! 为大家吐血献上:余世维《成功人士讲座》录像 Tomact设置问题 很简单的“异常”问题 linux vi的绝对路径是什么? 为我即将离开PB和IT行业,散分! 今天是中秋节,还是单身的水友进来坐坐。 哪有Crysrept下载?? Session为什么掉了??急切等待!!! struts中一个页面如何显示多个FormBean? 过节了,散分,祝大家中秋快乐!!!!!! 請問TForm中相當於MFC中OnIdle()的event是什麼 数据库问题,急!!急!急!急!急! CISCO2600的ISDN拔号不会自动断线,怎么办? 谁知道怎么验证一个用户名和一个密码是不是在WINDOWS2000中添加过的?而且正确? 。。。谁能给我发一个“智能狂拼2”的下载连接地址 请求--网页评比规则? 在visual.net上无法调试存储过程。急。求救 asp加密程序 我用SQL server+DElphi中的ADO做数据应用程序,数据库备份后,怎样实现数据库的恢复? 贴子太多了,看不过来了,大力liuri出来讲讲 sqlserver 用 jdbc出错 ,Microsoft][SQLServer 2000 Driver for JDBC]Error setting up static cursor cache 如何在C#中用代码控制本地FTP服务打开和关闭?99分,中秋快乐. 关于dll的问题,在线求教 昨晚,我抱了我MM一下!开心呀!散分! 有什么软件可以使上网不受防火墙的限制? 一个C的图形函数,请问怎样用的? 数据库查询语句执行错误 web页面的activex控件怎么调用服务器上的动态连接库?? 中秋散分 【泰坦】祝大家中秋节快乐!(1) 纯jsp聊天室的页面刷新问题 这个MSDN是不是常说的那个MSDN资料库? 一句sql语句问题 【泰坦】祝大家中秋节快乐!(2) 我的触发器为什么没有响应啊。在线等啊 pb9.0+sql server 2000,怎样制作程序发布? pb给dll传递结构数组的问题。急!!! pb9.0+sql server 2000,怎样制作程序发布? 为什么关闭MSDEV的时候,会导致它占用90%以上的CPU时间??? 如何在代理中同時讓兩個套表同時結案 菜鸟问题:我想把一个CString类型转换成LPBYTE类型应该怎么弄? 如何在JRUN3.1中连接SQLSERVER, 我的web server用的是IIS5 怎么样在JSP中显示 WORD 或 WPS 格式的文件? 如何在servlet 中存储数组用javabean 取数组用JSP显示(在线等,急,谢谢) 如何使Response.Redirect "xxx.htm"打开的网页是满屏显示! 鄙视民工的人,给你讲个故事听。 有没有视在电流的说法,求详细介绍 经线与纬线的概念 度量 符号与特点 我想要有关生物医学的一切职业!如题.希望能够齐全. 谁能帮我做一个寒假计划?(我想主要复习地理和生物,当然别的学科也要复习,复习什么,怎么复习,要写明白, 什么是五角渡水 懂的进来?三版人民币里有个叫做 五角渡水 什么意思不懂 是平水吗?请懂行的进来有没有渡水 的所有冠号啊 谢谢 全部的 有知道的吗 1972年5角人民币冠号都有那些,那些是平水冠号,那些是凸水,还有那些是普通冠号,谢谢因为本人有些3版5角,想知道都是哪些是平水跟凸水,平普 1( )质彬彬2( )气风发 3物极必( )4 ( )过1( )质彬彬2( )气风发 3物极必( )4 ( )过饰非 5 ( )斟句酌 6 ( )不容辞 为什么精子核中无同源染色体 number 缩略形式认真填 number;we are;的缩略式和TV的完全式 羊去掉一横是社么快 沙特女性反抗禁驾令 小伙因改编歌曲助多伦多市长涉吸毒视频被查获 其友涉嫌美澳等多国驻外使馆被曝精心伪装 监听美墨边境发现新贩毒地道 配电力轨道和经济滞缓导致欧元区通胀率降至2009英媒窃听案中两名涉案编辑被传系恋人关美将俄歌星列入黑名单 俄抗议表示不可美国一客机收到炸弹威胁 现已紧急转降伊朗“巴斯基”武装力量在伊展开演习 日媒醋意评价朴槿惠外交策略 称其无视德媒:斯诺登与德绿党议员见面 有意前不走的医学队伍安化紧急避险转移6500余人张家界彩民喜中“甜蜜蜜”10万元大奖湖南省环境保护厅2014年度企业环境千余官兵和民兵预备役人员一千一百亿元投向湖南63个“智能制造”郑智不会缺席世预赛首战贪心男“顺”走1.3万被刑拘把握新机遇投入创新创业大潮MERS是否像非典一样可怕启天剑回明之富二代传奇都市修真纵横录娱乐群侠传剑侠传奇树道天堂勿忘我都市神权剥夺者重生我就是传奇国域无双网游之雷霆毁灭者数码暴龙之组合世界南京万人坑旅游无锡樱花谷旅游梅园横山旅游后街清真寺旅游南池公园旅游太白楼旅游济宁博物馆旅游论语碑苑旅游孔子文化园旅游孔子研究院旅游东涌海滩旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘