上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
DELPHI语言编程基础(26)
作者:未知 申领版权
2010年12月12日 共有 2239 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    第十章  应用程序开发
    delphi一共提供四种数据库应用程序的开发,分别是
    1:BDE(borland database engine)
    一般用来开发桌面数据库,可以支持pardadox(*.db),dbase(*.dbf),microsoft forxpro,access数据等桌面数据库。而且borland公司已经放弃对该数据引擎的继续发行,所以如果你开发的仅仅是桌面数据库应用程序的话则可以使用BDE,若要开发c/s模式的数据库应用程序则可以使用ADO等。
    2:activex data object(ADO).
    是现在开发c/s模式数据库应用程序的流行模式,所以如果你想开发c/s模式的数据库应用程序,则首选ado,但是ado有一个致命的缺点,就是不能实现跨平台移植。例如在windows下开发出来的应用程序,只能在windows环境下运行,不能移植到别的操作系统如:linux等。
    3:DbExpress.
    由于BDE的访问效率不佳,无法实现平台转移,所以delphi提出了另一种数据库访问标准就是dbexpress。dbexpress也只能开发桌面数据库,但是对数据库的访问效率却比BDE要快多了,可是BDE对数据库的访问方式却比dbexpress简单
    4:interbase express
    delphi还但供了一种原生组件interbase express让你可以直接,快速地访问interbase数据库,可以实现c/s模式的数据库应用程序开发。与sqlserver很相似,也有一个像sql server服务一样的一个服务器.但是它的唯一缺陷就是它专属于interbase server,并不适用于其他数据库服务器的访问。而且interbase的sql语句有很多的地方与sql server的sql语句不一样。
    综上所述如果你想在windows开发桌面数据库则应该选择:BDE,如果你想实现你的软件可以跨平台移植则你可以使用dbexpres,如果你想开发windows下的c/s模式则选择ado.
    
    BDE提供的database desktop数据库创建工具.
    BDE提供的explorer工具.
    
    A:创建第一个数据应用程序(利用table,datasource,dbgrid,dbnavigator)
    B:功能强大的字段编辑器
    作用:
    1:改变字段的显示标题,顺序,宽度,对齐方式
    2:为字段增加约束(设置最大值,最小值,是否充许修改,是否要输入内容)
    3:设置文本框的操作方式[打开字段编辑器拖曳]
    4:设置计算字段.
    1):打开字段编辑器,新建一个字段添加为计算字段
    2):设置table的autocalcfields属性为true
    3):在table的oncalcfields事件中写入代码;
    5:增加lookup字段:作用是在某个表的字段希望参考到另外一个表的其它字段.
    C:获取当前记录字段数据的方法:
    1:FieldByName('字段名').Value
    2:Fields[0].Value [不进行转化]
    3:FieldByName('字段名').AsInteger[把值取出来并转化成为整型值]
    AsString,asboolean,asfloat,asdatatime等
    D:设计数据库维护程序:
    frist,last,next,prior,moveby(n),bof,eof,recordcount,recno,getbookmark,gotobookmark,freebookmark
    将table组件的active属性设置为true,或是运行open方式都是打开表的方式。或者把active属性设为false以及运行close方法都是关闭表的方式。
    举例:
    E:对表进行数据的更新
    1):插入:append方法或insert方法
    2):删除:delete;
    3):写入:post;
    举列:
    F:设计数据库存搜索功能:
    1)locate方法:
    格式:locate(要搜索的字段名,要搜索的字段值,搜索选项)
    1:首先把游移到第一条记录,在来查找如果找到符合条件的记录则把游标移动到该条上,若找不到,则游标不会发生移动,但是如果同时有多个满足条件的值,则它只能移动到最先满足条件的记录上面去.
    
    2:搜索选项为一集合类型。[loCaseInsensitive, loPartialKey],第一个表示查找时不区分大小写,第二个表示只要部分符合,通常会写成这样的形式
    if locate(要搜索的字段名,要搜索的字段值,[]) then
    处理语句 [表示如果找到,则怎么样,而且不区分大小写,不能有部分匹配
    2):利用filter搜索多条数据记录。
    
    这个方法利用属性filtered属性和onfilterrecord事件来完成。你必须将filtered设为true之后,然后在onfilterrecord事件中编写过滤代码.在该事件中有一个参数是accept是一个布尔型。如果设置为true则可以过滤,否则不能过滤
    举列
    
    G:运用tquery控件来实现数据的查询
    两种运用tquery控件的方式:
    1):在设计状态下,通过点选sql属性,然后将sql命令写上,再把acture属性设为true即可
    2):在运行状态下:在很多种情况下使用的一种状态
    写上:
    query.close; //先要关闭,这是一种安全的做法。其实不关也行
    query.clear;//再清除sql语句的内容,不然就会把现在的sql语句加到以前的sql里面
    query.sql.add('sql语句')
    query.open; 或者query.ExecSQL;
    其中open用来执行带有select的sql语句的,也就是说有返回结果集的。而 execsql则是执行如
    delete,update,insert等没有返回集的sql语句的。
    3):可以将sql语句事先写在文件里面,再通过loadfromfile方法从文件里面取得sql语句
    query.close;
    query.clrear;
    query.sql.loadfromfile('c:\sql.txt');
    query.open
    4):利用sql实现参数查询:
    A:首先在query的sql属性中写入:select * from animals where weight>=:we 其中we就为参数
    B:然后打开query的属性为参数设定数据类型和值
    C:把query的active的属性设为true
    上面的设置是进行静态设计,我们有时候希望在程序中进行动态设置。可以参考下面的代码
    比如:
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('select * from animals where weight>=:wc');
    query1.Params[0].DataType:=ftinteger;
    query1.Params[0].Value:=strtoint(edit1.Text);
    query1.open;
    5):在使用sql语句时,为了提高查询的效率,你必须要做两件事件。
    A:在运行sql语句之前,请调用prepare方法。所谓parepare查询的意思是先将sql查询程序传递给远程数据库,预先进行sql语法分析,这样,如果不用prepare的话,则远程数据库每次都要进行sql语法分析,从而降低了查询效率  写法如下:
    if not query.parepare then
    query.parepare
    query.open //也即是在使用open语句之前使用parepare
    B:将unitdirectional的属性设置为true.这个属性用来决定是否可以往后查看结果集的内容。有时候可以产生两个结果集。而返回给用户的默认是第一个结果集,用户可以选择看一下个结果集。但是我们一般都只是返回一个结果集,所以要把此项设置为true,表示不能查看一个结果集.要特别注意的是,你必须在准备及运行sql查询之前来设置unitdirectional的属性值。
    6):使用query来实现数据的修改.
    其实query不仅可以查询,更重要的是它已经包括了table的所有功能。比如:可以对数据进行修改,要执行这样的功能必须要把query有requestlive属性设置为true.有意思的是,在ado的adoquery中则不需要这些设置就可以直接对数据进行修改,而且ado的query中根本就没有此属性
    举列说明:
    
    F:常用数据控件的用法:
    1:dbgrid:用来显示数据库中的控件:
    2:dbnavigate:能够对数据库进行各种操作
    3:dbtext:能够与对数据库中某列相结合,对该列进行显示
    4:dbedit: 能够与对数据库中某列相结合,对该列进行显示或修改
    5:dbmomeory:与dbedit相同只不过用来处理较长的字符串
    6:dbcombobox:能够与数据库中某列相结合,对该列进行显示或修改
    7:dbimage:能够与数据库中存储图片的列相结合,对该列进行显示或修改
    只要通过剪切板并配合快捷键来修改
    8:dblookuplistbox,dblookupcombobox:通过改变listsource与keyfile属性来把游移动到指定的记录上面去。
    G:dbnavigate的用法:
    A:为每一个按钮加上其它代码:使用onclick事件
    case button of
    nbFirst :
    showmessage('第一条');
    ........
    end;
    B:隐藏某些按钮,或使之成为平面型:
    C:使用提示变成中文:
    D:改变图标:
    F:dbgrid控件的用法:
    A:改变字段显示的标题,颜色,顺序。(color和titile属性)
    B:让某个列实现picklist功能.以及通过代码实现picklist功能
    C:options的属性:
    D:把奇数行和偶数行各显示不同的颜色.
    if self.DBGrid1.DataSource.DataSet.RecNo mod 2= 0 then
    self.DBGrid1.Canvas.Brush.Color:=clred
    else
    self.DBGrid1.Canvas.Brush.Color:=clgreen;
    self.DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
    E:把满足条件的数据以不同的颜色显示:
    F:为dbgrid字段加上图标:
    
    ADO对像模型的数据库编程:
    A:使用ado创建第一个数据库应用程序:
    B:tadotable,tadoquery组件的用法:与BDE完全一样
    想一想:tadotable和tadoquery都有connctoionstring属性为什么还要用adoconnection组件
    tadoquery除了具备有adotable的全部功能之外,还可以查询。可谓功能之强大.所以在开发项目时,应        首选query控件
    C:connection组件的用法:
    1:connectionstring:指定连接字符串:
    2:prompt:说明每次在连接时,是否需要指定用户和密码:
    D:tadodataset控件的用法:
    这个控件集tadotable与tadoquery,tadostoreproc这三个控件一身的控件:
    属性:
    1:commandtype:命令类型:
    2:commandtext:命令文本:
    举列:
    
    E:综合应用举列应用:
    功能:实现选择一个数据库,可以选出里面所有的表,选择一个表,可以显示该表所有记录:

    

 

相关新闻

肢体语言塑造你自己
每一个程序员要遵守的一些优秀编程风格
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)
杂谈语言(之三)——那些深受古汉语影响的语言(方言)
杂谈语言(之二)——语言学习的边际成本递减效应
《VB程序设计基础》选择题
设计模式之Iterator

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》