图书馆管理系统 |
|
|
pare属性,这是一个布尔型属性,当其属性值为true时, 表明该查询已被准备好了( sql 语句已被传送到数据库引擎中 ) , 当我们使用参数编辑器parameters editor来为动态sql语句中的参数赋值时,当设置完相应的参数值并退出参数编辑器时,delphi会隐含地调用prepare方法以准备好查询。 当sql语句执行完之后,要想准备下一个查询,首先必须调用close方法,然后才能调用prepare方法准备下一个查询。一般来说,在一个应用程序中应该调用一次prepare方法,常常在窗体的oncreate事件处理过程中调用prepare方法, 然后用上述介绍的方法为参数赋值,最后调用open方法或execsql方法执行sql语句,以完成查询。 当然在调用prepare方法准备好一个查询时,会消耗一些数据库资源, 因而每当一个查询执行完毕之后,要养成调用unprepare方法以撤消查询的好习惯。在运行程序过程中,通过程序改变tquery或tadoquery部件的sql属性值时,delphi会自动地调用close方法和unprepare 方法,以撤消查询。 在程序运行过程中,要想设置tquery或tadoquery部件的sql属性,必须首先调用close方法,关闭tquery或tadoquery部件,然后再调用clear方法清除sql属性中现存的sql命令语句, 最后再调用add方法为sql属性设置新的sql命令语句。例如: datamodule4.adoquery2.close; datamodule4.adoquery2.sql.clear; datamodule4.adoquery2.sql.add(select 借书证号,密码 from [user] where (借书证号 = :tt)); datamodule4.adoquery2.parameters[0].value:=username; datamodule4.adoquery2.open; 在为tquery或tadoquery部件设置sql属性时调用close方法总是很安全的,如果tquery或tadoquery部件已经被关闭了,调用close方法时不会产生任何影响。在应用程序中为sql属性设置新的sql 命令语句时,必须要调用clear方法以清除sql属性中现存的sql命令语句,如果不调用clear方法,便调用add方法向sql属性中设置sql命令语句,那么新设置的sql命令语句会追加在现存sql命令语句后面, 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。 在这里要特别注意的,一般情况下tquery或tadoquery部件的sql属性只能包含一条完整的sql语句,它不允许被设置成多条sql语句。当然有些数据库服务器也支持在tquery或tadoquery部件的sql属性中设置多条sql语句,只要数据库服务器允许这样,我们在编程时可以为 sql 属性设置多条sql语句。 在为tquery或tadoquery部件设置完sql属性的属性值之后,也即编写好适当的sql程序之后,可以有多种方式来执行sql程序。 在设计过程中,设置完tquery或tadoquery部件的sql属性之后将其active属性的值置为true, 这样便可以执行sql属性中的sql程序,如果应用中有与tquery或tadoquery部件相连的数据浏览部件( 如tddgrid tdbedit等)那么在这些数据浏览部件中会显示sql程序的执行结果。 在应用程序运行过程中,通过程序调用tquery或tadoquery组件的open方法或execsql 方法可以执行其sql属性中的sql程序。open方法和execsql方法是不一样的。open方法只能用来执行sql语言的查询语句(select命令), 并返回一个查询结果集,而execsql方法还可以用来执行其它常用的sql语句(如insert, update, delete等命令),例如: query1.open (这样会返回一个查询结果集) 如果调用open方法,而没有查询结果时,会出错。此时应该调用execsql 方法来代替open方法。如: query1.execsql (没有返回结果) 当然在设计应用程序时,程序设计人员是无法确定tquery或tadoquery组件中的sql 语句是否会返回一个查询结果的。对于这种情况应当用try…except模块来设计程序。在 try 部分调用open方法,而在except部分调用excesql方法,这样才能保证程序的正确运行。 例如: try query1.open except query1.execsql end 通过tquery或tadoquery组件可以获得两种类型的数据: u “活动”的数据 这种数据就跟通过ttable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。 u 非活动的数据(只读数据) 用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过tquery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置tquery或tadoquery组件的requestlive属性值为true,然而并不是在任何情况下(通过设置requestlive的属值true)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将tquery部件的requestlive属性设置为true外,相应的sql命令还要满足以下条件。 本地sql语句查询情况下,要得到可更新的数据集,sql语句的限制为: n 查询只能涉及到一个单独的表 n sql语句中不能包含order by命令 n sql语句中不能含聚集运算符sum或avg n 在select后的字段列表中不能有计算字段 n 在select 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|
|
上一个论文: 没有了 下一个论文: VB中创建超长时间计时器对象
|
|
|
看了《图书馆管理系统》的网友还看了:
[企业管理]浅谈高校图书馆是校园文化建设的重要载体 [企业管理]浅议对高校图书馆管理模式的思考 [企业管理]试析高校图书馆的服务创新与大学生的素质教育 [企业管理]简论高职院校图书馆学科馆员制度探析 [今日更新]图书馆数字资源的长期保存与管理研究 [今日更新]公共图书馆知识管理与经济和社会的发展 [今日更新]浅谈高等美术院校图书馆美术教育服务 [企业管理]浅谈高职院校图书馆开展信息素质教育的理论与实践 [企业管理]浅析公共图书馆如何引导青少年信息素质教育 [企业管理]浅析加强图书馆员信息素质教育的方法和途径
|
|