Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #1 dBase 7 改变了 DBF 文件的结构. 所以,以前清除索引标志的方法(第28字节置0)不灵光了. 请教如果 mdx 丢失了,该如何处理?
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #2 http://www.inprise.com/devsupport/bde/bdeapiex 中的Index部分. 如果有用的话,我就彻底相信您的话了,该我发财的运气,挡都挡不住. 我在ex-ex上也回答了您同样的问题! *_^
http://www.inprise.com/devsupport/bde/bdeapiex 中的Index部分. 如果有用的话,我就彻底相信您的话了,该我发财的运气,挡都挡不住. 我在ex-ex上也回答了您同样的问题! *_^
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #3 很高兴在 Ex-ex 上遇见您,老朋友。 如果您在此解决我的问题,Ex-ex上的100分也归您了。我保证。 在您上次指点下,我已经下在了您所提的文档和所有的例子, Index部分的函数,需要先将 Table 打开,以获得 Handle, 但是没有mdx文件的话,Table是打不开的 ... 昨日研究了很久,没找到办法,所以同时发问,该不会您在forums.inprise.com 上也回答了我这个问题吧?
很高兴在 Ex-ex 上遇见您,老朋友。 如果您在此解决我的问题,Ex-ex上的100分也归您了。我保证。 在您上次指点下,我已经下在了您所提的文档和所有的例子, Index部分的函数,需要先将 Table 打开,以获得 Handle, 但是没有mdx文件的话,Table是打不开的 ... 昨日研究了很久,没找到办法,所以同时发问,该不会您在forums.inprise.com 上也回答了我这个问题吧?
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #4 见笑见笑,我没到forums.inprise.com里去过, 说实话,我对文件型数据库研究很少--很久没用过了, 现在也没时间研究. 以后发现新办法再向您建议吧! *_^ 不过万一今晚Zif来了,给您了一个解决办法,我的 400分可就没戏了:-( (那个网址还是从他那里知道的呢!) 顺便问一句,我在ex-ex上的成绩怎么样? (刚刚得了一个C,不然是连续十个A呢!这样的战绩其他"富翁"们好像也没有!)
见笑见笑,我没到forums.inprise.com里去过, 说实话,我对文件型数据库研究很少--很久没用过了, 现在也没时间研究. 以后发现新办法再向您建议吧! *_^ 不过万一今晚Zif来了,给您了一个解决办法,我的 400分可就没戏了:-( (那个网址还是从他那里知道的呢!) 顺便问一句,我在ex-ex上的成绩怎么样? (刚刚得了一个C,不然是连续十个A呢!这样的战绩其他"富翁"们好像也没有!)
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #5 不行,说没时间是假的,哪有到手的分数跑掉的道理? 我刚试了一下,用Database Desktop打开表, 当提示错误时,选择open and detach,这样索引信息就没了, 这个表变成了一个"自由身". 不知老孙是否需要的这个? 我可真够累的,ex-ex上又搞了一下 *_^
不行,说没时间是假的,哪有到手的分数跑掉的道理? 我刚试了一下,用Database Desktop打开表, 当提示错误时,选择open and detach,这样索引信息就没了, 这个表变成了一个"自由身". 不知老孙是否需要的这个? 我可真够累的,ex-ex上又搞了一下 *_^
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #6 谢谢 dwwang,可是如何自己编程实现呢? 因为我的数据库有好30-40各DBF,以往总是自动索引的,现在可不能一个一个让用户 到 Database Desktop 中去过堂 就是想了解 Database Desktop 在选择 open and detach 后是如何处理的. Ex-ex中又被您 Lock 上了,您可就跑不掉了 麻烦您了.
谢谢 dwwang,可是如何自己编程实现呢? 因为我的数据库有好30-40各DBF,以往总是自动索引的,现在可不能一个一个让用户 到 Database Desktop 中去过堂 就是想了解 Database Desktop 在选择 open and detach 后是如何处理的. Ex-ex中又被您 Lock 上了,您可就跑不掉了 麻烦您了.
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #7 刚刚上网就看见您的信,真巧, 可是看来今晚是搞不定了,明天一定再研究研究. 不好意思, 不过请您把我ex-ex上的answer reject 了吧,因为 大部分高手都是晚上来,他们也许有办法.
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-07 #8 dwwang, 很高兴有在线上见面了, 真很巧. 对这个问题,老是麻烦您的我很不好意思. Ex-ex上让它去吧,在这里有了答案后,去给您加那外国分也容易些.
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-08 #9 您可千万别这么客气(看来我们相互以"您"相称 是改不了了,那也就"让他去吧" ) 我们在这里都是相互交流,相互帮助,为了共同的爱好嘛! 我从论坛上也学了很多东西呢!还不都是您开这个论坛的功劳?
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-09 #10 还是觉得有问题,就又看了一下。 您说的DBase7是指那个版本? 我用VDbase/DBase for windows建了表以后, 用Open and Detach去掉索引,发现就是第28字节 01变成00。您确认没有什么别的原因吗?
还是觉得有问题,就又看了一下。 您说的DBase7是指那个版本? 我用VDbase/DBase for windows建了表以后, 用Open and Detach去掉索引,发现就是第28字节 01变成00。您确认没有什么别的原因吗?
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-10 #11 我用 Visual dbase 7,它的文件结构大大改变,它现在字段名可到31位, 支持Primary Key,Referential Integrity, 文件头用68个字节,其中第28字节 仍然为 mdx 的标志, 以后字段描述数组,每个字段的描述为48字节(以前是32字节) RecStructure = record Field_Name: array[0..31] of char; Field_Type: char; Field_Len: Byte; i1, i2, i3, Field_idx: Byte; dummy:array[0..9] of char; end; 其中有1字节表示该字段的索引信息。 这是我的初步进展。我希望用 BDE 的 API,实现Open and Detach后去掉索引的功 能,但是又回到老问题:好象这些API都需要先将 Table 打开,以获得 Handle, 但是没有mdx文件的话,Table是打不开的 ... 虽然现在通过直接文件操作,可以清除索引标志了,但是总觉不保险。
我用 Visual dbase 7,它的文件结构大大改变,它现在字段名可到31位, 支持Primary Key,Referential Integrity, 文件头用68个字节,其中第28字节 仍然为 mdx 的标志, 以后字段描述数组,每个字段的描述为48字节(以前是32字节) RecStructure = record Field_Name: array[0..31] of char; Field_Type: char; Field_Len: Byte; i1, i2, i3, Field_idx: Byte; dummy:array[0..9] of char; end; 其中有1字节表示该字段的索引信息。 这是我的初步进展。我希望用 BDE 的 API,实现Open and Detach后去掉索引的功 能,但是又回到老问题:好象这些API都需要先将 Table 打开,以获得 Handle, 但是没有mdx文件的话,Table是打不开的 ... 虽然现在通过直接文件操作,可以清除索引标志了,但是总觉不保险。
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-10 #12 再补充一下,字段描述数组后是 Referential Integrity的信息,我还没有研究 出它的结构,请多指教
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-10 #13 我以为您一定要用Delphi来解决这个问题呢! OK,下面这个网址的最后一个程序,可以删除/全部重建 出现错误的vdbase的索引,希望能够搞定! ^_^ (还是VDbase源代码呢!) http://ourworld.compuserve.com/homepages/RStrieff/
我以为您一定要用Delphi来解决这个问题呢! OK,下面这个网址的最后一个程序,可以删除/全部重建 出现错误的vdbase的索引,希望能够搞定! ^_^ (还是VDbase源代码呢!) http://ourworld.compuserve.com/homepages/RStrieff/
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-10 #14 非常感谢你,我总是很佩服,你能找到这种 URL. 下载后发现,那是 dBase 的 prg 程序,主要针对 Visual dBase IV。 我想要 Delphi 的程序,想要针对 Visual dBase 7。
非常感谢你,我总是很佩服,你能找到这种 URL. 下载后发现,那是 dBase 的 prg 程序,主要针对 Visual dBase IV。 我想要 Delphi 的程序,想要针对 Visual dBase 7。
D dwwang Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-10 #15 彻底没戏啦!(瘫倒在椅子上) 到底有没有这种东东呢? 另外,Visual Dbase7 是个产品吗? Inprise的网页上还有介绍吗? Delphi能够建VDB7的表吗?
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-10 #16 Visual dBase 7 是个很新的产品,Inprise的网页上还没有其技术资料,(可能这 就是不如 M$ 的地方之一)。 我在forums.inprise.com问dBase 7的DBF结构,得到的回答是: MOST unfortunately, it is NOT published. --tex Delphi中用你上次提供的BDE API,能自动升级DBF,还能建立Primary Key,RI。 不久,我就会研究出 dBase 7 的文件结构的。因为它丢失mdx后仍然很愚蠢就打 不开,必须清除索引标志。我需要来个硬清。 我的Database Desktop比dBase 7先出来,BDE是最新的,D-D显然能先不打开dbf, 然后清除索引标志。Detach it. 这个方法在研究中 ... 到底哪个API呢?
Visual dBase 7 是个很新的产品,Inprise的网页上还没有其技术资料,(可能这 就是不如 M$ 的地方之一)。 我在forums.inprise.com问dBase 7的DBF结构,得到的回答是: MOST unfortunately, it is NOT published. --tex Delphi中用你上次提供的BDE API,能自动升级DBF,还能建立Primary Key,RI。 不久,我就会研究出 dBase 7 的文件结构的。因为它丢失mdx后仍然很愚蠢就打 不开,必须清除索引标志。我需要来个硬清。 我的Database Desktop比dBase 7先出来,BDE是最新的,D-D显然能先不打开dbf, 然后清除索引标志。Detach it. 这个方法在研究中 ... 到底哪个API呢?
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-11 #17 我的问题总算解决了, 方法一,弄清 DBF 结构,硬性清除其索引标志字节。临时措施而已。 方法二,使用 BDE 函数,居然就在 BDE32.hlp中关于DbiRegisterCallBack的 Example中. 这才是正道。 很遗憾是方法二是我花费了很多时间研究出DBF结构后刚刚得知的。 在dwwang提供的http://www.inprise.com/devsupport/bde/bdeapiex中,可以 下载BDE的最新范例(html),用我为本论坛做的HTML检索器查mdx,果然也找到了 DbiRegisterCallBack的最新用法呢 感谢dwwang和我讨论了这么长时间和提供的各种信息。
我的问题总算解决了, 方法一,弄清 DBF 结构,硬性清除其索引标志字节。临时措施而已。 方法二,使用 BDE 函数,居然就在 BDE32.hlp中关于DbiRegisterCallBack的 Example中. 这才是正道。 很遗憾是方法二是我花费了很多时间研究出DBF结构后刚刚得知的。 在dwwang提供的http://www.inprise.com/devsupport/bde/bdeapiex中,可以 下载BDE的最新范例(html),用我为本论坛做的HTML检索器查mdx,果然也找到了 DbiRegisterCallBack的最新用法呢 感谢dwwang和我讨论了这么长时间和提供的各种信息。