BDE数据库MS SQL驱动详解 (bde数据库mssql驱动)


BDE(Borland Database Engine)是Borland公司推出的一个数据库访问框架,用于在不同的编程语言和不同的平台问不同的数据库。BDE支持多种数据库,其中包括Microsoft SQL Server(简称MS SQL)数据库。本文将详细介绍BDE数据库MS SQL驱动的相关知识。

1. MS SQL数据库介绍

Microsoft SQL Server是一个关系型数据库管理系统,由Microsoft Corporation开发,可用于存储和检索数据,也可用于Web、移动等应用程序中。它支持SQL(结构化查询语言),是一种用于管理关系型数据库的语言。MS SQL使用T-SQL(Transact-SQL)扩展SQL语言,可完成更多类型的数据操作和事务,具有高度的可扩展性、安全性和稳定性,常用于中大型应用程序的数据存储和管理。

2. BDE数据库访问介绍

BDE是一套完备的数据库访问解决方案,它提供了一致的接口,使得可以使用相同的代码进行不同数据库的访问。它提供的一系列组件可以满足编程人员的访问需求,其主要组成部分如下:

– BDE引擎:处理数据的输入和输出,执行SQL语句、连接数据库等。

– 数据库驱动程序:连接不同类型的数据库,对不同的数据库进行数据操作。

– 数据集:用于存储要操作的数据,可以进行数据的查询、修改、添加和删除等操作。

– TTable:BDE的基本数据控件,可以用于对表和视图的访问。

– TQuery:用于查询数据的高级控件,可以联合多个表进行复杂查询。

3. BDE连接MS SQL数据库

BDE可以连接多种数据库,其中包括MS SQL。连接步骤如下:

– 安装BDE:首先需要安装BDE,可以通过Borland公司的网站进行下载,也可以随同带有BDE支持的应用程序一同安装。

– 安装MS SQL驱动:安装好BDE之后,还需要安装支持MS SQL数据库的驱动程序,可以通过BDE管理员进行安装。在安装中,需要设置代表MS SQL的别名,例如 “MS_SQL_Demo”。

– 配置BDE管理员:通过BDE管理员,需要对连接的数据库进行一些参数的配置,例如数据库名称、用户名称、密码、主机名称等。对于MS SQL数据库,需要对TCP/IP协议进行一些配置,例如设置网络地址和端口等。

– 连接数据库:使用BDE提供的组件进行数据库的连接,可以使用TDatabase和TSession等组件创建连接对象,也可以使用TQuery组件直接连接数据库执行SQL语句。

4. MS SQL驱动常用API介绍

BDE为MS SQL数据库提供了一些常用的API,可以方便地对数据进行操作。以下是一些常用的API介绍:

– DBISQLPutRecord:向数据库中添加一条记录,函数原型为DBISQLPutRecord(Handle: HDBICur; pRecBuf: Pointer): DBIResult;可以将指定的数据记录添加到当前打开表中,返回值表示操作是否成功。

– DBISQLGetField:从数据库中读取一条记录的某个字段值,函数原型为DBISQLGetField(Handle: HDBICur; iField: Longint; pData: Pointer; iBufLen: Longint; piLen: PLongint; piMore: PLongint): DBIResult;可以读取指定字段的值,返回值表示操作是否成功。

– DbiOpenTable:打开一个表,函数原型为DbiOpenTable(psession: PDBISession; szTableName: PChar; szTableType: PChar; pszDriverType: PChar; iIndexCount: Integer; pIndexDescs: pIDXDesc; bExclusive: BoolExcl; bReadOnly: BoolRO; bUseCursor: BoolCursor; pParams: Pointer; iOptParams: Integer; phCursor: PHDBICur): DBIResult;可以打开指定的表,返回值表示操作是否成功。

– DbiGetErrorString:获取最后一个错误信息,函数原型为DbiGetErrorString(iErrCode: DBIResult; szBuf: PChar; iBufLen: Integer): DBIResult;可以获取最后一个操作的错误信息,返回值表示是否获取成功。

5. MS SQL驱动常见问题解答

在使用BDE连接MS SQL数据库时,可能会遇到一些问题,以下是一些常见问题的解答:

– 无法连接数据库:Connect Fled,可能是没有正确设置数据库的网络地址和端口,或者数据库用户名和密码不正确等。

– 无法打开表:Table Open Fled,可能是数据表不存在,或者没有足够的权限等。

– 无法读取数据:Cursor Get Record Fled,可能是字段名称不正确,或者数据类型不匹配等。

– 无法写入数据:Cursor Insert Fled,可能是数据类型不匹配,或者数据项已经存在等。

以上是一些常见的问题解答,如果还遇到其他问题,可以查看BDE的官方手册或者Borland论坛等资源。

本文详细介绍了BDE数据库MS SQL驱动的相关知识,包括MS SQL数据库的介绍、BDE的数据库访问介绍、BDE连接MS SQL数据库的步骤、MS SQL驱动常用API介绍以及MS SQL驱动常见问题解答。掌握这些知识可以更好地使用BDE连接MS SQL数据库,并处理相应的数据操作需求。

相关问题拓展阅读:

  • 2. 与数据库相关的组件主要有哪些?简述这些组件的属性和方法以及它们的使用方法。

2. 与数据库相关的组件主要有哪些?简述这些组件的属性和方法以及它们的使用方法。

1 Session组件。它提供应用程序中数据库的有关信息,在单机数据库编程中不显式地使用它,这是因为每个数据库应用程序运行时,Delphi将自动创建一个缺省Session组件,用户可在程序中使用这个缺省的Session组件,而没有必要在设计时设置一个Session组件。Table、Query等组件的属性中有一个SessionName属性,缺省为“Default”,这就是缺省的Session组件。比较常用的是用它的GetTableNames方法,在一些查询有时需要用户选择数据库中的数据表名称列表。比如在列表框中列出我们的数据库别名lklb中所有的数据表名称,代码如下(窗体上要有激活的数据集组件并指明了数据库别名):

procedure TForm1.Button1Click(Sender: TObject);

var MyStringList :TStringList;

begin

MyStringList := TStringList.Create;

try

Session.GetTableNames(‘lklb’, ”,False, False, MyStringList);

ListBox1.Items := MyStringList;

finally

MyStringList.Free;

end;

end;

GetTableNames方法的语法如下,

语法:Session.GetTableNames(DataBaseName,Pattern,Extensions,SystemTables,List)。

参数说明:

DataBaseName——数据库名称。

Pattern——数据表类型,用来限制返回哪种类型的数据表,比如是.DB还是.DBF,如果为空则返回所有类型数据表,可以用通配符。

Extentions——布尔型变量,控制返回的数据表是否有扩展名。

SystemTables——对一些数据库来说有系统数据表,若设定为True则返回的数据表名称包括系统数据表。一般设定为False 。

List—保存数据表名称的字符串列表。

DBNavigator组件。DBNavigator组件主要用于为用户操作数据集中的记录提供简捷的控制按钮。用户单击其中的按钮就可完成移动记录指针、插入、删除、修改、保存、刷新记录等功能。它的 VisibleButtons属性可指定哪些按钮显示,通过设置Hints属性可以为各控制按钮设置其他的动态提示信息,用户自己设置的动态提示信息会覆盖原来的提示信息,对我们来说提示信息写成中文比较好。

DBtext组件。相当于标签(Label)组件,只不过它用于显示数据库中的字段值,其显示内容随记录指针的变化而变化。它的DataField属性指定要显示内容的字段名称。

DBEdit组件。用于显示、修改数据表字段值。由于DBEdit一般用来修改或添加新记录使用,所以其ReadOnly属性一般设定为False,若设定为True则不可修改字段内容。

DBMemo组件。主要用于显示和编辑数据库表中的大二进制(BLOB)类型的字段值,一般用来处理备注型字段的值,能够显示多行文本。MaxLength属性设置该属性的值用于限制用户向DBMemo 组件中输入字符的个数。若设置该值为0时,表示输入字符的个数没有限制。注意:在运行过程中,用户对DBMemo组件中显示的文本信息是不能够进行剪切、拷贝和粘贴操作的。由于DBMemo组件中包含着大量的文本信息,当指针移动时要更新显示其中的信息需要花费很多的时间,用户可以通过AutoDisplay属性来控制是否自动显示表中的备注型字段。当AutoDisplay设置为False时,在DBMemo组件中只显示其对应表中的字段名而不显示字段中的文本信息,用户如果想浏览字段中的文本信息,用鼠标左键双击DBMemo组件的内部即可;当设置AutoDisplay属性为True时,在DBMemo组件中会自动地显示其对应数据库表中的字段值。

DBImage组件。与DBMemo组件类似,它是用来显示和编辑数据库表中的BLOB类型的位图图像字段的。DBImage的ReadOnly属性值若设定为False,就允许用户对位图图像进行编辑,如将图像剪切或拷贝到剪帖板上或从剪帖板上粘帖到DBImage组件中等操作。

7 DBListBox组件。用来当用户修改字段值时显示一个字段值列表供用户选择。在运行过程中,用户单击其中的可选项可以为DBListBox 组件对应的字段赋值,用户不能自己从键盘上输入一个列表框中不存在的字段值。

8 DBComboBox组件。可以认为它是DBEdit组件和DBListBox组件的合成,DBComboBox的可选项也是在设计阶段由程序设计人员设计的。当用户修改当前记录中的字段时,可以直接输入新的字段,也可以打开下拉式列表框选择其中的一个可选项(受Style属性的限制)。Sorted属性决定列表框中的可选项是否按字母的排列顺序排序。 技巧:DBComboBox组件和ComboBox组件有类似的智能查找功能:当用户在编辑框中输入一个字符或汉字后,打开下拉框,会自动移到与之一个字符相同的选项处,依次下去,用户一般只需输入少量的几个字符就可以找到相应的选项。这在选项比较多的情况下非常有用。当然,Sorted属性必须设定为True,否则可能会找不到所需的选项。

DBLookupListBox组件。该组件提供多个可选项,但这多个可选项是从相关的其它数据库表中读取的,不是设计时手工输入的,这是其特点。ListSource属性指明DBLookupListBox组件列表选项的数据源,这是非常重要的,否则DBLookupListBox组件不知道从何处去获取数据充填列表框。 一般放置DataSource组件和其相连。ListField属性指定要充填列表框的数据字段,可以一次列出多个字段的内容,但只能选择一个字段的内容去给和DBLookupListBox组件指定的字段赋值,所以必须指定关键字段KeyField。 KeyField属性 和ListField属性相配合使用,指明选择列表中的哪个字段内容为DBLookupListBox组件指定的字段(DataField属性指定)赋值,如果列表中只有一个字段,那么KeyField和ListField应相同。KeyField 属性必须指定,此属性允许一次设定多个字段,每个字段之间用分号隔开即可。使用多个列表字段的好处在于,用户在选择KEY字段内容的同时,可以了解有关的其他信息。

DBLookupComboBox组件。此组件结合了DBEdit组件和DBLookupListBox组件的功能,用户可以直接向该组件中输入字段值,也可以从下拉式列表框中选择一个可选项,只是下拉式列表框中的可选项是从相关的其他数据库表中读取来的。其属性设置可参考前面的DBComboBox和DBLookupListBox组件。

注意:上面的四个组件DBListBox、DBLookupListBox 、DBComboBox、DBLookupComboBox只能与Table组件配合使用,而不能与Query组件配合使用。

11 DBCheckBox组件。一般用来和数据表中布尔型字段相连。这样一来用户就不必要再输入True/False了,用起来比较方便。它和CheckBox组件的区别在于:DBCheckBox组件必须和数据表中的布尔型字段相连,而CheckBox的数值在程序中给出。

12 DBRadioGroup组件。和某个字段相连,此字段值只能为DBRadioGroup组件的固定数值之一(由用户选择),用户只能选择一个选项。其Items属性双击可打开选项名称编辑器,在这里输入选项的标题。&#118alues属性双击打开选项对应的数据编辑器,这里输入的数据和前面的Items对应,当用户选择之一个选项时,就会从&#118alues列表选择之一个数据充填到相应的字段。注意:如果没有给出&#118alues属性,那么Items标题就作为数据传递给相应的字段。

13 DBRichEdit组件。和DBEdit组件是一样的,只不过它连接的字段必须是RichText文本格式。DBRichEdit组件没有提供对RichText文本的格式化功能,要想修改文本格式应用程序必须自己来做。当文本格式变化而不是文本本身改变时,应用程序必须明确地将数据源控件的Edit属性置为True,否则无法保存变化后的结果。

14 DBCtrlGrid组件。是很有趣的一个组件,它允许同时开多个面板窗口对记录进行显示、修改,而且这些记录是不相同的,是连续的几个记录(用户设定),用户可同时对多个记录进行修改。ColCount属性指定有几列,RowCount属性指定有几行。Orientation属性有两个值供选择: GoHorizontal—滚动条出现在水平方向,GoVertical—滚动条出现在垂直方向。使用用方法:放置一个DBCtrlGrid组件后,在其“活动”面板(即图中表面光滑没有条纹的左上角面板)中放置数据浏览组件如DBEdit等。只能在活动面板上放组件,其它面板无法放置,运行后每个面板上都会有和活动面板相同的界面。再通过ColCount、RowCount来设定面板的行列数,用Orientation属性设定好滚动条的位置就可以使用了。注意:在滚动条移动时或在面板之间转移焦点时都会自动保存数据。滚动条两端的箭头每按一次和在滑块与箭头之间的空白处单击鼠标移动的记录数是不一样的。前者移动一列或一行,后者移动一个屏幕的记录数。

15 DBChart组件。和Chart组件几乎完全一样,只不过是多了一个功能,就是从数据表中获得数据来制做图形。使用方法:在界面中放置数据集、数据源组件后,放置DBChart组件,双击打开设定界面,和Chart组件不同之处在于在Series选项下,DataSource选项下拉列表中有一项为DataSet,选中后下面会出现数据表选择项,然后在Lables、X、Y中可选择相应的数字字段用来做图。

技巧之一:在DBGrid 中实现类DBComboBox列表方法

要实现的功能:在DBGrid网格中输入字段时,单击字段可出现一个下拉列表(类似于DBComboBox),用户可从中选择需要的字段内容,列表框中是固定的几个选项如男、女等。

实现方法举例:假如数据表中有一个“性别”字段,我们让这个字段具有下拉列表功能。在窗体上放置Table、DataSource、DBGrid组件各一个,将三者搭配起来,不用多讲吧。 双击DBGrid1, 在弹出的Editing DBGrid1.Columns窗口中,单击Add all Fields 按钮, 将Table1的所有字段添加到DBGrid1中。在Editing DBGrid1.Columns窗口,单击选择一个字段如“性别” ,在Object Inspector窗口中, 单击PickList属性后的省略号,在Strings list editor窗口中输入两行,分别为“男”、“女” ,关闭Strings list editor窗口。 将Table1的Active属性设定为True,然后运行程序,鼠标单击DBGrid1中某个记录的性别字段,将会出现一个下拉列表,列表中选项为“男”、“女”,从中选择一个就可以了,也可以手工输入字段内容

技巧之二、在DBGrid 中实现类DBLookUpComboBox列表的方法。

技巧一中的方法适用于选项比较少的字段的表格输入,如果有上千种商品名称,手工输入显然是不合适的,这时我们使用查找字段来实现。下拉列表的内容来自另外一个数据表的相应字段值,比如来自事先制做好的商品名称数据表。

以SQL为例BDE(Borland Databas Engine), 是中最古老的技术,从 2.0加入BDE 技术以后,一直是处理数据库的事实上的标准。BDE 是一个基于驱动程序的体系结构,每一种数据格式或数据源都有一种驱动程序来驱动相近的数据源。BDE 可以很好的支持现在更流行的ODBC API方法,ODBC是一种C/C++ 应用程序编程接口(API ),无论是对任何一种客户/ 服务器关系型数据库管理系统(RDBMS ),还是更流行索引顺序访问方法(ISAM)数据库(Jet、Foxpro), 都能很好的访问。

同时,由于BDE 的驱动程序主要直接来自于第三方开发商,所以,对于像Oracle这些非微软的数据库,执行效率上比较高。正是这些特点,使BDE 技术还是得到了很多数据库开发程序员的欢迎。

ADO 技术是微软提出来的处理关系型数据库和非关系型数据库的新技术,它基于微软被称为OLE DB的数据访问模式,它是专门为了给大范围商业数据源提供访问而设计的,包括传统的关系型数据表、电子邮件系统、图形格式、Internet资源等。ADO 所需内存更少,更适合大流量和大事务量的网络计算机系统。

ADO 顶层有三个对象:Connection、Command、Recordset。

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

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

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

由于ADO 技术的迅速普及,从 5.0 开始,加入了ADO 技术的模块,并逐步成为数据库设计的主流。但是,和VB的ADODC 相比,它还是有所不同的,在数据绑定上,它更多的吸收了BDE 的特点,以做到和原来的程序兼容,同时,它又可以接受标准ADO 技术的各种属

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

dbExpress 是 6.0加入的最新的数据库模块,它不使用缓存,可以快速浏览大量的数据,但是,不使用缓存就不能更改,所以它的标准方式是只读的。它一个重要的特点是交叉平台,可以和Linux 数据库连接,速度相当快。

bde数据库mssql驱动的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于bde数据库mssql驱动,BDE数据库MS SQL驱动详解,2. 与数据库相关的组件主要有哪些?简述这些组件的属性和方法以及它们的使用方法。的信息别忘了在本站进行查找喔。