




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Query组件的属性Query组件的方法SQL语言基础Query组件利用SQL语言的增、删、改、查操作综合实例:学生信息管理程序
SQL数据库程序设计12.1Query组件的属性和方法
SQL语言,又称为结构化查询语言,它在数据库程序设计中是十分重要的。任何一门支持数据库程序设计的语言必定提供对SQL语言的支持,Delphi7.0也不例外。在Delphi7.0中提供了很多支持SQL语言操作的组件,Query组件就是其中之一。Query组件是BDE数据集组件之一,在Delphi7.0组件选择板上BDE选项卡上,与Table组件具有很多共同的特性。第11章已经对Table组件的使用较详细地进行了介绍。Query组件在SQL编程中占据十分重要的地位,实现了Delphi7.0对SQL语言的支持。在Delphi7.0开发的数据库应用中,SQL语句是通过Query部件传递到要访问的数据库系统的数据库引擎中,由数据库引擎具体执行SQL语句,以实现对数据的操作。而不是传递给Delphi7.0中的BDE,由BDE实施具体的SQL动作。本章内容重点讲解如何用Query组件来进行SQL语言的操作。12.1.1Query组件的常用属性(1)1.DataBaseName属性跟Table组件一样,Query组件也是通过DataBaseName属性来链接数据库的。可以是某个数据库别名也可以是某个数据表的路径。详细方法可以参照Table组件的用法。2.SQL属性
Query组件是通过SQL属性对数据集进行操作,而不是通过指定一个TableName属性的值直接指向一个表。SQL是一个字符串对象,可以给该属性设置SQL语句,从而让Query组件使用SQL语句操纵数据库。例如,在SQL属性中输入了合法的Select查询语句,然后可以将Query组件的Active属性设置为True或者调用Open方法就可以打开数据集。SQL属性还提供了设置SQL语句的各种方法,如Add、Clear等方法分别用来添加和清除SQL语句,在程序中运用十分广泛。3.Filter属性该属性是用来过滤记录的,就是按照某个字段的具体值进行过滤记录。它有点类似于查询,也称为筛选记录。具体格式如下:Query1.Filter:='字段名=字段值'或者可以直接在对象浏览器中找到Filter属性,并输入“性别='男'”,注意不12.1.1Query组件的常用属性(2)带双引号,但过滤字段值“男”字必须用单引号括起来。但在代码中,要用两个连续的单引号表示一个单引号。另外,要让Filter属性设置的过滤条件有效,则必须设置另外一个属性Filtered。只有当Filtered属性值为True时,Filter属性设置才有效。其实,在Table组件中也包含了Filter和Filtered属性。所以,Table组件和Query组件的很多属性都是相同的,而且用法也一样,如Active、Fields等,可以参考Table组件中的相关用法。12.1.2Query组件的常用方法1.Open方法用于打开或激活Query数据集。一般只执行Select查询语句。2.ExecSQL方法执行Query组件中的SQL语句,不仅可以执行Select查询语句,而且可以执行其他的SQL命令,如Insert、Update、Delete等SQL命令。关于Open方法和ExecSQL方法的区别本书将在后面的章节里进一步地加以讨论。3.Close方法关闭数据集。12.1.1Query组件的常用属性(3)4.SQL属性的两个基本方法(1)Add方法给Query组件的SQL属性添加SQL命令语句,以供Query组件执行。Add是SQL属性中的一个方法。如下列语句:Query1.SQL.Add(‘select*fromstudent’);Query1.SQL.Add(‘orderby学号’);//在前一句SQL语句的基础上追加SQL语句这里也可以把以上两句语句合成一句,如下所示。这两种方法是等效的。Query1.SQL.Add(‘select*fromstudentorderby学号’);(2)Clear方法Clear方法是清除Query组件的SQL属性值。它也是SQL属性中的一个方法。一般在用Add方法添加SQL语句前,先要用Clear方法将SQL属性清空,然后再添加全新的SQL语句。12.1.1Query组件的常用属性(4)【例12-1】使用Query组件显示student.db中全部记录内容。设计窗体如图12-1所示,程序运行效果如图12-2所示。图12-1窗体设计界面
图12-2程序运行界面
这个例子要求用Query组件结合SQL语句显示student.db中全部记录内容,并显示在DBGrid组件中。具体实现步骤如下。
在应用窗体中放置一个Query部件(Query1)、一个TDataSource部件(DataSource1)和一个TDataGrid部件(DBGrid1),并将它们链接起来;链接方法:将DataSource1组件的DataSet属性设置为Query1;将DBGrid1组件的DataSource属性设置为DataSource1。
设置窗体Query部件Query1的DatabaseName属性值为数据库别名stu_data
双击对象查看器ObjectInspector窗口中Query1的SQL属性,Delphi7.0将显示StringListEditor对话框。12.1.1Query组件的常用属性(5)【例12-1】使用Query组件显示student.db中全部记录内容。设计窗体如图12-1所示,程序运行效果如图12-2所示。图12-1窗体设计界面
图12-2程序运行界面
这个例子要求用Query组件结合SQL语句显示student.db中全部记录内容,并显示在DBGrid组件中。具体实现步骤如下。
在应用窗体中放置一个Query部件(Query1)、一个TDataSource部件(DataSource1)和一个TDataGrid部件(DBGrid1),并将它们链接起来;链接方法:将DataSource1组件的DataSet属性设置为Query1;将DBGrid1组件的DataSource属性设置为DataSource1。
设置窗体Query部件Query1的DatabaseName属性值为数据库别名stu_data
双击对象查看器ObjectInspector窗口中Query1的SQL属性,Delphi7.0将显示StringListEditor对话框。12.1.1Query组件的常用属性(6)
在图12-3中的StringListEditor对话框中输入SQL语句:Select*fromstudentorderby学号
单击OK按钮,关闭StringListEditor对话框。
设置Query的Open属性为True。图12-3StringListEditor对话框
这样,就可以将student.db数据表中全部记录内容显示在DataGrid1组件中。这是一种用SQL语句查询数据集中记录内容的方法,另外在Delphi7.0中用得最多的还是在程序代码中用相应的方法来实现SQL语句的查询。
利用代码执行SQL语句,在一般的数据库程序设计中用得很广泛,而且很灵活。但值得注意的是在添加SQL属性前首先要用Close方法关闭数据集;在应用程序中为SQL属性设置新的SQL命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,可调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,但在程序运行时常常会出现出乎意料的查询结果,甚至程序无法运行下去。12.2动态SQL语句的编程(1)Query组件提供了强大的SQL语言支持功能,这大大提高了数据库应用程序的执行效率。Query组件不仅可以执行静态的SQL语句,而且可以执行动态的SQL语句。静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。而动态SQL语句,被称为参数化的语句,其中包含着表示字段名或表名的参数。在实际程序设计中使用得更多的是动态SQL语句。在这一节将重点介绍如何给动态SQL语句的参数赋值,以及在应用程序中灵活地使用SQL语句。通常采用以下三种途径来为它赋值,这三种途径都是在程序代码中实现的。1.采用字符串连接符号“+”连接组成完整的SQL语句这里用到字符串连接符号“+”进行字符串的连接操作。具体表示方法如下:XM='赵凯'Query1.SQL.Add('select*fromstudentwhere姓名='''+XM+'''');注意,在Delphi7.0语言的字符串中,连续两个单引号表示一个单引号。上述SQL语句中由两个字符串连接符号“+”,三个字符串连接而成,组成了一句完整的查询语句。读者要读懂字符串连接的含义。12.2动态SQL语句的编程(2)Query组件提供了强大的SQL语言支持功能,这大大提高了数据库应用程序的执行效率。Query组件不仅可以执行静态的SQL语句,而且可以执行动态的SQL语句。静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。而动态SQL语句,被称为参数化的语句,其中包含着表示字段名或表名的参数。在实际程序设计中使用得更多的是动态SQL语句。在这一节将重点介绍如何给动态SQL语句的参数赋值,以及在应用程序中灵活地使用SQL语句。通常采用以下三种途径来为它赋值,这三种途径都是在程序代码中实现的。1.采用字符串连接符号“+”连接组成完整的SQL语句这里用到字符串连接符号“+”进行字符串的连接操作。具体表示方法如下:XM='赵凯'Query1.SQL.Add('select*fromstudentwhere姓名='''+XM+'''');注意,在Delphi7.0语言的字符串中,连续两个单引号表示一个单引号。上述SQL语句中由两个字符串连接符号“+”,三个字符串连接而成,组成了一句完整的查询语句。读者要读懂字符串连接的含义。12.2动态SQL语句的编程(3)2.使用Params属性为参数赋值
Query组件具有一个Params属性,它们在设计时不可用,在程序运行过程中可用,并且是动态建立的,当为Query组件编写动态SQL语句时,Delphi7.0会自动地建立一个数组Params,数组Params是以0下标开始的,依次对应动态SQL语句中的参数,也就是说动态SQL语句中第一个参数对应Params[0],第二个参数对应Params[1],依此类推。3.使用ParamByName方法为参数赋值
ParamByName是一个函数,用动态SQL语句中的参数作为调用ParamByName函数的参数,这样便可以为它们赋值。使用这种赋值方法,必须要知道动态SQL语句参数的名字。使用这种方法同样可以为各参数赋值,但在ParamByName方法中必须指明参数名。这样给参数赋值,更加直观一些。注意不要把Params属性和ParamByName方法的用法混淆,Params属性中指明的是参数出现的先后次序,从0开始排序,Params[0]表示第一个参数,Params[1]表示第二个参数,依次类推。而ParamByName方法要指定参数的名称,所以更加直观、易理解。12.3常用SQL语句简介SQL是结构化查询语言。SQL的大部分实现都与该语言的某个特定定义相关。例如,许多数据库的SQL服务器支持ANSI-92SQL定义。所使用的SQL语言的语法依赖于所用的特定数据库。结构化查询语言SQL是定义和维护关系数据库的专用语言,已经被众多的数据库管理系统所采用,如MSSQLSERVER、ORACLE、SYBASE、Informix等数据库管理系统。事实上,关于SQL语言有一个专门的ANSI标准,而很多数据库管理系统又有自己对标准SQL语言的扩充。Delphi7.0与使用SQL语言的数据库管理系统兼容,在使用Delphi7.0开发数据库应用程序时,可以使用SQL语言编程,开发出功能强大的客户/服务器程序。12.3.1SQL的优点SQL的用户包括应用程序员、DBA管理员和终端用户。SQL语言的优点很多,简述如下。(1)非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,可操作记录集,而不对单个记录进行操作。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。(2)统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。(3)SQL是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个DBMS转到另一个。所有用SQL编写的程序都是可以移植的,从而大大加强了数据库程序开发的灵活性。程序开发人员可以用多种语言编写数据库应用程序,但对数据库维护的SQL语句的使用是一致的。12.3.2SQL语言的基本操作(1)SQL语言的作用很广,它最大、最突出的功能就是查询,也是它用得最广的功能。除了查询以外还可以实现记录的插入、修改和删除以及数据表的建立、修改、删除等操作。1.Select语句
Select语句用于以行为单位从一个或多个表获取数据。现在,把注意力集中到单表的Select语句上。Select语句的关键字如表12-2所示。基本的Select语句的规范形式如下:Select字段列表From表名Where查询条件Groupby分组字段Having分组条件Ooderby字段名[ASC|DESC]
一般在程序中应用SQL语句前,经常要先调试SQL语句是否书写正确。在Delphi7.0中为了调试SQL语句,提供了数据库浏览器工具——SQLExplorer。数据库浏览器——SQLExplorer可以通过Delphi7.0主菜单中的【Database】菜单下的【Explorer】菜单项进入,如图12-5所示。图12-5SQLExplorer操作窗体12.3.2SQL语言的基本操作(2)
在SQLExplorer操作窗口的左窗口中选择数据库别名,如stu_data,可以查看该别名下的数据表中详细内容,包括数据表的定义信息、记录内容和字段等详细信息。要调试SQL语句,可以在右边窗口中选择EnterSQL选项,并在文本框中输入SQL语句。例如在上图中输入select*fromSTUDENT,然后单击右边的执行SQL按钮,如果SQL语句书写正确就会在下面网格中显示具体的查询结果。【例12-4】组合查询记录所谓组合查询就是在查询时查询条件有多个。在where子句后面各个条件之间用逻辑运算符and或者or进行连接,例如要查询姓“李”的“男”学生的记录,则SQL查询语句应该这样写:
Select*fromstudentwhere姓名like'李%'and性别='男'
此例在【例12-2】的基础上,增加用姓名和性别两个字段的组合查询,并要求对姓名可以实现模糊匹配查询。在原来的基础上添加1个标签框Label2和1个组合框ComboBox1,在组合框ComboBox1中添加“所有”、“男”、“女”3个选项,并修改Button1的Click事件代码如下:12.3.2SQL语言的基本操作(3)procedureTForm1.Button1Click(Sender:TObject);VarStrSql:String;//存放SQL语句的变量beginStrSql:='select*fromstudentWhere1=1';{这个语句是给StrSql变量赋初值,“1=1”这个条件始终为真,并没有多大意义,只是为了下面的SQL语句的连接时方便一些。}IfTrim(Edit1.Text)<>''ThenStrSql:=StrSql+'And姓名Like''%'+Trim(Edit1.Text)+'%''';//注意字符串的连接方法,两个连续的单引号表示一个单引号IfTrim(Combobox1.Text)<>'所有'Then StrSql:=StrSql+'And性别='''+Trim(Combobox1.Text)+'''';Query1.Close;Query1.SQL.Clear;Query1.SQL.Add(StrSql);//将StrSql变量值加到Query1组件的Sql属性中Query1.Prepare;Query1.Open;ifQuery1.Eofthenbegin12.3.2SQL语言的基本操作(4)
showmessage('没有找到相关记录!');Edit1.Clear;Combobox1.text:='所有';Query1.Close;Query1.SQL.Clear;Query1.SQL.Add('select*fromstudent');Query1.Open;endend;【例12-5】用SQL语句从Student.db和Score.db两张数据表中查询记录内容。跟前面几个例子一样,在窗体上放置1个Query组件、1个DataSource组件、1个DBGrid组件和1个DBNavigator组件。如图12-6所示。将Datasouce组件的DataSet属性设置为Query1,并分别将DBGrid组件和DBNavigator组件的DataSource属性都设置为DataSource1。本例要求从Student.db中选择学生的学号和姓名两个字段的数据,从学生成绩表Score.db中选择与该学生相关的课程和成绩两个字段的内容,构成一个新的记录集,可在窗体的OnActivate事件中使用SQL语句,通过“wherestudent.学号=Score.学号”短语将两个表连接起来。SQL语句表示如下:图12-6多表查询运行界面12.3.2SQL语言的基本操作(6)具体程序代码如下:procedureTForm1.FormActivate(Sender:TObject);beginQuery1.DatabaseName:='stu_data';//设置Query组件的别名Query1.Close;Query1.SQL.Clear;Query1.SQL.Add('selectstudent.学号,student.姓名,Score.课程,Score.成绩');Query1.SQL.Add('fromstudent,Score');Query1.SQL.Add('wherestudent.学号=Score.学号');Query1.Open;end;
当程序运行后,数据显示效果如图12-5所示,通过DBNavigator组件可以浏览记录指针,但却不能添加、删除和更新记录内容,请读者自己思考为什么不行?12.3.2SQL语言的基本操作(7)【例12-6】用SQL语句从Student.db统计出男生和女生的人数,如图12-7输出。图12-7输出男女生人数统计表
在窗体上放置1个Query组件、1个DataSource组件、1个DBGrid组件。将DataSource组件的DataSet属性设置为Query1,并分别将DBGrid组件的DataSource属性都设置为DataSource1。为了统计男生和女生的人数,需要对student.db数据表中的记录按性别进行分组。“Groupby性别”可以将性别相同的记录合并成一条记录。要得到统计结果,需要构造一个输出字段,此时可使用SQL的统计函数Count()作为输出字段,它按性别分组统计每个分组的记录个数,要显示统计结果,可以用AS短语命名一个新的字段别名。本例的SQL语句书写如下:
Select性别,Count(*)as人数fromstudentGroupby性别12.3.2SQL语言的基本操作(8)程序代码写在窗体的OnActivate事件中,具体如下所示:procedureTForm1.FormActivate(Sender:TObject);beginQuery1.DatabaseName:='stu_data';Query1.Close;Query1.SQL.Clear;Query1.SQL.Add('select性别,count(*)as人数fromstudentGroupby性别');Query1.Open;end;
如果统计每个学生的所有课程的总分,显示学号,姓名和总分三项内容,则SQL语句又该怎么写呢?这里要查询姓名和成绩,所以必须从两张表中进行链接查询,SQL语句表示如下:selectscore.学号,student.姓名,sum(score.成绩)AS总分fromscore,studentWherescore.学号=student.学号Groupbyscore.学号,student.姓名12.3.2SQL语言的基本操作(9)2.Delete语句
Delete语句非常简单,它的作用是用来删除数据表中的记录。具体格式如下:Deletefrom表名where条件该命令将删除数据表中满足条件的所有记录内容。更常见的情况是需要删除数据的特定行。对这种情况,添加Where子句即可。Delete语句仅仅删除指定条件的记录,并不是删除数据表;如果没有指定删除条件,则删除数据表中的所有记录。
2.Delete语句
Delete语句非常简单,它的作用是用来删除数据表中的记录。具体格式如下:
Deletefrom表名where条件该命令将删除数据表中满足条件的所有记录内容。更常见的情况是需要删除数据的特定行。对这种情况,添加Where子句即可。Delete语句仅仅删除指定条件的记录,并不是删除数据表;如果没有指定删除条件,则删除数据表中的所有记录。图12-8删除指定学号的学生记录12.3.2SQL语言的基本操作(10)确定删除”按钮的Click事件代码如下:procedureTForm1.Button1Click(Sender:TObject);beginifMessageDlg('你真的要删除学号为'+trim(Edit1.Text)+'的学生记录吗?',mtwarning,mbOKCancel,1)=mrOKthenbeginQuery1.Close;Query1.SQL.Clear;Query1.SQL.Add('Deletefromstudentwhere学号=:XH');Query1.ParamByName('XH').AsString:=TRIM(EDIT1.Text);Query1.ExecSQL;//必须调用ExecSQL方法执行Delete语句,没有返回结果
//重新获取student表中的所有记录
Query1.Close;Query1.SQL.Clear;Query1.SQL.Add('select*fromstudent');Query1.Open;//查询语句要用Open方法执行,返回一个记录集end;end;12.3.2SQL语言的基本操作(11)3.Insert语句
Insert语句更为复杂。它用于向表添加行。Insert语句可用于向所有的字段添加值,也可以只对某些字段添加值,这依赖于具体使用的Insert语句。由于这个原因,Insert语句需要表名、字段列表,以及与每个字段相匹配的值。语句的具体形式如下:Insertinto数据表名(字段名1,字段名2,…)Values(字段值1,字段值2,…)说明:(1)如果没有指定字段名,系统则会按数据表中字段的先后顺序插入数据;(2)字段值的数据类型必须与对应字段的数据类型相吻合;(3)数据表名可以是可以更新的视图名称,也可以是经过子查询把别的数据表中的内容插入。【例12-8】使用Insert语句插入记录。在【例12-1】的基础上添加如图12-9所示的几个组件:1个GroupBox组件、7个标签框(Label1~Label7)、7个编辑框(Edit1~Edit7)和2个命令按钮procedureTForm1.Button1Click(Sender:TObject);//“插入”按钮Click事件过程Varxh,xm,xb,csrq,zzmm,jg,rxcj:string;beginTry{开始捕捉错误}Query1.Close;query1.SQL.Clear;//在SQL语句中,字符类型和日期型的字段值必须加单引号,数值型字段不需要加单引号xh:=''''+edit1.Text+'''';//学号,需加引号xm:=''''+edit2.Text+''''; //姓名xb:=''''+edit3.Text+''''; //性别csrq:=''''+edit4.Text+''''; //出生日期zzmm:=''''+edit5.Text+''''; //政治面貌jg:=''''+edit6.Text+''''; //籍贯rxcj:=edit7.Text; //入学成绩,不需要加单引号12.3.2SQL语言的基本操作(12)(Button1~Button2)。7个标签框分别标注student.db数据表中的7个字段名,(图12-9使用insert语句插入记录)12.3.2SQL语言的基本操作(13)query1.SQL.Add('Insertintostudentvalues('+xh+','+xm+','+xb+','+csrq+','+zzmm+','+jg+','+rxcj+')');query1.SQL.Add('InsertintostudentValues(''030117'',''李香香2'',''女'',''4/5/45'',''团员'',''浙江'',442)');query1.ExecSQL;ExceptonEDBEngineErrordo//如果数据库操作发生错误,则显示提示信息。
beginapplication.MessageBox('数据库登录错误;请检查【学号是否重复!】'+#13+#10+'或者【字段值是否为空!】或【字段类型是否匹配!】','错误!',MB_OKCANCEL);end;end;//重新显示全部记录内容withquery1dobeginclose;
12.3.2SQL语言的基本操作(14)4.Update语句
Update语句用于修改现存的记录。Update语句如果不使用where子句,将更新所有的记录。大多数情况下都需要限制更新记录的条件,但所有的更新都从基本的语句开始。SQL语言中Update的语法如下:Update数据表名set字段名1=字段值1[,字段名2=字段值2,字段名N=字段值N]Where更新条件该语句以关键字Update开始,后接数据表名。set子句后接逗号分隔的列表,包括所要更新的字段及其新值。【例12-9】使用Update语句修改记录。界面跟【例12-8】基本保持不变,只添加一个Memo1组件,用来显示SQL语句。具体界面如图12-10所示。图12-10使用Update语句修改记录
程序要求先单击DBGrid1组件,选择一条要修改的记录,并将该记录的各字段值分别显示到对应的编辑框中,供用户修改。修改完毕后,单击“确定修改”按钮调用SQL语句中的Update命令提交修改,并将Update语句显示在Memo1组件中。具体代码如下:12.3.2SQL语言的基本操作(15)procedureTForm1.Button1Click(Sender:TObject);Varxh,xm,xb,csrq,zzmm,jg,rxcj:string;begin//在SQL语句中,字符类型的字段值必须加单引号,数值型字段不需要加单引号xh:=''''+edit1.Text+'''';//学号xm:=''''+edit2.Text+'''';//姓名xb:=''''+edit3.Text+'''';//性别csrq:=''''+edit4.Text+'''';//出生日期zzmm:=''''+edit5.Text+'''';//政治面貌jg:=''''+edit6.Text+'''';//籍贯rxcj:=edit7.Text;//入学成绩Tryquery1.Close;query1.SQL.Clear;query1.SQL.Add('Updatestudentset姓名='+xm+',性别='+xb+',出生日期='+csrq+',政治面貌='+zzmm+',籍贯='+jg+',入学成绩='+rxcj);query1.SQL.Add('WHERE学号='+xh);
12.3.2SQL语言的基本操作(17)memo1.Text:=query1.SQL.Text;//在Memo1中显示SQL语句
query1.ExecSQL;ExceptonEDBEngineErrordobeginapplication.MessageBox('数据库登录错误;请检查:'+#13+#10+'【字段值是否为空!】或【字段类型是否匹配!】','错误!',MB_OKCANCEL);end;end;//重新显示全部记录内容withquery1dobeginclose;sql.Clear;sql.Add('select*fromstudentorderby学号');
open;end;end;{单击DBGrid1组件中的一条记录时,在文本框中显示选中记录内容}12.3.2SQL语言的基本操作(18)procedureTForm1.DBGrid1CellClick(Column:TColumn);beginwithquery1dobeginedit1.Text:=fieldbyname('学号').AsString;edit2.Text:=fieldbyname('姓名').AsString;edit3.Text:=fieldbyname('性别').AsString;edit4.Text:=formatdatetime('mm''/''dd''/''yyyy',strtodate(fie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三位数除以两位数的除法口算(教学设计)-2024-2025学年四年级上册数学青岛版
- 10《牛郎织女(一)》教学设计2024-2025学年统编版语文五年级上册
- 《轴对称》(教学设计)-2024-2025学年三年级上册数学苏教版
- 教学设计:说课与培训
- 七年级生物下册 4.12.2 感受器与感觉器官教学设计 北师大版
- Unit2 Know your body(教学设计)-2024-2025学年外研版(三起)(2024)英语三年级下册
- 2023七年级数学上册 第四章 几何图形初步4.2直线、射线、线段第1课时 直线、射线、线段教学设计(新版)新人教版
- 汽车行业客服工作总结
- 管理心理学与培训
- MBA春季班学业进度介绍会
- 嫦娥奔月英文版简短50字
- Python语言程序设计 课件全套 清华 第1-12章 计算机科学基础 - 其他常用库介绍
- GB/T 28712.5-2023热交换器型式与基本参数第5部分:螺旋板式热交换器
- 蔬菜大棚钢结构施工组织设计
- 无人机航拍技术理论考试题库(附答案)
- 森林区划-组织森林经营类型(森林资源经营管理)
- 设备人员三级安全教育考试题与答案
- 简单实用电子简历表格,个人简历模板word格式
- 2022民族娃娃IP运营规划-55P
- 备考2023新高考英语听力12(答案听力原文)
- 地震灾害分类标准及分级响应表
评论
0/150
提交评论