2023年台州电大陈元的数据库应用程序设计离线作业_第1页
2023年台州电大陈元的数据库应用程序设计离线作业_第2页
2023年台州电大陈元的数据库应用程序设计离线作业_第3页
2023年台州电大陈元的数据库应用程序设计离线作业_第4页
2023年台州电大陈元的数据库应用程序设计离线作业_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

浙江大学远程教育学院

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

姓名:陈元学号:7

年级:2023年秋学习中心:台州电大

作业

第一章

1.5怎样保留Delphi的项目?尝试自己动手创立一种项目,并保留。

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

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

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

►计算机〉本地送笆(D:)►ProgramFiles(x86)►Borland»Delphi?»Projects»test

文件⑥毫辑㈤壹看M工具①羯助(H)

iH织▼包含更阵中▼共摹▼新建文件交

☆名称▼修改日期大小

j.2345下载□Projectl.cfg2016/11/2621:18CFG文件1KB

下我LJProjectl.dof2016/11/2621:18DOF文件2KB

,更面,Projectl.dpr2016/11/2621:18DelphiProject1KB

最近访问的位置DProjectl.res2016/11/2621:17RESFile1KB

»Unitl.dfm2016/11/2621:18DelphiForm1KB

乖Unitl.pas2016/11/2621:18DelphiSourceFile1KB

N序

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

图1-10

答:设计界面:

运行界面:

第二章

2.8设计如图2-5所示口勺界面。单击“按钮r或“按钮2”时在标签上显示顾客所执行的

操作。单击“启动/停用按钮”可控制“按钮r和“按钮2”与否可用,单击“退出系统”

按钮时,结束程序日勺运行。

答:设计界面:

运行界面:

unitUnitl;

interface

uses

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

Dialogs,StdCtrls;

type

TForml=class(TForm)

Buttonl:TButton;

Button2:TButton;

ctIButton:TButton;

exitButton:TButton;

showLabel:TLabel;

procedureButtonlClick(Sender:TObject);〃按钮1

procedureButton2Click(Sender:TObject);〃按钮2

procedurectlButtonClick(Sender:TObject);〃启动停用按钮

procedureexitButtonClick(Sender:TObject);〃退出按钮

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

ctlStatus:integer=O;〃控制按钮1和2日勺启动和关闭,0表达目前为启动,1表达关闭

implementation

{$R

procedureTForml.ButtonlClick(Sender:TObject);

begin

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

end;

procedureTForml.Button2Click(Sender:TObject);

begin

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

end;

procedureTForml.exitButtonClick(Sender:TObject);

begin

forml.Close;

end;

procedureTForml.ctlButtonClick(Sender:TObject);

begin

ifctlStatus=0then

begin

forml.Buttonl.Enabled:=false;

forml.Button2.Enabled:=false;

ctlStatus:=1;

end

else

begin

forml.Buttonl.Enabled:=true;

forml.Button2.Enabled:=true;

ctlStatus:=0;

end;

end;

end.

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

图2—5图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);

procedurebtnGreenCIck(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.btnBlueClickfSender: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

(A)3.12数学式子sin30。写成Delphi体现式是下列哪个?

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

答:D,使用正切函数时需要把角度转化为弧度表达。

第四章

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

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

uses

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

Dialogs,StdCtrls,Spin;

type

TForml=class(TForm)

Labell:TLabel;

Label2:TLabel;

Label3:TLabel;

SpinEditl:TSpinEdit;

SpinEdit2:TSpinEdit;

SpinEdit3:TSpinEdit;

Label4:TLabel;

procedureSpinEditlChange(Sender:TObject);

procedureSpinEdit2Change(Sender:TObject);

procedureSpinEdit3Change(Sender:TObject);

private

{Privatedeclarations}

procedureCalculateTimeToSencond(timeKind:String;time:integer);

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.CalculateTimeToSencondChh',StrTolnt(Forml.SpinEditl.Text));

end;

procedureTForml.SpinEdit2Change(Sender:TObject);

begin

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

end;

procedureTForml.SpinEdit3Change(Sender:TObject);

begin

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

end;

end.

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

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

uses

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

Dialogs,StdCtrls;

type

TForml=class(TForm)

Editl:TEdit;

Labell:TLabel;

Memol:TMemo;

Label2:TLabel;

procedureEditlChange(Sender:TObject);

procedureFormCreate(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

numl:Real;〃原实数

num2:Real;〃实数平方

num3:Real;〃实数平方根

implementation

{$R

procedureTForml.EditlChangefSender:TObject);

begin

ifforml.Editl.Text<>"then

begin

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

num2:=Sqr(ni.ml);

num3:=Sqrt(numl);

forml.Memol.Lines.Clear;

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

forml.Memol.Lines.Add('平方)y:'+FloatToStr(num2));

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

end;

end;

End.

第五章

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

答:设计界面:

代码:unitUnitl;

interface

uses

Windows,Messages,SysUtils,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);

procedurenum2CditChange(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.numlEditChangefSender: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%“请根据

顾客在文本框中输入的基本工资,计算出增长后的工资。

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

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

Dialogs,StdCtrls;

type

TForml=class(TForm)

Labell:TLabel;

Editl:TEdit;

Label?: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,求5不不小于20230时最大的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<=numberde

begin

n:=n+1;

tot:=tot*n;

end;

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

end;

end.

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

答:设计界面:

/运行界面:

岁域出100~200之间的奇数

.31133137139143145149151155157161163167169173175179181185187191193197199

III

代码:

unitUnitl;

interface

uses

Windows,Messages,Syslltils,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求广200这200个数附和,当和不小于10000时结束计算。(规定使用转向语句)

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

uses

Windows,Messages,Syslltils,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

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.Label1.Caption:=out;

end;

end.

第九章

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

答:两者都会打开一种对话框用于选择电脑当地上的文献;

不一样H勺是前者可以选择所有类型的文献,而后者只可以选择图片类型的文献,并且可

以预览图片。

第十章

10.7菜单命令项与工具栏按钮的单击事件中II勺代码与否可以关联?怎样关联?

答:可以关联,将工具栏按钮ToolButton淤JStyle属性设置为tbsDropDown,然后在Menuitem

属性中选择对应的菜单项即可。

第十一章

11.4调用子窗体的)close措施时与否可关闭该子窗体?若不能,需要怎么做?

答:调用close措施只能最小化窗口,假如要真正关闭,需要调用free措施,早子窗体的

OnClose事件中使用代码Action:=CaFree;把Action动作参数设定为CaFree。

第十二章

使用红色日勺画笔在窗体中绘制一种半径为5的圆,并且用黄色来填充圆的)内部.

答:设计界面:

运行界面:

代码:

unitUnitl;

interface

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

Dialogs;

type

TForml=class(TForm)

procedureFormPaint(Sender:TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Forml:TForml;

implementation

{$R*.dfm}

procedureTForml.FormPaint(Sender:TObject);

varr,x,y:integer;

begin

r:=5;

x:=80;

y:=50;

Canvas.Pen.Color:=clred;

Canvas.Pen.Width:=1;

Canvas.Brush.Color:=clyellow;

Canvas.Ellipse(x,y,x+r*2_,y+r*2);

end;

end.

第十三章

(1)133打开一种文本文献有几种措施?区别是什么?

(2)答:有3种打开文献的措施:

(3)对于文本文献,Reset过程以只读方式打开一种文献,并将文献日勺指针移动到文献开

头。时于类型文献和无类型文献,Reset过程以可读写方式打开文献。

Rewrite过程以写口勺方式创立并打开一种新文献,若该文献已经存在,此操作将使文献被覆

盖。对于一种已打开的文献,则先关闭文献,并重新创立一种新文献覆盖原有文献,文献指

针设置到开头处。

Append过程打开•种已存在日勺文本文献,并以追加的J方式在文献末尾添加文本。

第十四章

14.4使用DatabaseDeskTop设计如表14—5所示F、J数据表,并创立简朴日勺应用程序完毕数据

的浏览和编辑功能。

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

字段名类型长度阐明

Id字符型4产品编号

Name字符型20产品名称

Price数值型产品单价

Count短整型产品库存量

答:设计界面:

金DatabaseDesktop

FileEditViewTableRecordToolsWindowHelp

冕隹圃圜

Record6of6

(数据库设计)

运行界面:

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

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

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

表14—6数据表字段设置阐明

字段名类型长度阐明

Id字符型8学号

Name字符型8姓名

Sex字符型2性别

Birthday日期型4出生日期

Address字符型50家庭住址

答:⑴使用的数据库软件为SqlServer2023R2,根据题目设计口勺数据表构造为

WIN-NRSLQON20B9...er-dbo.Students

列名数据类型允许Null值

Idndiar(8)□

Namenchar(8)B

Sexnchar⑵□

ftrthdaydate

>Addressjnchar(50)团

表名为Students

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

面,FormReport学生信息报表界面,FormHelp系统协助界nH,FormAbout系统有关界面

(3)各Form详细内容:

A:FormMain

设计界面:

对象使状查看器询

也白♦,

□MainForm

Labell

Label2

Label3

□MainMenul

S晦档案管理版块(KU

线信息录入与查询N2}

S信息报表网

退出系统{H5}

白琢群助{N6}

的使用说明m

-4关于网

运行界面:

代码;

unitUnit2;

interface

uses

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

Dialogs,Menus,StdCtrls,Unit3,Unitl,Unit4zUnits;

type

TMainForm=class(TForm)

MainMenul:TMainMenu;

Nl:TMenultem;

N2:TMenultem;

N4:TMenultem;

N5:TMenultem;

N6:TMenultem;

N7:TMenultem;

N8:TMenultem;

Labell:TLabel;

Labcl2:TLabcl;

Label3:TLabel;

procedureN8Click(Sender:TObject);

procedureN5Click(Sender:TObject);

procedureN2Click(Sender:TObject);

procedureFormCloseQuery(Sender:TObject;varCanClose:Boolean);

procedureN4Click(Sender:TObject);

procedureN7Click(Sender:TObject);

private

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,mbno]Q)=mryesthen

Application.Terminate

end;

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

begin

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

then

CanClose:=true

else

CanClose:=false;

end;

procedureTMainForm.N4Click(Sender:TObject);

varchild:TFormReport;

begin

child:=TFormReportCreate(Application);

child.Show;

end;

procedureTMainForm.N7Click(Sender:TObject);

begin

formHelp.Show;

end;

end.

B:FormTable

设计界面:

运行界面:

桎案告理模块(Y)帮助(Z)

岁学生信息首理系统

植案管遑模块(Y)帮助(Z)

档案管理模块①帮助但)

里学生信息售理系统

模块市帮助⑷

代码:

unitUnitl;

interface

uses

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

Dialogs,Grids,DBGrids,DB,ADODB,ComCtrls,StdCtrls,ToolWin,ImgList;

type

TFormTable=class(TForm)

ADOConnectionl:TADOConnection;

DataSourcel:TDataSojrce;

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;

Label8:TLabel;

ADOQueryl:TADOQuery;

DataSource2:TDataSojrce;

ADOTablel:TADOTable;

ImageListl:TlmageList;

procedureTBAddClicklSender:TObject);

procedureTBUpdateClick(Sender:TObject);

procedureTBDeleteClickfSender:TObject);

procedureTBSelectClick(Sender:TObject);

procedureFormPaint(Sender:TObject);

procedureTBCommitClick(Sender:TObject);

procedureDBGridlDblClick(Sender:TObject);

private

public

{Publicdeclarations)

end;

var

FormTable:TFormTable;

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

SelMode:integer;〃第一次按查询按钮进入查询模式--1,再按•次执行查询-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:=FormatDateTimeCvyrnm',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.FieldByNameCmaxid'J.Text=")or

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

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

else

begin

maxid:=StrlblntfADOQueryl.FieldByName('maxid').Text);

maxid:=maxid+1;

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

IntToStr(maxid);

end;

end;

end;

end;

procedureTFormTable.TBUodateClick(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=1ther

begin

ifEditid.Text="then

id:='null'

else

id:="n+Editid.Text4-"";

ifEditname.Text="then

ename:='null'

else

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

ifEditaddress.Text="then

address:='null'

else

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

withADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

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

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

1andName=isnull('+ename+',Name)'+

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

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

'andAddress=isnull('+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;

WithADOQLeryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

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

Address)'+

Values

('+""+Editid.Text+""+,,,+""+Editname.Text+""+,;+

,"+ComboBoxsex.Text+""+,;+""+DateToStr(DateBirthday.Date)+,",+

;+",,+Editaddress.Text+,,,,+,),);

try

ADOCZueryl.txecSQL;

ifADOQueryl.RowsAffected>0then

begin

ADOTablel.Close;

ADOTablel.Open;

ShowMessage('提交成功');

end

else

ShowMessage('提交出现异竹);

except

ShowMessage('提交出现异常

end;

end;

end;

end

elseifTBStatus=2then

begin

ifmessagedlg('您确定要修改此笔资料吗T,mtconfirmation,[mbyes,mbno],0)=mryes

then

begin

ifEditname.Text="then

begin

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

exit;

end;

withADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

ADOQueryl.SQLAddCupdateStudentssetName=+Editname.Text+""+,'+

,+""+Comboboxsex.Text+,",+7+

Birthda/

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

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

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

try

ADOQueryl.ExecSQL;

ifAD0Query1.RowsAffected>0then

begin

ADOTablel.Close;

ADOTablel.Open;

ShowMessage('修改成功

end

else

ShowMessagef提交出现异常,);

except

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

end;

end;

end;

end

elseifTBStatus=3then

begin

ifmessagedig(,您确定要删除此笔资料吗?,mtconfirmation,[mbyes,mbno],0)=mryes

then

begin

withADOQueryldo

begin

ADOQueryl.Close;

ADOQueryl.SQL.CIear;

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

try

ADOQueryL.ExecSQL;

ifADOQueryl.RowsAffected>0then

begin

ADOTablel.Close;

ADOTablel.Open;

ShowMessage('删除成功

end

else

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

except

ShowMessage^提交出现异常,);

end;

end;

end;

end;

end;

procedureTFormTabl

温馨提示

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

评论

0/150

提交评论