急!急!急!急!急!急!急!急!急!急!如何訪問dBASE FilesIII的數據庫,不用BDE(100分)

  • 主题发起人 主题发起人 goddy
  • 开始时间 开始时间
G

goddy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何訪問dBASE FilesIII的數據庫,不用BDE
try
{
FMain->tCounter->Close();
FMain->tCounter->DatabaseName="c://wyn";
FMain->tCounter->TableName="No_Count.dbf";
if(!FMain->tCounter->Active)
FMain->tCounter->Active=true;
}
catch(Exception &e)
{
ShowMessage("請設置No_Counter.dbf 的路徑"+e.Message);
return ;
}
ShowMessage("連接成功");

這個顧程序在沒BDE的情況會出錯

 
你不用BDE 就只能把这个DBF 表作为一个二进程文件, 或者是文本文件来处理,
DBF文件很有规律, 以前我分析过,前面是个表头,后面一个接一个是记录, 顺序存放,
每个记录及每个字段之间有固定的Ascii码分开。
你打开看看马上就能知道。
 
我给你指个明路,去寻找一个高手,肯定解决你的问题:mrxiong@sina.com
 
去网上找找,有个VCL控件可解决这个问题,控件名称我忘了。因为不没有什么理由不用BDE
 
用其他数据库控件 Apollo 5.14d
最好的BDE替换
支持C/S结构,支持SQL92标准,瘦客户安装 。
可惜我没有密码。如果有密码不要忘记告诉我呀。
可到delphi窑洞http://202.117.43.177/
下载。
 
这个也可以 halcyon 6.7.00 ,同一地点下载。

[简介]

Halcyon 6.70.00 w sources
16-FEB-2001

Release Info:

A series of Object Pascal routines for management of Clipper, dBase III/IV/V ,
and FoxPro files. The routines are designed to do the following:

- Provide a simple user interface to read and write xBase
files in a network environment.
- Allow creation, use and updating of multiple .CDX/.MDX/.NDX/.NTX
index files in reading and updating the data (DBF) files
- Allow reading and updating of .DBT/FPT memo file entries.
- Allow creation of new dBase III/IV and FoxPro files.
These routines will work with FoxPro, dBase III and IV memo
file structures.
- Provide a file handler interface that offers a simple disk
management capability including file sharing for LANs.
- Allow compilation using Delphi 3/4/5 and CBuilder 3/4/5.
- Do all of the above using native Pascal--No .DLL, .ASM or .OBJ
files are used.
- Apply Object Oriented Programming to create easily usable modules.
- Data-Aware Components

 
謝謝大家 這個問題我以用ADO 解決了
try
{
FMain->tCounter->Close();
//FMain->tCounter->DatabaseName=ExtractFilePath(eCounter->Text);
String str="Provider=MSDASQL.1;Driver=Microsoft Visual Foxpro Driver;SourceDB="+ExtractFilePath(eCounter->Text)+";SourceType=DBF;";
FMain->tCounter->ConnectionString=str;
FMain->tCounter->TableName=ExtractFileName(eCounter->Text);
FMain->tCounter->Active=true;
}
catch(Exception &e)
{
ShowMessage("½Ð³]¸mNo_Counter.dbf ªº¸ô®|"+e.Message);
return ;
}
ShowMessage("³s±µ¦¨¥/");
 
多人接受答案了。
 
后退
顶部