Delphi实验报告

发布时间:2016-12-17 10:27:43

实验二Delphi6.0常用组件的使用

一、设计实例:颜色与运动控制

二、使用组件:PanelShapeListboxComboboxChecckboxBottonTimer

三、设计界面

四、各组件属性设置

1.panel的属性

1Align:可以选择panel的位置,此处设置为Altop

2BevelinnerBevelouter:设置panel的外形。

3Color:选择panel的颜色。

4Caption:此属性清空。

2.shape的属性

1Shape:改变组件的形状,此处设置为stcircle

3.listbox的属性

1Items:点击省略号,出现编辑框,输入红色、蓝色、黑色、黄色。

4.combobox的属性

1Text:清空后可消除combobox1的字样。

2Items:此处输入圆形、正方形(用于改变shape组件的形状)。

5.checkbox的属性

1Caption=’暂停

6.button的属性

1Caption=’退出

五、窗体对应代码

procedure TForm1.ListBox1Click(Sender: TObject);

begin

if Listbox1.Selected[0]

then shape1.Brush.Color:=clred;

if Listbox1.Selected[1]

then shape1.Brush.Color:=clblue;

if Listbox1.Selected[2]

then shape1.Brush.Color:=clblack;

if Listbox1.Selected[3]

then shape1.Brush.Color:=clyellow;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

if combobox1.Text='圆形'

then shape1.Shape:=stcircle;

if combobox1.Text='正方形'

then shape1.Shape:=strectangle;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

shape1.Left:=(shape1.Left+10)mod panel1.Width; //此处控制运行速度,改变+10可以改变速度

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

timer1.Enabled:=not checkbox1.Checked;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

六、一些组件补充

listbox组件运行后如果要选中多个选项,则将Extendeselect=trueMultiselect=true就可以选中多个;Enable=false,运行后选项为灰色,不能进行选择;Sorted=true,运行后,在属性items中输入的文字会按英文字母顺序排列。

七、遇到的问题

对一些组件使用不熟悉,写代码时没有注意中英文,一些标点使用了中文形式。

八、运行后界面

实验三初始Delphi数据库程序开发

一、实例:以软件自带数据库DBDEMOS中数据表Biolife,建立一个数据库实例。

二、使用组件:TableDBImageDBGridButtonDBNavigatorDatasource

三、设计界面

四、组件属性设置

1.TableTTable控件是用来访问数据库中的数据表,是Delphi提供的的对数据库最简单而快速的访问方式。

1table1.databasename=DBDEMOS

Table1.tablename=biolife.ab

Table2.databasename=DBDEMOS

Table2.tablename=country.ab

2DatasourceTDatasource控件在Delphi数据库应用程序中起着关键的作用,它用来把非可视化的数据集控件与可视的数据控制控件连接在一起。这样数据集中的数据就可以在数据控制控件中显示出来,并且通过数据控制控件可以编辑、删除、增加数据集中的数据。

1datasource1.dataset=table1

Datasource2.dataset=table2

3.DBImage:用来显示图片格式的BLOB数据。

1datafield=graphic

2stretch=true / /显示时出现全部图像

3datasource=datasource1

4.DBGridTdbgrid可以实时的将数据源全部数据显示在表格中,并且可以直接编辑数据集中的数据。它通过tdatasource控件和Tdataset控件相连。

5.DBNavigator:每打开一个数据集,都有记录指针指向当前记录,在他tdbgrid控件中表现为表格第一列的小箭头。如果用户希望可以操纵这个指针,就需要此控件。

6.Button

1button1.caption=biolife

Button2.caption=country

五、窗体对应代码

procedure TForm1.FormCreate(Sender: TObject);

begin

//table1.Open;

table1.active:=true;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

table1.Close;

table2.close;

dbgrid1.DataSource:=datasource1;

dbnavigator1.DataSource:=datasource1;

table1.Open;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

table1.Close;

table2.close;

dbgrid1.DataSource:=datasource2;

dbnavigator1.DataSource:=datasource2;

table2.Open;

end;

六、运行后界面

七、遇到的问题

连接数据库时没有分清顺序,以至于有些控件无法选择属性

八、数据库系统中各种用户的使用对象关系

九、使用BDE访问数据库的示意图

实验四使用Delphi数据库开发工具

一、实例:建表及设置参照关系

二、1.使用数据库工具:Database Deskbook2.使用数据库引擎管理器:DBE Administrator

三、使用组件:DBGridDBNavigatorDatasourceTableButton

四、建表

1.Datasource Desktop:数据库桌面用于生成、重建、查询、编辑数据库以及执行简单的SQL语句,只支持Paradox数据库、dBase数据库、InterBase数据库。

2.启动database desktop,有如下界面

3.file菜单new选项新建table,出现如下界面,点击ok

4.随后出现界面,可以设置表的结构用户可以在field name中输入字段名,在type中单击鼠标右键选择字段类型,双击key可以设置主码。设计好数据库之后,单机save as按钮,选择合适的目录保存即可。

5.打开空表,输入内容,前四张表是父表,后三张表是子表

五、设置参照关系,对参照表进行设置,以teaches表的设置为例

1.首先打开teaches表,点击重构(Restructure

2.tableproperties中选择tablelookup

3.点击define,进行如下图的设置,然后点击OK保存

4.设置引用关系

5.其余表格设置按下图关系设置

六、建库

1.打开BDE

2.新建数据库并设置路径

七、设计页面

八、组件属性设置

七个table分别连七张表,datasource也与相应的table互连,dbgriddbnavigator属性暂不设置,button按上图修改caption属性

九、窗口代码

procedure TForm1.Button2Click(Sender: TObject);

begin

table2.Close;

table2.Open;

dbgrid1.datasource:=datasource2;

dbnavigator1.datasource:=datasource2;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

table3.Close;

table3.Open;

dbgrid1.datasource:=datasource3;

dbnavigator1.datasource:=datasource3;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

table6.Close;

table6.Open;

dbgrid2.datasource:=datasource6;

dbnavigator2.datasource:=datasource6;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

table1.Close;

table1.Open;

dbgrid1.datasource:=datasource1;

dbnavigator1.datasource:=datasource1;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

table4.Close;

table4.Open;

dbgrid1.datasource:=datasource4;

dbnavigator1.datasource:=datasource4;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

table5.Close;

table5.Open;

dbgrid2.datasource:=datasource5;

dbnavigator2.datasource:=datasource5;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

table7.Close;

table7.Open;

dbgrid2.datasource:=datasource7;

dbnavigator2.datasource:=datasource7;

end;

十、运行后界面,修改上方窗口tno值,下方窗口刷新后值会随之改变

十一、遇到的问题

1.如果完成一个工程将其保存在u盘中,在其他电脑中运行不了?

需要在BDE中重新建一个与工程使用的一模一样的数据库。

2.运行后dbgrid中显示不出数据表?

编程时,不能将table.open放在最后。

实验七Qreport控件及其使用

一、安装QuickReport系列控件

使用Component菜单里Instal package选项,出现如下页面,点击Add,找到计算机cprogram fileBorlanddelphibin中的dclqrt7.0安装。

二、实验步骤

1.打开一个新工程,添加一个quickrep

2.拖拉四个qrband组件到form上,并且将其属性bandtype分别设为rbtitlerbcolumnheadingrbdetailrbpagefooter(为了区分,可以color设置四个band成不同颜色)。

3.拖拉一个query组件到formdatabasename设置为course

4.添加两个tqrsysdata组件分别到qrband1qrband4中,属性data分别设置为qrsreport titleqrspagenumber

5.添加五个qrlabelqrband2中,其属性caption分别设置:课程名称、姓名、性别、学号、专业。

6.添加五个qrtextqrband3中,dataset属性均设置为query1

7.quickrepdataset属性设置为query1.

三、报表窗口

四、命令出现报表窗口

五、相关属性设置

1.dblookuoconbobox属性设置:keyfield=‘课程名称‘,listfield=’课程名称‘,listsource=datasource1.

2.table属性设置:databasenamecoursetablename:课程

3.datasource属性设置:dataset=table1.

六、命令窗口代码

procedure Tformmaster.Button3Click(Sender: TObject); //查看单科选课报表

var

id:string;

begin

if dblookupcombobox1.Text='' then

begin

showmessage('请选择课程');

end;

id:=table1.Lookup('课程名称',dblookupcombobox1.Text,'课程编号');

form7.Query1.Close ;

form7.Query1.SQL.Clear ;

form7.Query1.SQL.Add('select 课程.课程名称,学号课程.学号,学生信息.姓名,学生信息.性别,学生信息.专业 from 学号课程,课程,学生信息 where 学号课程.课程编号=课程.课程编号 and 学号课程.学号 = 学生信息.学号 and 学号课程.课程编号=:id');

form7.Query1.paramByName('id').AsString:=id;

form7.Query1.Open ;

form7.QRDBText1.DataField:='课程名称';

form7.QRDBText2.DataField:='姓名' ;

form7.QRDBText3.DataField:='性别';

form7.QRDBText4.DataField:='学号' ;

form7.QRDBText5.DataField:='专业';

form7.QRSysData1.text:=dblookupcombobox1.Text +'选课学生报表';

form7.QuickRep1.preview;

end;

procedure Tformmaster.FormShow(Sender: TObject);

begin

table1.Open ;

end;

procedure Tformmaster.Button1Click(Sender: TObject); //查看所有选课报表

begin

form7.Query1.Close ;

form7.Query1.SQL.Clear ;

form7.Query1.SQL.Add('select 课程.课程名称,学号课程.学号,学生信息.姓名,学生信息.性别,学生信息.专业 from 学号课程,课程,学生信息 where 学号课程.课程编号=课程.课程编号 and 学号课程.学号 = 学生信息.学号 ');

form7.Query1.Open ;

form7.QRDBText1.DataField:='课程名称';

form7.QRDBText2.DataField:='姓名' ;

form7.QRDBText3.DataField:='性别';

form7.QRDBText4.DataField:='学号' ;

form7.QRDBText5.DataField:='专业';

form7.QRSysData1.text:='所有课程选课学生报表';

form7.QuickRep1.preview;

end;

七、出现问题

1.报表界面中querysql语句原先在sql语句中填写,运行时出现sql的语句报错。

将语句挪到命令界面的相应按钮中编写,并定义自变量。

2.qrdbtext的赋值问题,原来写成form7.qrdbtextdatafield=form7.query1fieldbyname(‘名称‘)。Asstring

实际为form7.QRDBText1.DataField:='课程名称'

八、运行结果

实验八综合实例

一、新建表格,分别为课程表(主码为课程编号)、学生信息表、密码表(0000为管理员账号,学生初始密码均为stu)、学号课程表(主码为学号和课程编号),如下图所示。并建一个名为course的数据库与之相连。

二、登录窗体formlogin-unit1

1.是用户用来登录的界面,其窗口如下

2.各控件属性设置

Object Label1:Tlabel

Caption=’用户名

end

Object Label2:Tlabel

Caption=’密码

end

Object Edit1:Tedit

PasswordChar=’*’

end

Object Button1:TButton

Caption=’登录

end

Object Query1:TQuery

DatabaseName=’course’’

end

3.窗体代码

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure Tformlogin.Button1Click(Sender: TObject);

var

pass,user:string;

begin

user:=edit1.text;

pass:=edit2.Text ;

query1.Close;

query1.SQL.Clear ;

query1.sql.add('select * from 密码 where 学号=:a');

query1.ParamByName('a').AsString :=edit1.Text ;

query1.open;

if pass=query1.FieldByName('密码').AsString

then

begin

query1.Close ;

if user='0000' then

begin

edit2.Clear ;

formmaster.showmodal;

end

else

edit2.Clear ;

formstumain.showmodal;

end

else

showmessage('密码错误,请重新输入!');

end;

三、学生用户界面formstumain-unit2

1.学生用户登录成功后,进入学生用户主界面。在这个界面中可以查看自己的选课情况,并进行选课和退选操作。

2.各控件属性设置

Object Label1:Tlabel

Caption=’已选课程

end

Object DBGrid1:TDBGrid

Datasource=Datasource1

end

Object DBGrid2:TDBGrid

Datasource=Datasource2

end

Object Query1:TQuery

DatabaseName=’course’’

end

Object Query2:TQuery

DatabaseName=’course’’

end

Object Datasource1:TDatasource

Dataset=Query1

end

Object Datasource2:TDatasource

Dataset=Table1

end

Object Table1 :TTable

DatabaseName=’course’

TableName=’课程.db’

end

Object Button1:TButton

Caption=’选课

end

Object Button2:TButton

Caption=’退选

end

Object Button3:TButton

Caption=’修改密码

End

3.窗口代码

implementation

uses unit1,unit4;

{$R *.dfm}

procedure Tformstumain.Button1Click(Sender: TObject);

var

b:string;

begin

b:=table1.fieldbyname('课程编号').AsString ;

query2.Close ;

query2.SQL.Clear ;

query2.sql.add('select * from 学号课程 where 课程编号=:a and 学号=:c');

query2.ParamByName('a').AsString :=table1.fieldbyname('课程编号').asstring ;

query2.ParamByName('c').AsString :=formlogin.Edit1.Text ;

query2.Open ;

if query2.FieldByName('课程编号').AsString=b then

begin

showmessage('课程已选');

end

else begin

query2.Close;

query2.SQL.Clear ;

query2.sql.add('insert into 学号课程 values(:学号, :课程编号)');

query2.params[0].AsString :=formlogin.Edit1.Text ;

query2.Params [1].AsString :=table1.fieldbyname('课程编号').AsString ;

query2.ExecSQL ;

query2.Close;

query1.close;

query1.SQL.Clear ;

query1.sql.Add('select 学号课程.课程编号,课程.课程名称,课程.任课老师,课程.周学时,课程.学分,课程.起始周,课程.结束周,课程.上课地点 from 学号课程 inner join 课程 on(学号课程.课程编号=课程.课程编号) where 学号=:p1');

query1.ParamByName('p1').AsString :=formlogin.Edit1 .text;

query1.open;

end;

end;

procedure Tformstumain.Button3Click(Sender: TObject);

begin

formchpwd.showmodal;

end;

procedure Tformstumain.Button2Click(Sender: TObject);

begin

query2.Close;

query2.SQL.Clear ;

query2.sql.add('delete from 学号课程 where 学号=:p1 and 课程编号=:p3');

query2.parambyname('p1').AsString :=formlogin.Edit1.Text ;

query2.Parambyname('p3').AsString :=query1.fieldbyname('课程编号').AsString ;

query2.ExecSQL ;

query2.Close;

query1.Close ;

query1.SQL.clear;

query1.sql.Add('select 学号课程.课程编号,课程.课程名称,课程.任课老师,课程.周学时,课程.学分,课程.起始周,课程.结束周,课程.上课地点 from 学号课程 inner join 课程 on(学号课程.课程编号=课程.课程编号) where 学号=:p1');

query1.ParamByName('p1').AsString:=formlogin.Edit1.text;

query1.active:=true;

end;

procedure Tformstumain.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

query1.Close ;

end;

procedure Tformstumain.FormShow(Sender: TObject);

begin

table1.Open;

query1.Close ;

query1.SQL.Clear ;

query1.sql.Add('select 学号课程.课程编号,课程.课程名称,课程.任课老师,课程.周学时,课程.学分,课程.起始周,课程.结束周,课程.上课地点 from 学号课程 inner join 课程 on(学号课程.课程编号=课程.课程编号) where 学号=:p1');

query1.ParamByName('p1').AsString :=formlogin.Edit1 .text;

query1.Open ;

end;

四、修改密码界面formchpwd-unit4

1.用来修改学生密码及管理员密码

2.各控件属性

Object Label1:Tlabel

Caption=’用户名

End

Object Label2:Tlabel

Caption=’旧密码

PasswordChar=’*’

End

Object Label3:Tlabel

Caption=’新密码

PasswordChar=’*’

End

Object Label4:Tlabel

Caption=’确认密码

PasswordChar=’*’

End

Object Button1:TButton

Caption=’修改

End

Object Query1:TQuery

DatabaseName=’course’’

end

3.窗口代码

procedure Tformchpwd.Button1Click(Sender: TObject);

var

p2,p3,p4:string;

begin

p3:=edit3.Text;

p4:=edit4.Text;

p2:=edit2.Text ;

query1.close;

query1.SQL .clear;

query1.sql.add('select * from 密码 where 学号=:a');

query1.ParamByName('a').AsString :=edit1.Text ;

query1.open;

if p2=query1.FieldByName ('密码').AsString

then

begin if p3 =''

then

begin

showmessage('请输入新密码');

end;

if p4 =''

then

begin

showmessage('请确认密码');

end;

if p3=p4

then

begin

query1.close;

query1.sql.clear;

query1.SQL.Add('update 密码 set 密码=:b where 学号=:c');

query1.ParamByName('b').AsString :=edit3.Text ;

query1.ParamByName('c').AsString :=edit1.Text ;

query1.ExecSQL ;

query1.Close ;

edit1.Clear ;

edit2.Clear;

edit3.Clear;

edit4.Clear;

showmessage('密码修改成功');

formchpwd.Close ;

end

else

showmessage('两次密码不一致');

end

else

showmessage('旧密码不正确,请重新输入');

end;

五、管理员界面formmaster-unit3

1.设计页面

2.各控件属性设置

Object Button1:TButton

Caption=’查看所有选课报表

End

Object Button2:TButton

Caption=’修改管理员密码

End

Object Button3:TButton

Caption=’查看单科选课报表

End

Object Button5:TButton

Caption=’修改学生密码

End

Object Button6:TButton

Caption=’查看个人信息及选课情况

End

Object Table1 :TTable

DatabaseName=’course’

TableName=’课程.db’

end

Object Datasource1:TDatasource

Dataset=Table1

end

Object DBLookupCombobox1:TDBLookuoCombobox

KeyField=’课程名称

ListField=’ 课程名称

ListSource=Datasource1

End

3.窗口代码

implementation

uses unit4,unit5,unit6,unit7;

{$R *.dfm}

procedure Tformmaster.Button2Click(Sender: TObject);

begin

formchpwd.Showmodal;

end;

procedure Tformmaster.Button5Click(Sender: TObject);

begin

formfchpwd.table1.Open ;

formfchpwd.showmodal;

end;

procedure Tformmaster.Button6Click(Sender: TObject);

begin

form6.show;

end;

procedure Tformmaster.Button3Click(Sender: TObject);

var

id:string;

begin

if dblookupcombobox1.Text='' then

begin

showmessage('请选择课程');

end;

id:=table1.Lookup('课程名称',dblookupcombobox1.Text,'课程编号');

form7.Query1.Close ;

form7.Query1.SQL.Clear ;

form7.Query1.SQL.Add('select 课程.课程名称,学号课程.学号,学生信息.姓名,学生信息.性别,学生信息.专业 from 学号课程,课程,学生信息 where 学号课程.课程编号=课程.课程编号 and 学号课程.学号 = 学生信息.学号 and 学号课程.课程编号=:id');

form7.Query1.paramByName('id').AsString:=id;

form7.Query1.Open ;

form7.QRDBText1.DataField:='课程名称';

form7.QRDBText2.DataField:='姓名' ;

form7.QRDBText3.DataField:='性别';

form7.QRDBText4.DataField:='学号' ;

form7.QRDBText5.DataField:='专业';

form7.QRSysData1.text:=dblookupcombobox1.Text +'选课学生报表';

form7.QuickRep1.preview;

end;

procedure Tformmaster.FormShow(Sender: TObject);

begin

table1.Open ;

end;

procedure Tformmaster.Button1Click(Sender: TObject);

begin

form7.Query1.Close ;

form7.Query1.SQL.Clear ;

form7.Query1.SQL.Add('select 课程.课程名称,学号课程.学号,学生信息.姓名,学生信息.性别,学生信息.专业 from 学号课程,课程,学生信息 where 学号课程.课程编号=课程.课程编号 and 学号课程.学号 = 学生信息.学号 ');

form7.Query1.Open ;

form7.QRDBText1.DataField:='课程名称';

form7.QRDBText2.DataField:='姓名' ;

form7.QRDBText3.DataField:='性别';

form7.QRDBText4.DataField:='学号' ;

form7.QRDBText5.DataField:='专业';

form7.QRSysData1.text:='所有课程选课学生报表';

form7.QuickRep1.preview;

end;

六、修改学生密码界面formfchpwd-unit6

1.设计界面

2.各控件属性设置

Object Label1:Tlabel

Caption=’请选择要修改的用户名

End

Object Label2:Tlabel

Caption=’新密码

PasswordChar=’*’

End

Object Label3:Tlabel

Caption=’确认密码

PasswordChar=’*’

End

Object Button1:TButton

Caption=’修改

End

Object DBLookupCombobox1:TDBLookuoCombobox

KeyField=’姓名

ListSource=Datasource1

End

Object Table1 :TTable

DatabaseName=’course’

TableName=’学生信息.db’

end

Object Datasource1:TDatasource

Dataset=Table1

end

Object Query1:TQuery

DatabaseName=’course’’

end

3.窗口代码

procedure Tformfchpwd.Button1Click(Sender: TObject);

var

id:string;

begin

if dblookupcombobox1.Text ='' then

begin

showmessage('请选择学生');

end;

id:= table1.Lookup('姓名',dblookupcombobox1.Text ,'学号');

if edit1.Text =edit2.Text then

begin

query1.Close ;

query1.SQL.Clear ;

query1.SQL.Add('update 密码 set 密码=:b where 学号=:c');

query1.ParamByName('b').AsString :=edit1.Text ;

query1.ParamByName('c').AsString :=table1.Lookup('姓名',dblookupcombobox1.Text ,'学号');

query1.ExecSQL ;

query1.Close ;

showmessage('修改成功');

formfchpwd.Close ;

end

else

showmessage('两个密码不同,请重新输入');

end;

七、查看个人信息及选课情况form6-unit6

1.设计页面

2.各属性设置

Object Label1:Tlabel

Caption=’请选择查询方式

End

Object Label2:Tlabel

Caption=’学号

End

Object Label3:Tlabel

Caption=’姓名

End

Object Label4:Tlabel

Caption=’已选课程

End

Object Label5:Tlabel

Caption=’个人信息

End

Object ComboBox1:Tcombobox

Text=’’

Items=’学号、姓名

End

Object Button1:TButton

Caption=’查询

End

Object Query1:TQuery

DatabaseName=’course’’

end

Object Query2:TQuery

DatabaseName=’course’’

end

Object Datasource1:TDatasource

Dataset= Query1

end

Object Datasource2:TDatasource

Dataset= Query2

end

Object DBGrid1:TDBGrid

Datasource=Datasource1

end

Object DBGrid2:TDBGrid

Datasource=Datasource2

end

3.窗口代码

procedure TForm6.Button1Click(Sender: TObject);

begin

if combobox1.Text ='' then

begin

showmessage('请选择查询方式');

end

else

begin

case combobox1.ItemIndex of

0: begin

query1.Close ;

query1.SQL .clear;

query1.SQL.Add (' select 学号课程.课程编号,课程.课程名称,课程.任课老师,课程.周学时,课程.学分,课程.起始周,课程.结束周,课程.上课地点 from 学号课程 inner join 课程 on 学号课程.课程编号=课程.课程编号 where 学号 =:a');

query1.ParamByName('a').AsString :=edit1.Text ;

query1.open;

query2.Close ;

query2.SQL.Clear ;

query2.SQL.Add('select * from 学生信息 where 学号 =:b');

query2.ParamByName('b').AsString :=edit1.Text ;

query2.Open ;

edit1.Clear ;

end;

1: begin

query1.Close ;

query1.SQL .clear;

query1.SQL.Add (' select 学号课程.课程编号,课程.课程名称,课程.任课老师,课程.周学时,课程.学分,课程.起始周,课程.结束周,课程.上课地点 from 学号课程 ,课程,学生信息 where 学号课程.课程编号 = 课程.课程编号 and 学号课程.学号 = 学生信息.学号 and 姓名=:a');

query1.ParamByName('a').AsString :=edit2.Text ;

query1.open;

query2.Close ;

query2.SQL.Clear ;

query2.SQL.Add('select * from 学生信息 where 姓名=:b');

query2.ParamByName('b').AsString :=edit2.Text ;

query2.Open ;

edit2.Clear ;

end;

end;

end;

end;

八、生成报表界面form7-unit7

1.设计页面

2.各控件属性设置

Object Query1:TQuery

DatabaseName=’course’’

end

Object QRLabel1:TQRlabel

Caption=’课程名称

End

Object QRLabel2:TQRlabel

Caption=’姓名

End

Object QRLabel3:TQRlabel

Caption=’性别

End

Object QRLabel4:TQRlabel

Caption=’学号

End

Object QRLabel5:TQRlabel

Caption=’专业

End

Object QRDBText1:TQRDBText

Dataset=Query1

End

Object QRDBText2:TQRDBText

Dataset=Query1

End

Object QRDBText3:TQRDBText

Dataset=Query1

End

Object QRDBText4:TQRDBText

Dataset=Query1

End

Object QRDBText5:TQRDBText

Dataset=Query1

End

Object QRsysdata1:TQRsysdata

Data=qrsreporttitle

End

Object QRsysdata2:TQRsysdata

Data=qrspagenumber

End

Object Quivkrep1:Tquickrep

Dataset=query1

End

九、遇到的问题

1.经常出现invaild use keyword的报错。

可能是程序中使用了程序中的关键字、sql语句编写错误

2.formstumain界面,学生登录后显示不了已选课程。

formonshow事件中编写query的打开程序。

3.修改密码的程序中出现错误。

使用了多层的if语句,但beginend不对等。

4. qrdbtext的赋值问题,原来写成form7.qrdbtextdatafield=form7.query1fieldbyname(‘名称‘)。Asstring

实际为form7.QRDBText1.DataField:='课程名称'

Delphi实验报告

相关推荐