在这一章里我们主要介绍Delphi的数据访问部件的层次结构 多部件之间的关系 部件的属性 方法 事件以及各部件的应用 这些部件包括
● TSession部件
● 数据集部件(TTable和TQuery)
● TDatasource部件
● 字段对象TField
● 字段编辑器的使用
● TReport部件和TBatchMove部件
我们对这些部件的属性 方法和事件进行一般性的描述 读者在实际使用Delphi开发应用程序时 还可以通过联机帮助获得有关部件更详细的信息
Delphi数据访问部件的层次结构
Delphi提供了强大的开发数据库应用程序的能力 它给用户提供了大量的数据访问部件 以方便程序设计人员开发数据库应用程序 这些部件中 有些部件继承了另一些部件的属性 方法和事件 也就是说多部件之间存在着继承和被继承的关系 各部件的这种关联便构成了一个层次结构
TSession是全局性的部件 在应用程序运行时 它自动地建立 在设计阶段和运行过程中它是一个不可见的部件
TDatabase部件是为开发客户/服务器数据库应用程序时 设置登录的数据库的有关参数的 它在数据访问部件页上
TDataset部件是不可见的 TTable和TQuery部件是由它派生而来的 这两个部件一般被称为数据集部件 它们在数据访问部件页上
TDatasource部件是连接数据集部件和数据浏览部件的桥梁 它在数据访问部件页上
TFields部件对应于数据库表中的实际字段 它既可以在应用程序的运行过程中动态地生成也可以在程序设计阶段用字段编辑器创建 它是不可见的部件 在程序中我们可以通过TField部件来访问数据库记录的各个字段值
Tsession部件及其应用
TSession部件一般用得较少 但它对于一些特殊的应用是很有用的 在每一个数据库应用程序运行时Delphi自动地创建一个TSession部件 程序设计人既不能看见该部件也不能显示地创建一个TSession 部件 但是我们可以在应用程序中全局性地使用TSession部件的属性 方法
TSession部件的重要属性及作用
TSession部件的许多重要属性是用于控制数据库应用程序与数据库的连接的 在一个应用程序中 可以全局性地设置TSession的有关属性值 对与之相连接的磁盘上的数据库进行控制 TSession部件主要有下列属性
Database属性 是TSession中可以进行连接的所有数据库的数据库名字列表 这些数据库的名字常常是实际数据库的别名 包括数据库的路径 用户名 用户登录口令等参数
DatabaseCount属性 是TSession中可以进行连接的所有数据库的数量 它是一个整数
KeepCounnections属性 是一个布尔型属性 用它说明应用程序是否保持与一个非活动数据库的连接 因为对于一个数据库 当该数据库中没有相应的数据集部件(TTable或TQuery)被打开时 该数据库将自动地变成非活动的数据库 缺省情况下 KeePcounnections的值是True 就是说应用程序总是保持着与数据库的连接 即使数据库变成了非活动的数据库时 也是如此 如果将KeepConnections属性设置成False 那么当数据库由活动状态变成非活动状态时 应用程序与该数据库的连接也随之中断
NetFileDir属性 说明BDE网络控制文件的路径名
PrivateDir属性 说明存取临时文件的路径名
TSession部件的方法
TSession部件中的大部分方法是用于向用户提供与应用程序相连接的数据库的信息 如数据库的名字及别名 数据库中的表名以及数据库引擎BDE的有关参数等 在设计数据库应用程序时 想要获取有关数据库的信息 调用TSession部件的下列方法 将会大大简化程序的设计
GetAliasNames方法 调用该方法 我们可以获得数据库引擎BDE中定义的数据库别名
GetAliasParams方法 该方法主要用于获取我们在BDE中定义数据库别名时所说明的参数值 如BDE所在的目录路径以及实际名称等
GetDatabaseNames 方法 调用该方法可以帮助我们获得当前应用程序可以进行连接的所有数据库的名字 数据库的名字是用户使用BDE工具定义的实际数据库的别名
GetDriverNames方法 数据库引擎BDE可以与多种数据库管理系统相连接 如客户/服务器数据库管理系统Oracle Sybase以及本地数据库管理系统dBASE Paradox等 BDE与每一种数据库管理系统进行连接时 都有相应的驱动程序 而且这些驱动程序都可以选择地安装 通过调用GetDriverNames方法 我们可以获得当前BDE安装的数据库驱动程序的名字
GetDriverParams方法 BDE的数据库驱动程序中包含着多个参数 如支持的民族语言 DBMS的版本号 文件块大小等 对于服务器上的DBMS 还有数据库服务器的名字等等
GetTableNames方法 因为每一个数据库都是由多个数据库表组成的 我们通过说明数据库名 然后调用GetTableNames方法 便可以获得该数据库中全部的数据库表的名字
上述这些方法在调用时都需要一个字符串列表作为参数 而且都返回一个字符串列表的值
TSession部件还有一个叫DropConnections的方法用于控制应用程序与数据库的连接 当调用DropConnections方法时 应用程序与所有的数据库的连接将会切断
TSession部件应用举例
例 :我们创建一个应用程序 通过调用TSession有关的方法获取当前应用程序可以进行连接的数据库的名字以及获取其中任意一个数据库中的全部数据库表的名字
通过TSession部件获取数据库的有关信息
窗体中主要使用了两个列表框 其中列表框DatabaselistBox用于显示数据库的名字 列表框TablelistBox用于显示数据库中的表名 程序运行完后数据库的名字显示在DatabaselistBox列表框中 当用户单击DatabaselistBox列表框中的数据库名时 该数据库全部的数据库表的名字将会显示在TablelistBox列表框中 有关的程序代码如下
lishixinzhi/Article/program/Delphi/201311/25161
意思不同,具体如下。
DTF是结构化数据的简写。结构化数据简单来说就是数据库。结合到典型场景中更容易理解,比如企业ERP、财务系统,医疗HIS数据库,教育一卡通,政府行政审批,其他核心数据库等。基本包括高速存储应用需求、数据备份需求、数据共享需求以及数据容灾需求。
BDE是Inprise公司的数据库引擎,它结合了SQLLinks允许程序员通过它能够连接到各种不同的数据库。BDE是Delphi数据库功能的枢纽部分,所有数据库存取使用的例程,均需要通过BDE来处理,因此BDE是连接应用程序和数据库的桥梁。它是由几个DLL模块组成的,各模块分别负责处理一些数据库的相关工作。
1、建立数据库
/建立Oracle登录用户(以ZXDIFSRV为例) 即建立空数据库---------------------------------/
xsl>svrmgrl
svrmgrl>connect system/manager
svrmgrl>
drop user ZXDIFSRV cascade;
CREATE USER "ZXDIFSRV" IDENTIFIED BY "ZXDIFSRV" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" PROFILE DEFAULT;
GRANT "CONNECT" TO "ZXDIFSRV";
GRANT "RESOURCE" TO "ZXDIFSRV";
GRANT UNLIMITED TABLESPACE TO "ZXDIFSRV";
ALTER USER "ZXDIFSRV" DEFAULT ROLE ALL;
svrmgrl>commit;
2、数据库启动
//数据库启动,即启动Oracle Service ORCL
xsl>svrmgrl
xsl>connect interal
xsl>startup
xsl>exit
xsl>sqlplus system/manager
xsl>sqlplus zxdifsrv/zxdifsrv
3、建立一个新访问用户
建立一个新的访问用户与密码:
xsl>svrmgrl
svrmgrll>connect system/manager
svrmgrl>
drop user win2001-900 cascade;
CREATE USER "win2001-900" IDENTIFIED BY "123456" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" PROFILE DEFAULT;
GRANT "CONNECT" TO "win2001-900";
GRANT "RESOURCE" TO "win2001-900";
GRANT UNLIMITED TABLESPACE TO "win2001-900";
ALTER USER "win2001-900" DEFAULT ROLE ALL;
svrmgrl>commit;
4、导入导出数据
导入数据时必须先要建立一个空的数据库
直接进入命令行窗口,可以进行导入导出命令
导入xsl>imp zxdifsrv/zxdifsrv 然后按提示写入文件的路径就可以了(输入时提示要输入用户名,此用户名应该为导入文件的原数据库的用户名,而不是导入的数据库的用户名)
导出xsl>exp zxdifsrv/zxdifsrv 然后按提示写入文件的路径就可以了
启动Oracle,首先要启动OracleServiceORCL服务
5、建立一个表
//在Oracle里system数据库建立一个表Customer
xml>svrmgrl
svrmgrl>connect system/manager
svrmgrl>Create table Customer(
CustID integer,
CustName varchar(20),
Memo varchar(200)
);
commit;
//DB2直接ENTER就可以,不用commit;
svrmgrl>exit
语句已执行
建立成功
/
6、导入数据的另外一种方法
注:不管用哪一种数据库导入的方法,都要先建立一个空的数据库
xml>sqlplus zxdifsrv/zxdifsrv
sql>@ (为要导入的数据库的脚本),然后Enter。
7、delete tablename是删除整个表的内容,而drop tablename是删除表。
运行存储过程用“/”结束
8、数据库后安装配置
把D:\Oracle\network\ADMIN里的tnsnamesora配置下,参照原来的配置就可以了
9、sqlplus远程启动
在命令提示符下输入(此方式必须先进行关闭数据库 *** 作,见14、远程关闭(要求远程数据库必须是已启动),在E:\ORACLE\ORA81\SYSMAN\IFILES目录下生成一个DE_TEST_ZCB_8112ORA文件后,再以此文件启动数据库):
SQLPLUS /NOLOG
CONNECT INTERNAL/ORACLE@TESTSOFTONECOM AS SYSDBA
STARTUP FILE=E:\ORACLE\ORA81\SYSMAN\IFILES\DE_TEST_ZCB_8112ORA
此路径为远程启动服务路径,一般情况下在本地安装目录的ORACLE\ORA81\SYSMAN\IFILES下。
INTERNAL 为用户名,ORACLE为密码,TESTSOFTONECOM为远程服务连接串
Sqlplus远程关闭
SQLPLUS /NOLOG
CONNECT INTERNAL/ORACLE@TESTSOFTONECOM AS SYSDBA
SHUTDOWN
INTERNAL 为用户名,ORACLE为密码,TESTSOFTONECOM为远程服务连接串。
10、TNSNAMESORA配置
在安装目录下,如:E:\Oracle\Ora81\network\ADMIN下用写字板或记事本打开TNSNAMEORA文件,文件内容大概如下:
TESTSOFTONECOM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zcb_8115)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
蓝色部分为安装时录入的信息。
如果该文件没有配置成功,该文件可通过以下步骤进行配置:
1)、在程序菜单中打开NET8 CONFIGURATION ASSISTANT
2)、选择Net8 Configuration Assistant,打开,进入"Net8 Configuration Assistant:欢迎"窗口
2)、选择"本地网络服务名设置",点击"下一步", d出以下窗体;
3)、在"Net8 Configuration Assistant:网络服务名配置"窗口中选择"添加",点击"下一步", d出以下窗体;
4)在"Net8 Configuration Assistant:网络服务名配置,数据库版本"窗口中选择"ORACLE 8I数据库或服务",点击"下一步",d出以下窗体;
5)在"Net8 Configuration Assistant:网络服务名配置,服务名"窗口输入服务名,此服务名跟安装时录入的服务名(SID)相同,录入后,点击"下一步",d出以下窗体;
6)、在"Net8 Configuration Assistant:网络服务名配置,请选择协议"窗口选择"TCP"此时只能选择"TCP",点击"下一步", d出以下窗体;
7)在"Net8 Configuration Assistant:网络服务名配置,TCP/IP协议"窗口输入主机名(如果连接本地数据库,则录入本地计算机名,如果连接远程数据库,则录入远程计算机名),选择默认的"请使用标准端口号1521"(建议最好不要修改),点击"下一步",d出以下窗体;
8)、在"Net8 Configuration Assistant:网络服务名配置,测试"窗口选择"是,进行测试",点击"下一步",d出以下窗体;
9)、当"Net8 Configuration Assistant:网络服务名配置,正在连接"窗口对话框中出现提示"正在连接…测试成功"信息,表示测试通过。此时点击"下一步",进入"Net8 Configuration Assistant: 网络服务名配置,网络服务名"窗口;
10)、在"Net8 Configuration Assistant:网络服务名配置,网络服务名"窗口输入网络服务名,服务名为ORACLE连接串,可任意录入,如:test,点击"下一步",d出以下窗体;
11)、在"Net8 Configuration Assistant:网络服务名配置,是否需要另一个网络服务名"窗口中选择"否",点击"下一步",进入"网络服务名配置完成" 窗口;
12)、在"网络服务名配置完成"窗口中点击"下一步",d出以下窗体;
13)、在"欢迎"窗口点击"完成",退出配置过程
TNSNAMESORA配置完成后,再配置BDE(BDE如何配置略),可通过BDE、PLSQL、SQL EXPLORER和TNSPING命令来测试ORACLE是否连接正确。下面用TNSPING来测试是否连接。
11、配置服务
可以在客户端机器上使用oracle Net Configuration Assistant或oracle Net Manager图形配置工具对客户端进行配置,该配置工具实际上修改tnsnamesora文件。所以我们可以直接修改tnsnamesora文件,下面以直接修改tnsnamesora文件为例:
该文件的位置为: …\network\admin\tnsnamesora (for windows)
…/network/admin/tnsnamesora (for unix)
此处,假设服务器名为testserver,服务名为orcltestservercom,使用的侦听端口为1521,则tnsnamsora文件中的一个test网络服务名(数据库别名)为:
test =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)
)
)
在命令提示符下录入: TNSPING TESTSOFTONECOM
用sqlplus程序通过testtestservercom网络服务名测试,如sqlplus system/manager@testtestservercom
12、易混淆术语介绍
Db_name:对一个数据库(Oracle database)的唯一标识
Db_domain:定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的。
Global_name:对一个数据库(Oracle database)的唯一标识
Service_name:该参数是oracle8i新引进的。
Net service name:网络服务名,又可以称为数据库别名(database alias)。
其他语言
用于开发数据库应用程序的语言中 还可以使用目前数常见的 面向对象程序设计 (OOP)语言 如C++ Objact Pascal等 OOP代表了一种完全不同的程序设计方法 在这种程序设计方法中 活动被定义为在 对象 上发生的 *** 作 而不是作为一系列过程来定义的 在数据库应用程序中使用OOP语言的情况正在不断增加
开发数据库应用程序使用的另一种语言是 宏 语言 宏语言不是一种完全的程序设计语言 它实际上是一个用户手工输入的表 这个表被输入到应用程序中 以便自动执行一定的任务 对于某个特定应用的高级语言 宏语言通常可以在低档DBMS软件中或数据库服务器的前端中找到
最后 还有一种 Query By Example (QBE 范例查询)语言 严格地讲QBE不是一种语言 它是面向用户提供了一个或多个空表的界面 这些空表对应于数据库中的表 用户可以通过键盘选择需要查询的列 并在适当的列中填入条件从而定义查询的检索条件 然后DBMS就把QBE转换成相应的动作 以完成用户要求的查询任务
Delphi的数据库特性及功能简介
直到目前为止 计算机软件的开发分为两个不同的体系 其中一个体系是使用传统的程序设计语言(如Pascal Basic和C等)开发数值控制 数值运算等软件 围绕它们的重点是算术 数据结构以及近年产生的面向对象技术 另一个体系则是通用的数据库管理软件领域(数据库应用程序的开发) 这两个体系的发展都极为迅猛 但是二者并没出现混合渗透迹象 如果使用数据库语言进行传统的算术编程 虽然也能完成相应的功能 但是其编程过程可能极为复杂 如果使用传统的编程语言进行数据库编程 通过调用专用的数据库应用程序接口函数和过程 利用这些函数和过程提供的功能 可能也能做得比较完善 但这做起来大多是极其困难的 而Delphi结合了两个体系的优点 它结合了传统的编程语言Object Pascal和数据库语言的强大功能 它即可以用于传统的算术编程又可以用于数据库编程 特别是Delphi具有强大的数据库功能 利用Delphi的数据库工具 我们根本不需要编写任何Object Pascal代码便可以创建一个简单的数据库应用
Delphi是Borland公司于 年底发布的用于开发数据库应用程序的工具 它是面向对象的 它是目前开发客户/服务器数据库应用程序的强有力的工具 Delphi在Window 以上版本的系统环境下运行 目前具有两个版本 Delphi的标准版本和客户/服务器版本 标准版本包含一个Borland Database Engine的局部拷贝 它允许用户创建能访问dBASE Paradox和Local InterBase 服务器的数据库应用 它还支持具有 ODBC 接口的数据库 Delphi的客户/服务器版本包括Borland SQL Link 它能直接访问 ORACLE SyBase 和Microsoft SQL Server Informix以及InterBase数据库服务器
Delphi可以访问多种数据库管理系统的数据库 凭借窗体(Forms)和报表(Reports) BDE(Borland Database Engine)可以访问诸如Paradox dBASE 本地InterBase 服务器的数据库 也可以访问远程数据库服务器上的数据库(如ORACLE SyBase Informix等客户/服务器数据库中的数据库) 或任何经ODBC(Open Database Connecticity) 可访问的数据库管理系统中的数据库
Delphi的数据库特性
跟其他的应用程序一样 Delphi提供了许多部件以方便地创建数据库应用程序 数据库对象的数据成员既可在设计阶段设置 也可在运行阶段通过程序代码进行设置 Delphi的部件板上提供了两页数据库应用程序开发中所要使用的部件
数据访问页(Data Access Page)上的部件用于直接访问数据库中的数据库表
数据控制页(Data Control Page)上的部件用来与用户交互 显示 修改数据库中的数据
数据库应用程序首先是利用Delphi提供的数据库部件与BDE建立联系 然后再通过BDE与数据库联系 下图阐述了Delphi的数据库工具和部件 Delphi数据库应用程序与BDE 数据源之间的关系
下表概括了Delphi的数据库特性
表 Delphi的数据库特性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
工具和部件 主 要 用 途
──────────────────────────────────────
Data Access Components 访问数据库 数据库表 存贮过程等
──────────────────────────────────────
Data Control Components 与用户交互 提供显示 修改数据库中数据的界面
──────────────────────────────────────
Database Desktop(DBD) 建立 索引 查询数据库表以及访问 编辑来自各数据中的数据
──────────────────────────────────────
ReportSmith 建立 浏览和打印数据库表中的数据
──────────────────────────────────────
Borland Database Engine 数据库应用通过BDE访问dBASE Paradox数据库中的数据(BDE) 和本地InterBase数据库服务器中的数据
──────────────────────────────────────
BDE Configuration 建立和管理BDE与数据库建立连接时所使用的数据库的
Utility 别名
──────────────────────────────────────
Local InterBase Server 它是一个单用户 多例程的本地SQL数据库服务器 可在单机环境下用来开发或测试客户/服务器数据库应用程序 然后再将之扩展成一个访问远程数据库服务器如ORACLE SyBase Informix等
──────────────────────────────────────
InterBase SQL Link 连接Delphi数据库应用程序一本地InterBase服务器的驱动程序
Delphi上述这些特性使得我们创建数据库应用程序通过BDE能够很灵活地与 dBASE Paradox Local InterBase数据库服务器进行连接并可以方便地访问其中的数据 我们在创建一个简单的数据库应用时通过使用Delphi提供的上述工具和部件甚至可以不需编写任何程序
BDE被自动地包含在Delphi中 因此 我们在创建数据库应用程序时 不必关心BDE的有关内容 Delphi的安装程序自动为Paradox dBASE和本地InterBaseServer 安装相应的驱动程序 并建立了有关的配置 DBE Configuration Utility 可以建立应用程序与数据库的连接信息 还可以为数据库设置别名
下表列出了Delphi开发Client/Server应用程序的有关特性 这些特性扩展了 Delphi访问远程数据库的功能 如SQL数据库服务器(ORACLE SyBase Informix Microsoft SQL Server InterBase)
表 Delphi Client/server数据库特性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
工 具 主 要 用 途
─────────────────────────────────
SQL Drivers SQL Drivers中的SQL link和ReportSmith为Delphi数据库应用程序提供了访问远程SQL服务器的驱动程序 如访问ORACLE SyBase Microsoft SQL server Informix Intermix
─────────────────────────────────
lishixinzhi/Article/program/Delphi/201311/25183
静态方式是把SQL命令文作为TQuery部件的SQL属性值进行设置 这样 当执行应用程序时 Delphi便执行TQuery部件SQL属性中设置的SQL命令 如果是SQL中的查询命令 把TQuery部件通过TDataSource部件与数据控制部件相连 查询的结果将会显示在与 TQuery部件相连接的数据浏览部件中 动态SQL语句是指SQL语句中包含一些参数变量 在程序中可以为这些参数赋值 在程序运行过程中 各个参数值是变化的 TQuery部件的SQL 属性中的SQL语句的编写也有两种方法 一种方法是在程序设置阶段便将相应的SQL语句写入到TQuery的SQL属性中 另一种方法是在Delphi开发的应用程序将SQL语句 包含在Pascal代码单元中
在SQL编程中使用TQuery部件的具体方法步骤如下
①为TQuery部件设置DatabaseName属性 它可以是用BDE建立的数据库的别名 或桌面数据库系统中的目录名或数据库服务器中的文件名 如果在应用中使用了TDatabase 部件 那么TQuery部件的DatabaseName属性可以是TDatabase部件中定义的一个数据库别名 详细情况请参看 TDatabase部件的使用 ;
②为TQuery部件设置SQL属性 TQuery部件的SQL属性值就是应用程序要执行的SQL 命令文本 设置SQL属性有两种方法
● 在程序设计过程中 我们可以通过对象浏览器(Object Inspector)编辑SQL属性在Object Inspector中选择SQL属性 这样会打开String List Editor窗口 在其中我们便可以编写SQL命令 我还可以打开Visual Query Builder来编写SQL命令 (只有Delphi的客户/服务器版本才具有这一工具)
● 将SQL命令包含在Pascal代码单元中
在程序运行过程中 首先调用TQuery部件的Close方法关闭当前的TQuery部件 然后调用Clear方法清除SQL属性 并说明新的SQL命令文本 然后调用Add方法 将新的SQL命令文本加入到SQL属性中
③通过调用TQuery部件的Open方法或ExecSQl方法执行 SQL 命令 Open 方法只执行Select命令 ExecSQL方法还可以执行其它的SQL命令 Open方法和ExecSQL 方法的区别我们在后面的章节里会进一步地加以讨论的
如果使用动态SQL语句 首先调用prepare方法 给动态SQL语句中的参数赋值 然后再调用Open方法或ExecSQL方法 调用propare 方法并不是必须的 但是对于要多次执行TQuery部件中SQL属性中的动态SQL语句 调用Prepare可以大大提高TQuery部件执行SQL语句的性能
在TQuery部件中编写简单的SQL查询命令
在这一节里我们将学习如何使用TQuery部件编写简单的SQL查询命令 并在Delphi 应用程序中实现SQL查询
例如 如果我们想查询出表Customer DB中客户的编号和公司名称 我们按下列步骤来实现
①在应用窗体中放置一个TQuery部件 一个TDataSource部件一个TDataGrid部件 并将它们连接起来
②设置窗体TQuery 部件Query 的DatabaseName属性值为DBDEMOS
③双击Object Inspector窗口中Query 的SQL 属性 Delphi 将显示 String List Editor窗口
④在图 中的窗口中输入SQL语句
Select CustNo Company From Custormer;
⑤单击OK按钮 关闭String List Editor窗口
⑥设置Query的Open属性为True
SQL语言编程概述
在Delphi应用程序中的SQL命令语句是包含在TQuery部件的SQL属性中 TQuery部件的SQL属性是TString类型的 也就是说SQL属性值是一个字符串列表 这个字符串列表非常类似于一个字符串类型的数组 有关TString类型的信息请参看联机帮助 在前一节里我们介绍了TQuery部件可以执行两种SQL语句
● 静态SQL语句
● 动态SQL语句
静态SQL语句在程序设计时便已固定下来 它不包含任何参数和变量 例如下面的语句便是一条静态SQL语句
Select From Cusromer Where CustNo = ;
而动态SQL语句 也被称作参数化的语句 在其中间包含着表示字段名或表名的参数 例如下面的语句是一条动态SQL语句
Select From Customer Where CustNo =: Number;
其中的变量Number便是一个参数变量 它由一个冒号引导 在程序运行过程中 必须要为该参数赋值 该条SQL语句才能正确执行 每次运行应用程序时可以为该参数变量赋予不同的值
SQL命令文本的编写
使用String List Editor编写
我们要为TQuery部件的SQL属性设置SQL命令文本时 可以在应用窗体中选择TQuery部件且双击Object Inspector窗口中的SQL属性 这样便打开了String List Editor 窗口 在该窗口中我们便可以编写各种SQL命令 如图 所示
在编写完适当的SQL语句之后 选择 OK 按钮便可以将编辑器中的 SQL 命令文装入到TQuery部件的SQL属性中 选择SAVE按钮可以将编写好的SQL命令保存到一个文件中供以后编程时使用 我们在编写SQL命令文本时还可以选择Load按钮从一个 SQL 命令文件中调入SQL命令 在程序运行过程中 要想设置TQuery部件的SQL属性 必须首先调用Close方法 关闭TQuery部件 然后再调用Clear方法清除SQL属性中现存的SQL命令语句 最后再调用Add方法为SQL属性设置新的SQL命令语句 例如
Query Close {关闭Query )
Query SQL Clear {清除SQL属性中的SQL命令语句}
Query SQL Add( Select From Country )
Query SQL Add( Where Name = ARGENTINA )
在为TQuery部件设置SQL属性时调用Close方法总是很安全的 如果TQuery部件已经被关闭了 调用Close方法时不会产生任何影响 在应用程序中为SQL属性设置新的SQL 命令语句时 必须要调用Clear方法以清除SQL属性中现存的SQL命令语句 如果不调用Clear方法 便调用Add方法向SQL属性中设置SQL命令语句 那么新设置的SQL命令语句会追加在现存SQL命令语句后面 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去
在这里要特别注意的 一般情况下TQuery部件的SQL属性只能包含一条完整的SQL语句 它不允许被设置成多条SQL语句 当然有些数据库服务器也支持在TQuery部件的SQL属性中设置多条SQL语句 只要数据库服务器允许这样 我们在编程时可以为 SQL 属性设置多条SQL语句
lishixinzhi/Article/program/Delphi/201311/25145
问题虽然问得有点不完整,但我知道你们用的C/B模式做的系统,要实现跟数据库连接 *** 作,第一:写一个数据库连接类,第二:配置访问数据库基本元素,可以采用XML形式(配置IP,端口,用户名,密码等),第三:门诊收费系统会提供一个接口调用数据库连接类的。一般像在医院或门诊这地方,一般都是采用配置形式做数据库连接的,直接拿配置文件修改一下连接IP地址就可以了,但确保数据库服务器上有数据库表,有连接配置上还要提供一下服务器IP,端口,和数据库用户名和密码就可以了。在SQL SERVER2008数据库上只做授权 *** 作即可,授权 *** 作可以有用户管理里面进行。允许该用户查询和修改等 *** 作就OK了。希望对你有帮助。
以上就是关于DELPHI基础教程:数据访问部件的应用及编程(一)[1]全部的内容,包括:DELPHI基础教程:数据访问部件的应用及编程(一)[1]、bde和dtf是什么意思、oracle的基础谁能告诉我点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)