delphi连接数据库Microsoft Office Word 文档.docx

上传人:b****3 文档编号:5505297 上传时间:2023-05-08 格式:DOCX 页数:23 大小:29.25KB
下载 相关 举报
delphi连接数据库Microsoft Office Word 文档.docx_第1页
第1页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第2页
第2页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第3页
第3页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第4页
第4页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第5页
第5页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第6页
第6页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第7页
第7页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第8页
第8页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第9页
第9页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第10页
第10页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第11页
第11页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第12页
第12页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第13页
第13页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第14页
第14页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第15页
第15页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第16页
第16页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第17页
第17页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第18页
第18页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第19页
第19页 / 共23页
delphi连接数据库Microsoft Office Word 文档.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

delphi连接数据库Microsoft Office Word 文档.docx

《delphi连接数据库Microsoft Office Word 文档.docx》由会员分享,可在线阅读,更多相关《delphi连接数据库Microsoft Office Word 文档.docx(23页珍藏版)》请在冰点文库上搜索。

delphi连接数据库Microsoft Office Word 文档.docx

delphi连接数据库MicrosoftOfficeWord文档

ADO链接数据库

使用ADO连接SQLServer2000数据库

1.用ADO组件TADOQuery连接数据库

用TADOQuery组件连接数据库需要以下几个步骤:

(1)用TADOConnection组件连接数据源(在ConnectionString属性中连接数据库的字符串可以根据需要对其进行相应的省略)。

(2)用TADOQuery组件连接数据源,并在SQL属性中输入SQL语句。

(3)将TADOQuery组件的Active属性设为True。

在SQL属性中可以输入任何形式的SELECT语句,以及INSERT(添加)、UPDATE(修改)和DELETE(删除)语句。

下面利用TADOQuery组件来连接数据库“MR_SQL”,并显示“MR_SQL”数据库中“MR_Student”表的数据,如图1所示。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource和TDBGrid组件。

图1  用ADO组件TADOQuery连接数据库

(2)主要程序代码如下:

将下面的代码写入窗体的OnShow(显示)事件中。

procedureTForm1.FormShow(Sender:

TObject);

begin

ADOConnection1.ConnectionString:

='UserID=sa;InitialCatalog=MR_SQL;

DataSource=.;UseProcedureforPrepare=1;AutoTranslate=TrueacketSize=4096;

WorkstationID=MRDEL';  //连接指定的数据库

ADOConnection1.LoginPrompt:

=False;

ADOConnection1.Connected:

=True;

ADOQuery1.Connection:

=ADOConnection1;  //连接数据源

withADOQuery1do  //用ADO组件连接数据表

begin

close;

SQL.Clear;

SQL.Add('Select*fromMR_Student');  //使用SQL语句查询数据表中的内容

open;

end;

ADOQuery1.Active:

=True;

DataSource1.DataSet:

=ADOQuery1;

DBGrid1.DataSource:

=DataSource1;

end;

2.用ADO组件TADODataSet连接数据库

TADODataSet组件允许直接访问数据源、创建一组数据源记录以及查询结果记录集。

TADODataSet组件可以从一个或多个表中取数据。

如果只访问一个表,需要指定表的名称;如果要访问多个表,需要使用SQL语句。

TADODataSet组件与TADOQuery组件的最大区别在于可以使用TADODataSet组件上CommandText属性右边的按钮,对指定数据库中的所有数据表进行可视化选择并创建SQL语句,如图2所示。

图2  CommandText属性的编辑器

注意:

在使用CommandText属性的编辑器时,应先在ConnectionString属性中使用手动连接数据源。

下面利用TADODataSet组件来连接数据库“MR_SQL”,并显示“MR_SQL”数据库中“MR_Student”表的数据。

操作步骤如下:

(1)运行Delphi,在窗体中添加TTADODataSet、TDataSource和TDBGrid组件。

(2)主要程序代码如下:

将下面的代码写入窗体的OnShow(显示)事件中。

procedureTForm1.FormShow(Sender:

TObject);

begin

ADODataSet1.ConnectionString:

='Provider=SQLOLEDB.1ersistSecurityInfo=False;

UserID=sa;InitialCatalog=MR_SQL;DataSource=.';  //连接数据源

ADODataSet1.CommandText:

='select*fromMR_Student';  //用SQL语句查询数据表信息

ADODataSet1.Active:

=True;  //运行该组件

end;

3.用ADO组件TADOTable连接数据库

TADOTable(也称为ADO数据表)组件是一个数据集组件,封装了一个可访问ADO的数据表,使用TADOTable组件可访问单个数据表中的数据,它可以直接访问数据表中的每条记录,也可以用Filter属性根据限定范围或条件对数据表中的信息进行过滤。

TADOTable组件也可以通过TableName属性对数据库中的数据表进行可视化选择。

注意:

在用TableName属性进行可视化选择时,应先在ConnectionString属性中使用手动连接数据源。

下面是利用TADOTable组件来连接数据库“MR_SQL”,并显示“MR_SQL”数据库中“MR_Student”表的数据。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOTable、TDataSource和TDBGrid组件。

(2)主要程序代码如下:

将下面的代码写入窗体的OnShow(显示)事件中。

procedureTForm1.FormShow(Sender:

TObject);

begin

ADOTable1.ConnectionString:

='Provider=SQLOLEDB.1ersistSecurityInfo=False;

UserID=sa;InitialCatalog=MR_SQL;DataSource=.';

ADOTable1.TableName:

='MR_Student';

ADOTable1.Filtered:

=True;

end;

4.用ADO组件TADOCommand连接数据库

TADOCommand组件主要用来对数据源执行指定的命令,比如SQL语句,表和存储过程的名称,对数据进行添加、修改、删除等操作。

虽然其他ADO组体也能执行以上操作,但需要使用Command本身的属性和方法来控制数据源,使用TADOCommand组件就方便得多。

在用TADOCommand组件对数据进行编辑时,应在Parameters属性中创建变量,这些变量应与编辑字段的类型相一致,如果在SQL语句后面没有WHERE子句,则对整个表进行编辑。

下面利用TADOCommand组件来连接数据库“MR_SQL”,并对“MR_Student”表中的“数学”字段进行修改。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOTable、TEdit和TButton组件。

(2)主要程序代码如下:

在Button1按钮的单击事件中写入以下代码。

procedureTForm1.Button1Click(Sender:

TObject);

begin

ADOCommand1.ConnectionString:

='Provider=SQLOLEDB.1ersistSecurityInfo=False;

UserID=sa;InitialCatalog=MR_SQL;DataSource=.';  //连接数据源

//用SQL语句UPDATE修改MR_Student表中第一条记录的“数学”字段信息

ADOCommand1.CommandText:

='UPDATEMR_StudentSET数学=数学+:

aawhere编号=1';

//在TADOCommand组件中设置变量,并通过该变量获取修改值

ADOCommand1.Parameters.ParamByName('aa').Value:

=StrtOInt(edit1.Text);

ADOCommand1.Execute;  //执行修改操作

end;

Delphi链接数据库方法

Delphi数据库处理组件BDE、ADO、InterBase和dbExpress详细说明

 第一节BDE、ADO、InterBase和dbExpress

   Delphi中处理数据库主要有两种方法,也就是BDE、ADO,从Delphi6.0开始还加入了一种dbExpress方法。

另外,Delphi还提供了专门处理Borland公司自己的数据库产品InterBase数据库的专门的方法。

   BDE(BorlandDatabasEngine),是Delphi中最古老的技术,从delphi2.0加入BDE技术以后,一直是Delphi处理数据库的事实上的标准。

BDE是一个基于驱动程序的体系结构,每一种数据格式或数据源都有一种驱动程序来驱动相近的数据源。

BDE可以很好的支持现在最流行的ODBCAPI方法,ODBC是一种C/C++应用程序编程接口(API),无论是对任何一种客户/服务器关系型数据库管理系统(RDBMS),还是最流行索引顺序访问方法(ISAM)数据库(Jet、Foxpro),都能很好的访问。

   同时,由于BDE的驱动程序主要直接来自于第三方开发商,所以,对于像Oracle这些非微软的数据库,执行效率上比较高。

正是这些特点,使BDE技术还是得到了很多数据库开发程序员的欢迎。

   ADO技术是微软提出来的处理关系型数据库和非关系型数据库的新技术,它基于微软被称为OLEDB的数据访问模式,它是专门为了给大范围商业数据源提供访问而设计的,包括传统的关系型数据表、电子邮件系统、图形格式、Internet资源等。

ADO所需内存更少,更适合大流量和大事务量的网络计算机系统。

   ADO顶层有三个对象:

Connection、Command、Recordset。

   Connection用以指定数据源,建立和数据源的连接。

   Command对象用以对数剧源执行指定的命令,可以接受SQL语句,表和存储过程的名称,执行SQL查询,更新数据,插入纪录等。

   Recordset对象表示的是来自表或命令执行结果的记录全集,操纵来自提供者的几乎所有数据。

   由于ADO技术的迅速普及,从Delphi5.0 开始,加入了ADO技术的模块,并逐步成为Delphi数据库设计的主流。

但是,和VB的ADODC相比,它还是有所不同的,在数据绑定上,它更多的吸收了BDE的特点,以做到和原来的程序兼容,同时,它又可以接受标准ADO技术的各种属

性和方法,在接受这些属性和方法时,它是和数据绑定控件脱离的,当然从某种意义上来说,这种方案提高了执行效率,给设计人员以更多的选择。

   dbExpress是Delphi6.0加入的最新的数据库模块,它不使用缓存,可以快速浏览大量的数据,但是,不使用缓存就不能更改,所以它的标准方式是只读的。

它一个重要的特点是交叉平台,可以和Linux数据库连接,速度相当快。

   下面的讨论,将以ADO技术为主线,最后再说明BDE和dbExpress的应用方式。

   第二节 ADO面板的主要组件

   ADO面板一共有7个组件:

  

   ADOConnection:

主要用于建立数据库的连接;

   ADOdataSet:

ADO提取和操作数据库的主要数据集,可以直接连接到数据库,也可以通过ADOConnection连接到数据库。

   ADOtable:

主要用以操作和提取单个基表的数据,可以直接连接到数据库,也可以通过ADOConnection连接到数据库。

   ADOquery:

通过SQL语言提取数据,其连接数据库的方式和前两种一样。

   ADOStoredProc:

这个组件专门用于运行数据库中的存储过程。

   ADOCommand:

该组件用于运行一些SQL命令,这个组件可以和支持数据集的组件一起使用,也可以直接从一个基表中提取一个数据集。

   RDSConnection:

一个进程或一台计算机传递到另一个进程或计算机的数据集合。

   为了连接数据绑定控件,上述组件往往要和处于DataAccess中的Datasource配合使用。

   可以看出,和VB的ADODC不同的,Delphi中解决同一个问题提供了多种方案,看起来似乎增加了麻烦,但是却可以给程序员更大的自由空间,便于设计出高效率的数据库程序来。

   下面通过几个例子来说明ADO控件的用法。

   第三节ADOtable组件

   ADOtable、ADOdataSet、ADOquery和ADOStoredProc都继承同一个父类TCustomADODataSet,所以,在属性事件和方法上有很多相似的地方,但它主要是针对数据库中的表进行操作。

      

   ADO-〉ADOtable

   属性:

   Name='控件名'

   ConnectionString='连接字符串'

       可以通过点击右边的按钮,通过向导建立数据源。

有时候需要知道相对路径,可以用下面的方法找到程序当前的路径:

   

   tpath:

=ExtractFilepath(Application.Exename);

   文件名:

=Tpath+'../data/Test.mdb'

   表明数据库在当前程序上一层的Data文件夹下。

   TableName='表名'

   Active=true

   这就激活了数据源,为了和绑定控件联系,要增加一个DadaSource控件。

事实上,所有的绑定控件都是和DadaSource联系。

   DataAccess-〉DadaSource

   属性:

   Dataset=ADOtable.Name

   

   加入绑定控件:

   DataControls-〉

   

   DBgrid(表格)

   属性

   DadaSource='DadaSource.Name'

   DBNavigator(导航条)

   属性

   DadaSource='DadaSource.Name'

   运行一下可以看出关系

   下面介绍一下ADOtable的一些重要的方法,这些方法大部分和Table是兼容的。

   为了便于叙述,ADOtable控件的Name定为ADOtable1

  1)移动指针

  第一个:

  ADotable1.First;

  最后一个:

ADotable1.Last;

  下一个:

  ADotable1.Next;

  前一个:

  ADotable1.Prior;

  2)从字段中取出数据

  通过如下方法可以访问字段的值

      ADOtable1.FieldValues['字段名']

      ADOtable1.Field[索引值]

 

      在读写字段的时候,又是根据需要可以加上强制类型转换      

      例如:

      Edit1.text:

=ADOtable1.Field[0].AsString;

      

      用下面的方法可以去除字段的性质:

      ADOtable1.fielddefs[索引值].name;    字段名

      ADOtable1.fielddefs[索引值].Size;    字段大小

      ADOtable1.fielddefs[索引值].Datatype;字段属性

   3)修改数据:

      修改数据的时候,需要先建立EDIT方法,然后用Post方法才能真正的写入。

   

  ADOtable1.edit;

  ADOtable1.FieldValues['姓名']:

='王秀琴';

  ADOtable1.post;

   4)增加一条空纪录:

ADOtable1.append;

      新增纪录也可以用如下方法,在新增纪录的同时输入数据

      ADOtable1.appendRecord(xxx,xxx,xxx,....);

 

   5)删除当前纪录:

ADOtable1.delete;

      如果在ADOtable1的OnBeforeDelete方法中写下:

      ifmessagedlg('确实要删除吗?

',mtinformation,[mbyes,mbno],

         0)=mrnothenabort();

      可以实现删除前的提示。

      

   6)过滤

   可以用如下的方法实现数据的过滤

   在ADOtable1的OnFilterRecord方法中写下:

     Accept:

=(条件);

   然后

   ADOtable1.filtered:

=true; 为实现过滤。

   ADOtable1.filtered:

=false; 为解除过滤。

   7)指针在文件的头尾

   指针在最后一条记录之后 ADOtable1.Eof

   指针在第一条记录之前   ADOtable1.Bof

   如此可以实现对数据库的遍历

    

   form1.ADOtable1.first;

   whilenotform1.ADOtable1.eofdo

       Begin

           .......   

          form1.ADOtable1.next;

       End;

    

   8)此外,ADOtable组件还继承了ADO中的RecordSet对象几乎全部属性和方法,简述如下:

withadoTable1.Recordsetdo

begin

  //属性

  PageSize                    一页所包含的记录数

  PageCount                   数据的页数

  AbsolutePage;               当前记录所在页      

  AbsolutePosition;           当前记录的序号位置

  BOF;                        指针在第一个记录之前

  EOF;                        指针在最后一个记录之后

  //方法

  AddNewfieldList,Values;    创建新记录,其中fieldList为用数

                            组表示的字段名集,Values为用数组表

                            示的数据集。

  Cancel;                     取消上一步所作的修改

  UpdateFields,Values;       保存对当前记录所作的修改

  Delete;                     删除当前记录

  Move(n);                    移动n条记录

  MoveFirst;                  移动到第一条纪录

  MoveLast;                   移动到最后一条纪录

  MoveNext                    移动到下一条纪录

  MovePrevious                移动到上一条纪录

  Requery;                    通过从新执行对象所基于的查询,以

                             更新RecordSet对象中的数据。

end;

   使用Recordset对象来处理数据集的数据,会发现数据帮定控件的指针一般不会跟着移动,这实际上给设计者提供了另一个在后台快速处理数据的方法。

   附录:

关于TActionList控件的使用

   在Standard面板,提供了一个TActionList控件,它集中了大部分按钮的使用方法,可以简化按钮的设计。

   方法:

   调入TActionList,双击,可以看到一个面板,右键-〉NewStandardAction选择Datasat下的适当的控制,可以选择多个。

   以后加入的开关,只要在属性Action中选择适当的项目就可以了,不需要专门编程,实例见“ActionList应用”。

   第四节ADOQuery组件

   和ADOtable组件一样,ADOquery继承了同一个父类TCustomADODataSet,所以,上面说到的ADOtable属性事件和方法基本上是通用的,但它主要是针对数据库中的SQL命令进行操作。

   下面主要说一下ADOquery特殊的地方。

   1)SQL属性

   SQL是TStrings类型的属性,包含了ADOquery组件要执行的SQL命令,是ADOquery最为重要的属性之一。

   在应用程序中,需要调用Open方法或者ExecSQL方法来执行在SQL中的命令。

在设计阶段,可以利用属性编辑起来编写。

   例如:

   WidthADOquerydo

     Begin

       //重新写入时,要关闭原来的查询

      Close;

      widthSQLdo

        Begin

         //因为Add是在原来的基础上加入,所以先清除原来的SQL命令

          Clear;

          Add('selsct编号,姓名,奖金')

          Add('From奖金表')

        End;

       //执行SQL命令

      Open;

     End;

 

   查询命令也可以这样来写:

 s1:

='编号';

 s2:

='姓名';

 s3:

='金额';

 withADOquery1do

   begin

      sql.Clear;

      SQL.Add('select');

      SQL.Add(s1+','+s2+','+s3);

      SQL.Add('From奖金');

      execsql;

      active:

=true;

   end;

   效果是一样的。

   第五节ADOConnection和ADODataSet

   虽然ADOTable和ADOQuery组件可以非常简单的连接数据库,但是当需要更加精细的控制数据库的时候,往往需要应用ADO更多的方法,我们知道,支

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2