数据库应用程序设计离线作业答案_第1页
数据库应用程序设计离线作业答案_第2页
数据库应用程序设计离线作业答案_第3页
数据库应用程序设计离线作业答案_第4页
数据库应用程序设计离线作业答案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学远程教育学院

《数据库应用程序设计》课程作业

姓名:学号:

年级:2016年春学习中心:

作业

第一早

1.5如何保存Delphi的项目?尝试自己动手创建一个项目,并保存。

答:执行File|SaveAll菜单命令或单击工具栏中的SaveAll按钮便可保存,在保存时可以对

工程文件和单元文件进行改名,但后缀名不能改。保存文件之后,单击工具中的Run按钮

或按F9键,系统将开始编译、连接、运行该工程。

3-包含5W中-共享-新猛文件55

*姬

匕收朝名的修改日期大小

*T®1QPrqjectLcfg第16/3/2919而一CFG文件1KB

■直苴LProjectl.dof2016/3/29""DOFXS2KB

工最正访问的位置,Projectl.dpr2016/3/291905DelphiProject1KB

OPrqjectl.res2016/3/2913RESFSe1KB

>testdfm2016/3/2919:04DelphiForm1KB

三层

tftestpas2016/3/2919XMDelphiSourceFile1K8

8陋

♦8B片

1.7尝试设计如图1—10所示的窗体。(图见教材P15页图1—10)

图1-10

答:设计界面:

运行界面:

第二章

2.8设计如图2—5所示的界面。单击"按钮1"或"按钮2"时在标签上显示用户所执行的操作。

单击"开启/停用按钮"可控制"按钮r和"按钮2"是否可用,单击"退出系统”按钮时,结束程

序的运行。

运行界面:

代码:

unittest;

interface

uses

Windows,Messages,Syslltils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

showLabel:TLabel;

btnl:TButton;〃按钮1

btn2:TButton;〃按钮2

ctlBtn:TButton;〃开启停用按钮

exitBtn:TButton;〃退出按钮

procedurebtnlClick(Sender:TObject);

procedurebtn2Click(Sender:TObject);

procedureexitBtnClick(Sender:TObject);

procedurectlBtnClick(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

ctlStatus:integer=0;〃控制按钮1和2的开启和关闭,0表示当前为开启,1表示关闭

implementation

{$R*.dfm)

procedureTForml.btnlClick(Sender:TObject);

begin

forml.showLabel.Caption:=,您点击了按钮I1;

end;

procedureTForml.btn2Click(Sender:TObject);

begin

forml.showLabel.Caption:='您点击了按钮2';

end;

procedureTForml.exitBtnClick(Sender:TObject);

begin

forml.Close;

end;

procedureTForml.ctlBtnClick(Sender:TObject);

begin

ifctlStatus=0then

begin

forml.btnl.Enabled:=false;

forml.btn2.Enabled:=false;

ctlStatus:=1;

end

else

begin

forml.btnl.Enabled:=true;

forml.btn2.Enabled:=true;

ctlStatus:=0;

end;

end;

end.

2.9设计如图2—6所示的界面。当单击按钮时,可控制文本框中字体的颜色。

答:设计界面:

运行界面:

代码:(按钮快捷键的设置方法为在字母前加&,如&R,&G,&B)

unittest;

interface

uses

Windows,Messages,Syslltils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

Labell:TLabel;

Editl:TEdit;

btnRed:TButton;

btnGreen:TButton;

btnBlue:TButton;

procedurebtnRedClick(Sender:TObject);

procedurebtnGreenClick(Sender:TObject);

procedurebtnBlueClick(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

implementation

{$R*.dfm}

procedureTForml.btnRedClick(Sender:TObject);

begin

forml.Editl.Font.Color:=clred;

end;

procedureTForml.btnGreenClick(Sender:TObject);

begin

forml.Editl.Font.Color:=clgreen;

end;

procedureTForml.btnBlueClick(Sender:TObject);

begin

forml.Editl.Font.Color:=clblue;

end;

end.

第二早

3.8下列实数中哪些是合法的,哪些是不合法的?不合法的请说明理由。

(A)0.25E+02(B).25+2(C)25E+2

(D)34.5(E).123(F)-3E-4

答:(A)合法,即为25

(B)不合法,小数点前必须有数字,如表示为0.25+2

(C)合法,即为2500

(D)合法,即为34.5

(E)不合法,同(2)

(F)合法,即为-0.0003

3.12数学式子sin30写成Delphi表达式是下列哪个?

(A)Sin30(B)Sin(30)(C)SIN(30)(D)Sin(30*Pi/180)

答:D,需要把角度转化为弧度

第四章

4.7利用3个数字编辑框分别输入小时、分、秒,换算共有多少秒,然后使用标签输出。

答:设计界面:

运行界面:

代码:

unittest;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls,Spin;

type

TForml=class(TForm)

SpinEditl:TSpinEdit;

Labell:TLabel;

Label2:TLabel;

SpinEdit2:TSpinEdit;

Label3:TLabel;

SpinEdit3:TSpinEdit;

Label4:TLabel;

procedureSpinEditlChange(Sender:TObject);

procedureSpinEdit2Change(Sender:TObject);

procedureSpinEdit3Change(Sender:TObject);

private

{Privatedeclarations}

procedureCalculateTimeToSencond(timeKind:String;timerinteger);

public

{Publicdeclarations}

end;

var

Forml:TForml;

hour:integer=0;

minute:integer=0;

second:integer=0;

tot:integer=0;

implementation

{$R*.dfm}

procedureTForml.CalculateTimeToSencond(timeKind:String;time:integer);

begin

iftimeKind='hh'then

hour:=time

elseiftimeKind='mi'then

minute:=time

elseiftimeKind='ss'then

second:=time;

tot:=hour*60*60+minute*60+second;

forml.Label4.Caption:='总共为'+IntToStr(tot)+,秒';

end;

procedureTForml.SpinEditlChange(Sender:TObject);

begin

Forml.CalculateTimeToSencond('hh',StrTolnt(Forml.SpinEditl.Text));

end;

procedureTForml.SpinEdit2Change(Sender:TObject);

begin

Forml.CalculateTimeToSencondCmi',StrTolnt(Forml.SpinEdit2.Text));

end;

procedureTForml.SpinEdit3Change(Sender:TObject);

begin

ForrnKalculateTimeToSencondCss',StrTolnt(Forml.SpinEdit3.Text));

end;

end.

4.8在编辑框中输入一个实数,利用备注框输出该实数及其平方和平方根。

答:设计界面:

代码:

unitUnitl;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

Editl:TEdit;

Labell:TLabel;

Memol:TMemo;

Label2:TLabel;

procedureEditlChange(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

numl:Real;〃原实数

num2:Real;〃实数平方

num3:Real;〃实数平方根

implementation

{$R*.dfm}

procedureTForml.EditlChange(Sender:TObject);

begin

ifforml.Editl.Text<>*'then

begin

numl:=StrToFloat(forml.Editl.Text);

num2:=Sqr(numl);

num3:=Sqrt(numl);

forml.Memol.Lines.Clear;

forml.Memol.Lines.Add('实数为:'+FloatToStr(numl));

formLMemol.Lines.AddC平方为:'+FloatToStr(num2));

forml.Memol.Lines.Add('平方根为:'+FloatToStr(num3));

end;

end;

end.

第五章

5.11任意给定3个实数,按照从大到小的顺序依次输出这3个数。

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

uses

Windows,Messages,Syslltils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

numlEdit:TEdit;

Labell:TLabel;

Label2:TLabel;

resultLabel:TLabel;

num2Edit:TEdit;

num3Edit:TEdit;

procedurenumlEditChange(Sender:TObject);

procedurenum2EditChange(Sender:TObject);

procedurenum3EditChange(Sender:TObject);

private

{Privatedeclarations}

procedureCompareNumber();

public

{Publicdeclarations}

end;

var

Forml:TForml;

numl:Real;〃数字1

num2:Real;〃数字2

num3:Real;〃数字3

compnum:Real;〃比较时转换2数

outStr:String;〃输出结果;

implementation

{$R*.dfm}

procedureTForml.CompareNumber();

begin

if(trim(forml.numlEdit.Text)<>")And(trim(forml.num2Edit.Text)<>")And

(trim(forml.num3Edit.Text)<>")then

begin

numl:=StrToFloat(forml.numlEdit.Text);

num2:=StrToFloat(forml.num2Edit.Text);

num3:=StrToFloat(forml.num3Edit.Text);

ifnum2>numlthen

begin

compnum:=numl;

numl:=num2;

num2:=compnum;

end;

ifnum3>numlthen

begin

compnum:=numl;

numl:=num3;

num3:=compnum;

end;

ifnum3>num2then

begin

compnum:=num2;

num2:=num3;

num3:=compnum;

end;

outStr:=FloatToStr(numl)+'/+FloatToStr(num2)++FloatToStr(num3);

forml.resultLabel.Caption:=outStr;

end;

end;

procedureTForml.numlEditChange(Sender:TObject);

begin

forml.CompareNumber;

end;

procedureTForml.num2EditChange(Sender:TObject);

begin

forml.CompareNumber;

end;

procedureTForml.num3EditChange(Sender:TObject);

begin

forml.CompareNumber;

end;

end.

5.13假设工资的增幅标准为:若基本工资大于等于1000元,增加工资20%;若小于1000

元大于等于800元,则增加工资15%;若小于800元,则增加工资10%。请根据用户在文本

框中输入的基本工资,计算出增加后的工资。

Label2:TLabel;

resultLabel:TLabel;

procedureEditlChange(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

salary:Real;

outSalary:Real;

implementation

{$R*.dfm}

procedureTForml.EditlChange(Sender:TObject);

begin

salary:=StrToFloat(forml.Editl.Text);

if(salary>=1000)then

outSalary:=salary*(1+0.2)

elseif(salary<1000)And(salary>=800)then

outSalary:=salary*(1+0.15)

elseif(salary<800)then

outSalary:=salary*(1+0.1);

forml.resultLabel.Caption:=FloatToStr(outSalary);

end;

end.

第六章

6.5设s=lX2X3X…Xn,求s不大于20000时最大的n。

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

Labell:TLabel;

Editl:TEdit;

Label2:TLabel;

resultLabel:TLabel;

procedureFormCreate(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

number;n,tot:Integer;

implementation

{$R*.dfm}

procedureTForml.FormCreate(Sender:TObject);

begin

tot:=1;n:=0;

number:=StrTolnt(forml.Editl.Text);

Whiletot<=numberdo

begin

n:=n+1;

tot:=tot*n;

end;

forml.resultLabel.Caption:=IntToStr(n-l);

end;

end.

6.10在标签上输出100~200之间的所有的奇数,其中3的倍数除外。

答:设计界面:

运行界面:

3r先出令我

101103107109113115119121125127131133137139143451491511551571611631G71691731751791811851871sl133197199

代码:

unitUnitl;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

resultLabel:TLabel;

procedureFormCreate(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

number;i:Integer;

outStr:String;

implementation

{$R*.dfm}

procedureTForml.FormCreate(Sender:TObject);

begin

fori:=100to200do

begin

ifimod2<>0then

ifimod3<>0then

outStr:=outStr+''+IntToStr(i);

forml.resultLabel.Caption:=outStr;

end;

end;

end.

第七章

7.4求l~200这200个数的和,当和大于10000时结束计算。(要求使用转向语句)

答:设计界面:

运行界面:

》计算1-200W和[p1回

总和为10011

代码:

unitUnitl;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

Labell:TLabel;

procedureFormCreate(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

sum,n:integer;

implementation

{$R*.dfm}

procedureTForml.FormCreate(Sender:TObject);

begin

sum:=0;

n:=0;

repeat

n:=n+1;

sum:=sum+n;

if(sum>10000)thenbreak;

untiln>=200;

forml.Labell.Caption:='总和为,+IntToStr(sum);

end;

end.

第八章

8.8编写函数,输出100~500之间所有能同时被3和13整除的数。

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForml=class(TForm)

Labell:TLabel;

procedureFormCreate(Sender:TObject);

private

{Privatedeclarations}

FunctioncheckNum(num:integer):boolean;

public

{Publicdeclarations}

end;

var

Forml:TForml;

implementation

{$R*.dfm}

FunctionTForml.checkNum(num:integer):boolean;

varn:boolean;

begin

if(nummod3=0)And(nummod13=0)then

n:=true

else

n:=false;

result:=n;

end;

procedureTForml.FormCreate(Sender:TObject);

vari:integer;

varout:string;

begin

fori:=100to500do

begin

ifcheckNum(i)then

out:=out+''+IntToStr(i);

end;

forml.Labell.Caption:=out;

end;

end.

第九章

9.2打开对话框组件和打开图片对话框组件有什么异同点?

答:两者都会打开一个对话框用于选择电脑本地上的文件

不同的是前者可以选择全部类型的文件,而后者只可以选择图片类型的文件,并且可以

预览图片

第十章

10.7菜单命令项与工具栏按钮的单击事件中的代码是否可以关联?如何关联?

答:将工具栏按钮ToolButton的Style属性设置为tbsDropDown然后在Menuitem属性中选

择对应的菜单项即可

第十一章

11.4调用子窗体的close方法时是否可关闭该子窗体?若不能,需要怎么做?

答:调用close方法只能最小化窗口,如果要真正关闭,需要调用free方法

第十二章

12.3使用红色的画笔在窗体中绘制一个半径为5的圆,并且用黄色来填充圆的内部。

procedureTForml.FormPaint(Sender:TObject);

varr,x,y:integer;

begin

r:=5;

Canvas.Pen.Color:=clred;

Canvas.Brush.Color:=clyellow;

Canvas.Ellipse(0,0,r*2zr*2);

end;

end.

第十三章

13.3打开一个文本文件有几种方法?区别是什么?

答:有3种打开文件的方法:

(1)Reset过程以只读方式打开一个文件。

(2)Rewrite过程创建并打开文件,对于一个己经存在的文件,此操作将使文件被覆盖。

(3)Append过程以追加方式打开文件,并向已经存在的文本文件中追加文本。

第十四章

14.4使用DatabaseDeskTop设计如表14一5所示的数据表,并创建简单的应用程序完成数

据的浏览和编辑功能。

表14—5数据表字段设置说明

字段名类型长度说明

Id字符型4产品编号

Name字符型20产品名称

Price数值型产品单价

Count短整型产品库存量

答:设计界面:

StrurtureInformationParadox7Table:Product.db

FieHrosterTableccopetlies

FieldNameTypeSizeKey|VMyChecks

1IdI4

2Name20

3Pricer1Re^edField

4Count

r

3Maximunvalue.

1

i

5Pcluje:

Savs乩.|Qone|Help

(数据库设计)

(界面设计)

运行界面:

14.6使用数据库软件(如SqlServer2000)创建如表14-6所示的数据表,并开发一个学生

档案管理系统,完成学生基本信息的添加、删除、修改等。同时,可以按照学生的学号、姓

名等进行数据的查询。最后,将学生的基本信息以报表的方式输出。

表14-6数据表字段设置说明

字段名类型长度说明

Id字符型8学号

Name字符型8姓名

Sex字:符型2性别

Birthday日期型4出生日期

Address字符型50家庭住址

答:⑴使用的数据库软件为SqlServer2008,依据题目设计的数据表结构为

列名蚁据类型允许Nul值

IdncharjB)B

Namenchar©)B

Sexnchar⑵回

>Birthdaydate□

Addressnchar(50)回

表名为Students

(2)本系统包含5个Form,分别为FormMain主界面,FormTable信息录入查询界面,FormReport

学生信息报表界面,FormHelp系统帮助界面,FormAbout系统关于界面

(3)各Form详细内容:

A:FormMain

设计界面:

欢迎使用学生档案管理系统

Ver1.0.0

副作:翁惠桃

二MainFocm

□Labell

□Label2

□Label3_

B3IM,ainMenul

E档案管理模块{N1}

吗信息录入/查询{N2}

>H信息报表{N4}

退出{N5}

日投■科助{N6}

A*.使用说明{N7)

应关于{N8}

运行界面:

procedurecloseApp;

public

{Publicdeclarations}

end;

var

MainForm:TMainForm;

implementation

{$R*.dfm}

procedureTMainForm.N8Click(Sender:TObject);

begin

formAbout.Show;

end;

procedureTMainForm.N5Click(Sender:TObject);

begin

closeApp;

end;

procedureTMainForm.N2Click(Sender:TObject);

varchild:TFormTable;

begin

child:=TFormTable.Create(Application);

child.Show;

end;

procedureTMainForm.closeApp;

begin

ifmessagedig('您确定要退出本系统了吗?,,mtconfirmation,[mbyes,mbnoLO)=mryes

then

Application.Terminate

end;

procedureTMainForm.FormCloseQuery(Sender:TObject;varCanClose:Boolean);

begin

ifmessagedig('您确定要退出本系统了吗?',mtconfirmation」mbyes,mbnoLO)=mryes

then

CanClose:=true

else

CanClose:=false;

end;

procedureTMainForm.N4Click(Sender:TObject);

varchild:TFormReport;

begin

child:=TFormReport.Create(Application);

child.Show;

end;

procedureTMainForm.N7Click(Sender:TObject);

begin

formHelp.Show;

end;

end.

B:FormTable

设计界面:

运行界面:

望学生信息首理系婉

>««JLM®BS'^S叵

♦|,|X|Q|⑶当前模式:查询模式

字号:।姓名:।性刖:网—3

出生曰期:12016/4/43

家庭住址:|

学学生信息告理系统一

石8售建模块(Y)幅助(Z)

程案苦理模块(Y)制助(Z)

代码:

unitUnitl;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,Grids,DBGrids,DBZADODB,ComCtrls,StdCtrls,ToolWin,ImgList;

type

TFormTable=class(TForm)

ADOConnectionl:TADOConnection;

DataSourcel:TDataSource;

DBGridl:TDBGrid;

ToolBarl:TToolBar;

TBAdd:TToolButton;

Editname:TEdit;

Labell:TLabel;

Label2:TLabel;

Label3:TLabel;

Editaddress:TEdit;

Label4:TLabel;

Editid:TEdit;

Labels:TLabel;

Label6:TLabel;

ComboBoxsex:TComboBox;

DateBirthday:TDateTimePicker;

TBUpdate:TToolButton;

TBDelete:TToolButton;

TBSelect:TToolButton;

TBCommit:TToolButton;

LabelMode:TLabel;

ToolButton6:TToolButton;

Labels:TLabel;

ADOQueryl:TADOQuery;

DataSource2:TDataSource;

ADOTablel:TADOTable;

ImageListl:TlmageList;

procedureTBAddClick(Sender:TObject);

procedureTBUpdateClick(Sender:TObject);

procedureTBDeleteClick(Sender:TObject);

procedureTBSelectClick(Sender:TObject);

procedureFormPaint(Sender:TObject);

procedureTBCommitClick(Sender:TObject);

procedureDBGridlDblClick(Sender:TObject);

private

public

{Publicdeclarations}

end;

var

FormTable:TFormTable;

TBStatus:integer;〃模式类型,0-查询,1■新增,2-修改,3删除

SelMode:integer;〃第一次按查询按钮进入查询模式再按一次执行查询-2,其他情

况下为-0

implementation

{$R*.dfm}

procedureTFormTable.TBAddClick(Sender:TObject);

varmaxid:integer;

vardate:string;

begin

TBStatus:=1;

Editid.Enabled:=false;

Editname.Enabled:=true;

Comboboxsex.Enabled:=true;

DateBirthday.Enabled:=true;

Editaddress.Enabled:=true;

Editid.Text:=

Editname.Text:=

SelMode:=0;

LabelMode.Caption:='新增模式';

DBGridl.DataSource:=DataSourcel;

date:=FormatDateTimeCyymm',now);

WithFormTable.ADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

ADOQueryl.SQL.Add('selectmax(substring(ld,6,3))maxidfromStudentswhere

substring(ld/2,4)='+date);

ADOQueryl.Open;

if(ADOQueryl.RecordCount=0)then

Editid.Text:='S'+date+'001'

else

begin

if(ADOQueryl.FieldByName('maxid').Text=")or

(ADOQueryl.FieldByNameCmaxid'J.Text='NULL')then

Editid.Text:='S'+date+'001'

else

begin

maxid:=StrTolntfADOQueryl.FieldByNameCmaxidyText);

maxid:=maxid+1;

Editid.Text:='S'+date+StringOfCharCO',3-length(lntToStr(maxid)))+

IntlbStr(maxid);

end;

end;

end;

end;

procedureTFormTable.TBUpdateClick(Sender:TObject);

begin

TBStatus:=2;

Editid.Enabled:=false;

Editname.Enabled:=true;

Comboboxsex.Enabled:=true;

DateBirthday.Enabled:=true;

Editaddress.Enabled:=true;

Editid.Text:=

Editname.Text:=

SelMode:=0;

LabelMode.Caption:='修改模式';

DBGridl.DataSource:=DataSourcel;

end;

procedureTFormTable.TBDeleteClick(Sender:TObject);

begin

TBStatus:=3;

Editid.Enabled:=false;

Editname.Enabled:=false;

Comboboxsex.Enabled:=false;

DateBirthday.Enabled:=false;

Editaddress.Enabled:=false;

Editid.Text:=

Editname.Text:=

SelMode:=0;

LabelMode.Caption:='删除模式';

DBGridl.DataSource:=DataSourcel;

end;

procedureTFormTable.TBSelectClick(Sender:TObject);

varid,ename,address:string;

begin

ifSelMode=0then

begin

TBStatus:=0;

Editid.Enabled:=true;

Editname.Enabled:=true;

Comboboxsex.Enabled:=true;

DateBirthday.Enabled:=true;

Editaddress.Enabled:=true;

Editid.Text:=

Editname.Text:=

SelMode:=1;

LabelMode.Caption:='查询模式';

DBGridl.DataSource:=DataSource2;

end

elseifSelMode=1then

begin

ifEditid.Text="then

id:='null'

else

id:=""+Editid.Text+"";

ifEditname.Text="then

ename:='null'

else

ename:=,",+Editname.Text+,n,;

ifEditaddress.Text=Hthen

address:='null'

else

address:=""+Editaddress.Text+"";

withADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

ADOQueryl.SQL.Add('selectId,Name,Sex,Birthday,AddressfromStudents'+

,,

'whereId=isnull(+id+'zld)+

,

'andName=isnull(+ename+'zName)'+

'andSex=,+",,+Comboboxsex.Text+""+

'andBirthday=,+H,,+DateToStr(DateBirthday.Date)+""+

1andAddress=isnullC+address+\Address)');

ADOQueryl.Open;

end;

end;

end;

procedureTFormTable.FormPaint(Sender:TObject);

begin

〃默认为查询模式,此模式下学号可以输入,其他模式下不可以输入

TBStatus:=0;

Editid.Enabled:=true;

Editid.Text:=

SelMode:=1;

DBGridl.DataSource:=DataSource2;

end;

procedureTFormTable.TBCommitClick(Sender:TObject);

begin

〃新增,修改,删除操作后,执行保存动作

ifTBStatus=1then

begin

ifmessagedig('您确定要新增止匕笔资米*吗?',mtconfirmation,[mbyes,mbno],0)=mryes

then

begin

ifEditname.Text="then

begin

ShowMessage('姓名必须输入!,);

exit;

end;

WithADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

ADOQueryl.SQL.Add('insertintoStudents(Id,Name,Sex,Birthday,

Address)'+

।Values

(,+,,''+EditidText+'',,+';+',n+Editname.Text+n',+,,,+

,,>++()

"+ComboBoxsex.Text+"+'/'""DateToStrDateBirthday.Date+""+

,,,),)

*/'+"^+Editaddress.Text+"+';

try

ADOQueryl.ExecSQL;

ifADOQueryl.RowsAffected>0then

begin

ADOTablel.Close;

ADOTablel.Open;

ShowMessage('提交成功');

end

else

ShowMessage('提交出现异常’);

except

ShowMessage('提交出现异常');

end;

end;

end;

end

elseifTBStatus=2then

begin

ifmessagedlgC您确定要修改此笔资料吗?:mtconfirmation」mbyes,mbno],0)=mryes

then

begin

ifEditname.Text="then

begin

ShowMessage('姓名必须输入!');

exit;

end;

withADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

ADOQueryl.SQLAdd('updateStudentssetName=,+""+Editname.Text+""+

7+

'Sex=

'+'>"+Comboboxsex.Text+""+7+

'Birthday=

'+,,"+DateToStr(DateBirthday.Date)+""+';+

'Address=,+""+Editaddress.Text+""+

'whereId='+""+Editid.Text+"");

try

ADOQueryl.ExecSQL;

ifADOQueryl.RowsAffected>0then

begin

ADOTablel.Close;

ADOTablel.Open;

ShowMessage('修改成功');

end

else

ShowMessage('提交出现异常);

except

ShowMessage('提交出现异常力

end;

end;

end;

end

elseifTBStatus=3then

begin

ifmessagedig('您确定要删除此笔资料吗?',mtconfirmation」mbyes,mbnoLO)=mryes

then

begin

withADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

ADOQueryl.SQL.Add('deletefromStudentswhereId='+""+Editid.Text+"");

try

ADOQueryl.ExecSQL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论