怎样用BCB连接Access数据库?

yuyulily 2001-04-17 06:58:00
请问怎样用BCB连接Access数据库?
...全文
1056 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧牛童子 2010-06-06
  • 打赏
  • 举报
回复
楼主分配不均衡啊,楼上回答问题的人一分都没得到,大家平均也行啊!
rh 2001-04-20
  • 打赏
  • 举报
回复
呵呵你看他把分给了谁呢??
^_^
cloudred 2001-04-20
  • 打赏
  • 举报
回复
不错,给分!
rh 2001-04-17
  • 打赏
  • 举报
回复
耶!ado确实不错
可惜我没有用过:(
millet 2001-04-17
  • 打赏
  • 举报
回复
不要搞得那么麻烦。
用ADO,以文件方式访问,拿到别的机器上,什么配置都不用改,就能用了。多好!

演示:
建一个Access数据库文件db1.mdb,其中放上一个表,表名为table1,把数据库和可执行文件放在一起。

在窗体上放一个TADOQuery.起名为ado
在构造函数中放上:
AnsiString DataBase = ExtractFilePath(Application->ExeName)+"db1.mdb";
if (FileExists(DataBase))
{
ado->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DataBase;
}

在你的某个按钮的响应事件中加入:
AnsiString sql = "select count(*) from table1";
ado->Close();
ado->SQL->Clear();
ado->SQL->Add(sql);
try
{
ado->Open();
}
catch(...)
{
ado->Close();
ShowMessage("error");
return;
}
ShowMessage("table1中记录的条数为:"+ado->Fields->Fields[0]->AsString);
ado->Close();


我并不是说BDE就不行,不过这种场合,数据库是Microsoft的,用Microsoft的ADO确实比较合适。
rh 2001-04-17
  • 打赏
  • 举报
回复
还是抄的:回复人:trybird(菜鸟) (2000-3-17 23:42:00) 得0分
首先,建立指向你的Access数据库的ODBC数据源名称(Data Source Name,简称DSN)

1.Windows开始菜单 -> 设置 -> 控制面板

在控制面板中双击“ODBC Data Source(32bit)”(32位ODBC数据源)

2.单击 “User DSN” 舌页,再单击“Add" 按钮,进入选择数据库驱动程序界面,
点选“Microsoft Access Driver(*.mdb)”, 再单击“Finish”(完成)按钮。

3.确保System Database的选取是“None”(默认)。
在Data Source Name文本框中输入你自己命名的DSN,比如我起了“MyAccessDSN”的
名字,Description是对DSN的说明注释,你可以不输;再请单击Database框架中的
Select按钮——

4.在打开的Select Database对话框中选择你的Access数据库文件,这里假设它是
MyAccess.MDB,选上后单击OK,再OK,你已经能够看到自己设定的User DSN了,
单击“确定”,完成对DSN的设定。记住咱们的DSN是“MyAccessDSN”。

 回复人:trybird(菜鸟) (2000-3-17 23:45:00) 得0分
其次,设置数据访问和数据控制构件。

1.在BCB的IDE中,点击Data Access构件页,分别点选TDatabase,TTable及TDataSource
构件放在窗体上,它们的默认名分别是Database1,Table1和DataSource1。

2.双击Database1,打开Form1->Database1 Database对话框。单击Driver name组合框
的下拉按钮,在下拉菜单中选“Microsoft Access Driver (*.mdb)”。
再单击"Default"按钮,在“Parameter overrides:”的框中配置DB装载参数:
ODBC DSN=MyAccessDSN
DATABASE NAME=MyAccess.MDB
将Login prompt复选框前的勾号取消,这样登录DB时就不会询问你用户名和口令了。
最后在Database的Name文本框中输入你命名的DB名,比如咱给它命名为MyAcDB。
然后单击OK按钮。

3.点击BCB的Data Access构件页,分别点选TDBGrid和TDBNavigator
构件放在窗体上,它们的默认名分别是DBGrid1和DBNavigator1。
将它们的DataSource属性都设为DataSource1。

 回复人:trybird(菜鸟) (2000-3-19 2:54:00) 得0分
对不起,昨天确实喝多了,高了
可能你确实照我讲的做过了,不然不会给我分的

我还想说的是最好不要用直接设置属性的方法来打开Database和Table,
而应在程序里写代码来控制它。比如:

在窗体创建时这样写:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Database1->Connected=true; //OR Database1->Open();
Table1->Active=true; //OR Table1->Open();
}

在窗体关闭时这样写:

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Database1->Connected=false; //OR Database1->Close();
Table1->Active=false; //OR Table1->Close();
}

DBNavigator构件基本上可以满足你的控制需要,它们可以滚动记录到头一条,前一个,后一个,末一条,
还能对记录增加、删除、修改、提交、取消及刷新——
你也可以对DBNavigator的VisibleButtons属性进行修改,使得只有你想要用的按钮才显示出来。
你也可不用DBNavigator,而自己构造按钮来实现对DB表的操作,只要在你的按钮的Click单击事件中加如下的代码即可——

头一条记录
Table1->First();

前一个记录
Table1->Prior();

后一个记录
Table1->Next();

末一条记录
Table1->Last();

增加记录
Table1->Insert();//OR Table1->Append();

删除记录
Table1->Delete();

修改记录
Table1->Modify();

提交记录
Table1->Post();

取消对记录的操作
Table1->Cancel();

刷新记录
Table1->Refresh();

rh 2001-04-17
  • 打赏
  • 举报
回复
抄来的:
使用 Database 控件
Database1->Params->Add("DATABASE NAME=" +YourDatabaseName);
Database1->Params->Add("OPEN MODE=READ");
Database1->Params->Add("LANGDRIVER=");
Database1->Params->Add("SYSTEM DATABASE=");
Database1->Params->Add("USER NAME=" + UserName);
Database1->Params->Add("PASSWORD=" + PassWord);
luhongjun 2001-04-17
  • 打赏
  • 举报
回复
millet(小米) 
但我要用BDE啊!
millet 2001-04-17
  • 打赏
  • 举报
回复
用ADO吧。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧