二、 程序的设计实现
本程序采用ODBC接口同Access 2000数据源相连,并将数据库中的记录数据通过网格的形式显示给用户,并能完成同Access表单类似的诸如添加记录、删除记录等功能。
在开始编制程序之前首先要通过控制面板的32位ODBC数据源设置我们待操作的后台Access数据源,建立名称为\"雇员\"的系统DSN,并将其指向Employee.mdb。为简单计,数据库中有一个\"雇员表\",内含5个字段:\"雇员ID\",\"雇员姓名\"、\"所在部门\",\"职务\",\"备注\"等,并预先填充几条记录备用。
在用VC创建工程时,需要在第二步确认提供了对ActiveX控件的支持。需要有后台数据库的支持,并通过\"DataSource\"按扭选择刚才注册过的ODBC数据源。此时编译运行程序,通过工具条上的数据库导航条可以移动数据库的记录指针,说明此时已经同数据库建立了连接,但由于没有控件(编辑框或其他)同数据库的字段相棒定,此时还无法显示数据库中的记录。我们先插入网格控件DBGrid Control,方法如下:
1)选择菜单->Project->Add to Project->Components and Controls Gallery
2)在部件选择对话框中进入Registered ActiveX Controls
3)选择DBGrid Control,单击Insert按钮,确认后对类进行配置(可以按默认),我们不做任何修改单击OK按钮,插入完成。
在VC工作区的ResourceView中可以如同使用标准控件一样将刚添加来的DBGird网格控件拖入到对话框中,并对其属性进行设置。下面将主要的属性列表如下:
属性名称 |
值 |
说明 |
Caption |
雇员表 |
设定DBGird控件的网格标题 |
AllowAddNew |
True |
是否允许添加记录 |
AllowDelete |
True |
是否允许删除记录 |
AllowDelete |
True |
是否允许更新记录 |
ColumnHeaders |
True |
是否显示每列的标题 |
DefColWidth |
100 |
设定每列的宽度 |
RowHeight |
11 |
设定每行高度 |
DataSource |
<Not bound to a DataSource> |
设定绑定的数据源 |
BackColor |
0x8000000E |
设定网格的背景色 |
再次运行程序,可以看到类似Access表格风格的DBGird控件以按我们的属性设定显示了出来,但并没有数据库记录的显示,而且我们注意到刚才设定数据源属性DataSource时,下拉选项只有<Not bound to a DataSource>一项,而并没有我们所希望的ODBC数据源\"雇员\"的存在。所以我们还要继续添加一些辅助的控件来完成同数据库源的绑定。用同插入DBGird控件一样的步骤,插入Microsoft RemoteData Control控件,同样也要对其属性进行设置:
属性名称 |
值 |
说明 |
ID |
IDC_REMOTEDATACTL1 |
控件ID |
Caption |
人事管理系统--雇员表 |
设定导航条的标题 |
UserName |
|
由于没有指定用户及密码,设为空 |
Password |
|
同上 |
SQL |
SELECT * FROM |
\"雇员表\" 待执行的SQL结构化查询语言 |
在RemoteData控件里用SQL语言将ODBC数据源的\"雇员表\"打开并选取里面的所有字段,也即显示表里的所有记录信息。这时再打开DBGird控件的DataSource属性就会发现下拉条里多了一个\"IDC_REMOTEDATACTL1\",正是RemoteData的ID号。此次编译运行程序就在网格控件内显示了数据源指定表的所有记录信息,而且可以方便的添加、删除记录以及调整字段尺寸等。
运行结果表明,在RemoteData控件的中介作用下实现了DBGird控件同ODBC数据源之间的交互。该程序设计实现过程是可靠、实用的。