TSoredProc的关键属性
⑴ DatabaseName属性
DatabaseName属性描述要访问的数据库的名字该属性可以为
● 已定义的BDE别名
● 本地型数据库的目录
● Local InterBase服务器的目录路径和文件名
● TDatabase定义的应用程序别名
在改变DatabaseName之前要使用Close方法将Dataset部件置为非活跃状态
⑵ StoredProcName属性
StoredProcName属性表示服务器上的存储过程名Oracle服务器允许多个具有相同名字的存储过程因此要设置Overload属性来描述执行在Oracle服务器上的存储过程名
⑶ Overload属性
Oracle服务器允许Oracle软件包中存储过程的重载就是说具有相同名字的不同过程设置Overload属性用来描述执行在Oracle服务器上的存储过程如果Overload值为零则假定没有重载如果Overload为则Delphi执行具有同名的第一个存储过程如果值为则执行第二个存储过程
⑷ Params属性
Params属性包含传给存储过程的参数
关键方法
⑴ ParamByName方法
声明function ParamByName(const Value: String) TParam;
ParamByName方法返回Params属性中具有名为Value的元素值一般用该方法在动态查询中给参数赋值
⑵ Prepare方法
PrePare方法准备要执行的存储过程这允许服务器载入存储过程否则准备处理异常
⑶ ExecProc方法
ExecProc方法执行服务器上的存储过程
⑷ Open方法
Open方法打开DataSet部件并将其置于浏览状态这相当于将Active属性置为True对于TStoredProc如果存储过程返回一个结果集则使用Open执行存储过程如果存储过程返回单行早使用ExecProc执行存储过程
TStoreProc使用方法
建立一个StoredProc部件
为数据库服务器上的存储过程建立一个TStoredProc部件的步骤如下
⑴ 从Component Palette的Data Access页选择TStoredProc部件放在数据模块上
⑵ 将TStoredProc部件的DatabaseName属性设置为存储过程所在的数据库名
DatabaseName必须是BDE别名
⑶ 将TStoredProc部件的StoredProcName属性设为所用的存储过程名或者从下拉式
列表框中选择
⑷ 在TStoredProc部件的Params属性中描述输入参数可以使用参数编辑器来设置输
入参数参数编辑器也可让用户察看存储过程返回给应用程序的值
设置存储过程的输入参数察看输出结果参数
许多存储过程需要给它们传入一系列的输入参数以确定处理什么和怎样处理在Params属性中描述这些参数所描述的输入参数的顺序是很重要的它由服务器上的存储过程来确定在设计时最容易和最安全的方法是激活TStoredProc参数编辑器编辑输入参数参数编辑器以正确的次序列出输入参数让你给它们赋值
要激活TStoredProc的参数编辑器
① 选择TStoredProc部件
② 按鼠标右键激活加速菜单(Speed Menu)
③ 选择Define Parameters
参数名列表框显示过程的所有输入输出和结果参数有关输入输出参数的信息从服务器中获得对于某些服务器而方参数信息是不可访问的如Sybase在这种情况下列表框是空的因此必须自己按过程要求的顺序增加输入输出参数
参数类型复选框中描述所选的参数是输入输出还是结果参数如果服务器支持参数可以既是输入又是输出如果在列表框中增添参数就必须设置参数类型
数据类型复选框列出列表框中所选参数的数据类型如果给列表框真善美参数必须设置数据类型
在值编辑框中给输入参数赋值
如果服务器不传递存储过程信息给Delphi则可以用Add按钮给存储过程增添参数Delete按钮则是将增添的参数删除Clear按钮将清除列表框中所有参数
设置完参数后选择OK按钮
在运行时建立参数和参数值
在运行时建立参数可直接访问Params属性Params属性是参数字符串的数组例如下列代码将编辑框的文本赋给数组的第一个字串
StaredProcParams[]Asstring := EditText
也能够用ParamsByName方法通过名字访问参数
StoredProcParamsByName(Company) Asstring := EditText;
准备和执行存储过程
要使用存储过程还必须准备并执行它可以有两种方式准备一个存储过程
● 在设计时通过选择参数编辑器的OK按钮
● 在运行时通过调用TStoredProc的Prepare方法
例如下面的代码准备存储过程的执行
StoredProcPrepare;
要执行准备好的存储过程调用TStroedProc部件的ExecProc方法下列代码演示了准备和执行存储过程
StoredProcParams[] Asstring := EditText;
StoredProcprepare;
StoredProcExecProc;
当你执行一个存储过程它返回输出参数或结果集有两种可能的返回类型单个返回如单值或值集和一群结果集返回很多值
访问输出参数和结果集
存储过程在输出参数数组中返回值如果服务器支持返回值可以是单个结果或者结果集
在运行时访问存储过程的输出参数可以索引Params属性或者用ParamByName方法访问这些值下列表达式都用输出参数设置了编辑框的值
EditText := StoredProcParams[]AsString;
EditText := StoredProcParamsByName(Contact)AsString;
如果存储过程返回结果集则用标准数据相关控制访问和显示值会更有用
在某些服务器上如Sybase存储过程能象查询语句那样返回结果集应用程序可以使用数据相关控制一显示这些存储过程的输出
用数据相关控制显示存储过程返回结果的方法如下
① 将DataSource部件放在数据模块上
② 将DataSource部件的DataSet属性设置为接收数据的TStoredProc部件的名字
③ 将数据相关控制的DataSource属性设为DataSource部件的名字
这样当用于TStoredProc部件和Active属性为True时数据相关控制就能显示从存储过程返回的结果
返回目录DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南
Java程序性能优化让你的Java程序更快更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
[] [] [] []