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

怎样解决打开一个DBF表时的Index not found..错误-Delphi资料

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

当 你 创 建 一 个 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.

维基百科基金会推出众包旅游项目Wikivoyage 最舒适程序员:工作外包给中国 自己却偷懒 Evernote正在与苹果联合开发硬件记忆工具,未来两年公司上市 Fusion-io发布ioScale 全闪存数据中心时代到来? Agent Dash游戏设计之美:如何用2D打造3D体验? 开源项目文档应规避的13处“硬伤” 李开复:Graph Search将可与谷歌搜索媲美 月成本3500美元 如何在AWS上实现BBVA信用卡低延时分析 外媒眼中的国内互联网巨头:服务器集群庞大但缺乏创新 Facebook主导通用主板+SoC ARM与Intel同台对抗 假如像招聘程序员那样租车…… CrowdStar:Windows Phone 8是开发者的下一片蓝海 腾讯云总经理陈磊透露流量变现计划 将比亚马逊AWS更专注 代码之美——Doom3源代码赏析 英特尔公布2012财年财报 Q4净利润同比下滑27% 谷歌CEO佩奇:创新重于竞争 关注非增量改进 再尝败绩 微软杀软AV-TEST反病毒认证失败 财富:2013最佳雇主 谷歌第一微软75苹果未入榜 移动应用注册表单必死! 数据:2012年的全球互联网知多少 访中粮我买陈伟伟:高并发大压力挑战架构师极限 左路Deep Learning+右路Knowledge Graph,谷歌引爆大数据 数据库排行榜:关系型居首,NoSQL整体人气最高 联通:要做PaaS,存储最低为TB 百度资深交互设计师谈微信4.5版本 TalkingData推出移动游戏数据分析平台 一周消息树:著名计算机黑客Aaron Swartz自杀身亡 使用Windows 8模拟器及Visual Studio 2012调试IE 10触控及响应式Web设计 Azure、AWS要来了 IDC抱团取暖还是各找出路 C#使用ICDBurn实现CD刻录 验证码识别基础方法及C#/.NET源码 為深麼我的Wizard模式的PreportyPage的OnWizardNext函數實現後,不能出現第二個頁面,how to. 那一个有的高程模拟试题 简单问题,请指点 在线等待求助:win2000缠人问题 ****郁闷,从来没有遇到这样的问题!!!为什么报表显示的时候会闪一下!而且显示出来后其窗体还没有自动关闭!******** 请大家发表一下自己的意见 问一个消息? 欢迎参加微软新闻组 & Diyinside Windows User Group离线技术沙龙 求助:chart使用Lineseries颜色问题 ?在C#的如何运用线程 关于安装Websphere Portal的问题。希望大家帮我解决一下。 非法字符的问题 转让一优派PT813 21寸显示器(适合专业作图) 北京 一个小问题,还请多帮忙!谢谢!! 怎么用命令看到一个进程的内存数? 用VC怎样获知当前Window是否支持某国语言(如中文)? 投诉: 有关通用查询组件—— 视图选择公式的问题,请帮帮我! 请教一小问题? DataSet.AcceptChanges()这个有什么用呀??? 欢迎参加微软新闻组 & Diyinside Windows User Group离线技术沙龙 ?怎样在ASPX的WEB服务中运用C#的线程 在2003下用Interdev 串口通信的问题 紧急50分 在 vb.net 中,如何读取 xml 文件? 斑竹地进来! 欢迎参加微软新闻组 & Diyinside Windows User Group离线技术沙龙 新装的WIN2000,关了启动程序,占内存近100M,还老出怪问题 连编以后,出现的错误,求解 我有一个外来控件(条形码),请问该如何用代码在图片框中动态添加一控件?? 系统设计师就要开考了,请考过高程和就要考高程全部看过来~~~~ 欢迎参加微软新闻组 & Diyinside Windows User Group离线技术沙龙 如何把一组CLASS文件打成一个JAR的包 谁用过solid数据库阿,可知里面怎莫用视图阿??紧急! 求求大哥们了 怎样动态改变控件的属性? 明天要去九城面试,有知道内情的吗,给说说,无限感激,, 大家帮忙看看!我有记个问题一直困扰我!(送分的问题(可以加100分啊),不够可加啊!都是送分题,来者都有分) 欢迎参加微软新闻组 & Diyinside Windows User Group离线技术沙龙 如何处理让播放器播放多首歌 【请教】vc适合oo开发? Window中的大/小字体显示属性改变后,影响对话框大小的问题(VC)? 如何处理让播放器播放多首歌 如何同时使用两个msn 欢迎参加微软新闻组 & Diyinside Windows User Group离线技术沙龙 在线等待大虾求助:win2000缠人问题 求ASP下进度条源码!多谢了! ———请帮忙----! 如何用sql语句将文本文件转换成sql数据库 prefect什么意思 prefect 阴沉的反义词是什么 世界上最多人死的地方在哪里? 为什么只有单质氢才会燃烧,有多少种元素可以燃烧?嘻嘻,不好意思,刚刚说错了,第一个问是相对于氢元素而言的,就像含氢的盐酸和水,它们都不能燃烧,这里也不包含除了氢还有其它 氢和氧元素可以组成哪种可燃烧的物质? 小美在玩具店看中了2种模型玩具和3种布娃娃玩具,可妈妈只答应 她买一个模型玩具和一个布娃娃玩具,共有小美在玩具店看中了2种模型玩具和3种布娃娃玩具,可妈妈只答应 她买一个模型玩具 热闹非凡的凡是什么意思 热闹非凡的凡字是什么意思 热闹非凡中凡的意思只求凡的意思 prefect什么意思 俄罗斯电影《斯大林格勒》中国将映 小欧盟20年:应对挑战携手前行谷歌街景拍到诡异图像:天空现耶稣与圣韩媒调查显示韩国民众出现“远日亲中”巴黎再发名品盗窃案 巴黎西郊20块名墨西哥一警察在路边与女子发生性关系 法国里尔市中心一珠宝店遭劫 损失高达宝鸡小学生深秋穿夏装露天表演 学校被全国人大常委会召开立法工作会议 张德明年起电视购物广告禁\"叫卖式\"夸经济观察:“宽带中国”战略遭遇三重困香港“4·25绑架案”一审宣判:8人偏门数据!左撇子助攻高手 哈登下季能湖北赤壁重点引资项目业主3年拿不到两首届新疆·塔城手风琴艺术节将于8月1中国军事专家评美在韩部署萨德:意在维\"追杀令\"生效国民党将遭清算 太王毅出席中非合作论坛约翰内斯堡峰会成江西连续多日高温 一名“熊猫血”战士女护士为前男友在宾馆割腕自杀吃着龙虾喝着啤酒快来东城交个朋友好消息!农业路中州大道互通立交7月3墨骗似希随笔集十八决战将狼人修仙传重生剑九剑录冠军主席天龙八部异界风云亡灵血皇雷电天下南岛书虫咖啡馆旅游洪圣爷湾泳滩旅游榕树湾大街旅游皇后像广场旅游太古城中心旅游太古广场旅游天坛大佛旅游天星码头旅游旺角电脑中心旅游大鹏所城旅游般若寺旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘