实验7-C++Builder访问SQLServer数据库(2)

2018-11-27 17:16

3. 第二模块(Master-Detail关系)

(1) 功能简介

本模块显示零件的加工工艺路线,其特点是提供一个组合框,允许用户从中选择零件(其实是零件编号),而一旦选择确定,程序将自动显示所选择零件的加工工艺路线。 (2) VCL组件对象及布局

在窗体上放置一个组框GroupBox、两个标签Label、两个表数据集ADOTable、两个数据源DataSource、一个数据查表组合框DBLookupComboBox和一个数据网格DBGrid组件,此时设计界面如图 9所示(本实验的全部七个模块共用一个数据库连接组件,以后不再说明。):

图 9 第二模块初始设计界面

(3) 组件对象的属性设置

按表 6~表 11顺序设置以上各VCL组件对象的属性。

表 6 组框与标签对象的属性设置

组件所属的选项卡 默认组件名 GroupBox2 Standard Label5 Label6 组件所属的选项卡 默认组件名 ADO ADOTable1 ADOTable2 组件 表数据集 组件 AutoSize属性 Caption属性 组框 标签 false false Master-Detail关系 零件工艺路线 零件编号 表 7 表数据集对象的属性设置

Name属性 Connection属性 Part Paths 组件 数据源 Engineering TableName属性 零件信息表 工艺路线表 Active属性 true 表 8 数据源对象的属性设置

组件所属的选项卡 默认组件名 DataAccess DataSource1 DataSource2 Name属性 DataSet属性 DSPart DSPaths Part Paths 为了能够实现自动显示用户所选择零件的加工工艺路线,还必须按表 9设置Name属性为“Paths”的表数据集的两个属性。

表 9 Paths表数据集对象的Master-Detail关系属性设置

Name属性 MasterSource属性 MasterFields属性 Paths 组件所属的选项卡 默认组件名 ADO DBLookupComboBox1 DSPart 组件 数据查表组合框 零件编号 表 10 数据查表组合框对象的属性设置

ListSource属性 ListField属性 DSPart 零件编号 KeyField属性 零件编号

表 11 数据网格对象的属性设置

组件所属的选项卡 默认组件名 DataControls DBGrid1 组件 数据网格 DataSource属性 DSPaths 保存并运行程序,发现数据网格可以正常显示用户所选择零件的工艺路线,但其第一列的宽度值过大,另外,显示的列也太多。下面做一些调整。

选中该数据网格对象,然后在属性面板中点击“Columns…”属性名后的

按钮,出现“Editing

按钮后,

DBGrid1->Columns”对话框(注意观察属性面板所发生的变化)。连续点击四次对话框中的对话框的内容如图 10所示。

图 10 “Editing DBGrid1->Columns”对话框

选中其中第一行(0-TColumn),在属性面板中将其“FieldName”属性设置为“零件编号”,“Width” 属性设置为“60”。同理可设置其余三行的“FieldName”属性分别为“工序号”、“工步号”和“工步代码”。“Width”属性值酌情确定。 (4) 保存并运行程序

点击C++Builder主工具栏上的“Save All”按钮,保存所有程序文件。 点击C++Builder主工具栏上的Run按钮

,运行程序。

4. 第三模块(数据查询-V带断面尺寸)

(1) 功能简介

本模块主要功能是根据用户所输入的V带型号,从数据库的“V带断面”数据表中查询出对应该型号的V带的顶宽(a)、断面高(h)、节宽(a0)、节高(y0)等断面尺寸值。 (2) VCL组件对象及布局

在窗体上放置一个组框GroupBox、一个图像Image、两个标签Label、一个编辑框Edit、一个查询数据集ADOQuery、一个数据源DataSource和一个数据网格DBGrid组件,设计界面如图 11所示:

图 11 第三模块初始设计界面

(3) 组件对象的属性设置

按表 12~表 17顺序设置以上各VCL组件对象的属性。

表 12 组框与标签对象的属性设置

组件所属的选项卡 默认组件名 组件 GroupBox3 Standard Label7 Label8 组件所属的选项卡 Standard 组件所属的选项卡 默认组件名 Additional Image1 组框 标签 AutoSize属性 false false 默认组件名 组件 Edit1 编辑框 Caption属性 数据查询-V带断面尺寸 V带型号 (A,B,C,D,E,F,O) 表 13 编辑框对象的属性设置

Text属性 (空值) 表 14 图像对象的属性设置

组件 AutoSize属性 Stretch属性 图像 false true Picture属性 (设置为图片文件“V带断面.JPG”) (图片文件“V带断面.JPG”应事先复制到程序所在的文件夹内。)

表 15 查询数据集对象的属性设置

组件所属的选项卡 默认组件名 ADO ADOQuery1 组件 Name属性 Connection属性 Engineering 查询数据集 VBelt 组件 表 16 数据源对象的属性设置

组件所属的选项卡 默认组件名 DataAccess DataSource1 Name属性 DataSet属性 VBelt 数据源 DSVBelt 组件 数据网格 表 17 数据网格对象的属性设置

组件所属的选项卡 默认组件名 DataControls DBGrid2 DataSource属性 DSVBelt (4) 编写编辑框(Edit1)对象的按键(KeyPress)事件过程

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) {

if(Key==13) { //如果按了回车键

VBelt->Close(); //关闭查询数据集

VBelt->SQL->Clear(); // 清除原有的SQL属性 VBelt->SQL->Add(\带断面 where 型号=:xh\ //设置SQL属性(带参数) VBelt->Parameters->ParamByName(\alue = Edit1->Text ; //设置参数值 VBelt->Open(); //打开查询数据集

for(int i=0;i<5;i++) { //设置数据网格控件各列宽度 DBGrid2->Columns->Items[i]->Width=45;

DBGrid2->Columns->Items[i]->Alignment = taLeftJustify; //设置左对齐方式或taCenter; }

Edit1->Clear(); //清除编辑框内的文本 } }

(5) 保存程序文件并做程序测试

点击C++Builder主工具栏上的“Save All”按钮,保存所有程序文件。 点击C++Builder主工具栏上的Run按钮

,运行程序。

在编辑框内输入要查询的V带型号(型号字母不区分大小写)后打回车键,下面的数据网格组件中会显示相应型号V带的顶宽、断面高、节宽、节高等断面尺寸值。

5. 第四模块(逐行处理数据集)

(1) 功能简介

本模块的功能是逐行处理一个表数据集中的记录,并把其中满足条件的记录显示在一个字符串网格控件中。本例同时演示了如何用非数据组件(前面第一至第三模块所用到的数据编辑框DBEdit、数据图像DBImage、数据网格DBGrid等都是数据组件)显示数据库中的数据。 (2) VCL组件对象及布局

在窗体上放置一个组框GroupBox、一个标签Label、一个字符串网格StringGrid、一个按钮Button和一个表数据集ADOTable组件,此时设计界面如图 12所示:

图 12 第四模块初始设计界面

(3) 组件对象的属性设置

按表 18~表 20顺序设置以上各VCL组件对象的属性。

表 18 组框、标签与命令按钮对象的属性设置 组件所属的选项卡 默认组件名 GroupBox4 Standard Label9 Button1 组件所属的选项卡 Additional 默认组件名 StringGrid1 组件 字符串网格 组件 组框 标签 命令按钮 AutoSize属性 false Caption属性 逐行处理数据集 顶宽在30~40之间的V带 执行动作 表 19 字符串网格对象的属性设置

DefaultRowHeight 16 DefaultColWidth RowCount 60 1 ColCount 2

表 20 表数据集对象的属性设置

组件所属的选项卡 默认组件名 ADO ADOTable1 组件 表数据集 Name属性 Connection属性 Belts Engineering TableName属性 V带断面 Active属性 true (4) 编写按钮(Button1)对象的单击(Click)事件过程

void __fastcall TForm1::Button1Click(TObject *Sender) {

int i=0; //计数器变量

Belts->First(); //将表数据集记录指针移到第一条记录

while (!Belts->Eof) { //如果记录指针尚未到达文件末尾(即指向某条记录) float w = Belts->FieldByName(\顶宽\ //取当前记录的“顶宽”字段值 if(w>=30 && w<=40) { //如果该值在30~40之间 i++; //计数器加1

StringGrid1->RowCount ++; //字符串网格组件的行数加1

StringGrid1->Cells[0][i] = Belts->FieldByName(\型号\ //网格的第i行第0列

//显示“型号”字段的值

StringGrid1->Cells[1][i]= FloatToStr(w); //网格的第i行第1列显示“顶宽”字段的值 }

Belts->Next(); //将表数据集记录指针移到下一条记录

}

if (i>0) { //如果有顶宽在30~40之间的V带

StringGrid1->FixedRows=1; //设置网格组件的FixedRows(固定行)属性值为1 StringGrid1->Cells[0][0]=\型号\ //网格的第0行第0列显示“型号” StringGrid1->Cells[1][0]=\顶宽\ //网格的第0行第1列显示“顶宽” } }

(5) 保存程序文件并做程序测试

点击C++Builder主工具栏上的“Save All”按钮,保存所有程序文件。 点击C++Builder主工具栏上的Run按钮

,运行程序。

在程序界面上点击“执行动作”按钮,则字符串网格组件中应显示满足条件的两种型号的V带及顶宽值。

6. 第五模块(用命令组件向“V带断面”表中添加数据行)

(1) 功能简介

命令组件允许通过SQL语句直接操纵数据库,即对数据表进行插入、删除和修改等操作。本模块仅演示向表中添加数据行的操作,而数据的来源则由字符串网格组件提供(需要用户输入数据)。 (2) VCL组件对象及布局

在窗体上放置一个组框GroupBox、一个标签Label、一个编辑框Edit、一个字符串网格StringGrid、两个按钮Button和一个命令ADOCommand组件,此时设计界面如图 13所示:


实验7-C++Builder访问SQLServer数据库(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:廉租房制度的公共政策分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: