PROCEDURE Get_Emp_Proj
BEGIN
FOR SELECT proj_id
FROM employee_project
WHERE emp_no = :emp_no
INTO :proj_id
DO SUSPEND;END
EMP_NO INPUT SMALLINT
PROJ_ID OUTPUT CHAR(5)
该过程带两个参数:
EMP_NO是输入参数,类型是SMALLINT.
PROJ_ID
是输出参数,类型是CHAR(5)
相应地,
EmployeeProjectsQuery的主要属性如下:表18. 18 EmployeeProjectsQuery部件主要属性的取值 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 属 性 属 性 值 ──────────────────────────
DatabaseName EmployeeDemoDB
Params EMP_No(
输入参数,Smallint类型)SQL Select * from
Get_Emp_Proj(:EMP_NO)
━━━━━━━━━━━━━━━━━━━━━━━━━━
TQuery
部件是在SQL语句中直接调用存储过程。下面是客户端的程序:
procedure TFrmQueryProc.FormShow(Sender: TObject);
begin
DmEmployee.EmployeeTable.Open;
EmployeeSource.Enabled := True;
with EmployeeProjectsQuery do if not Active then Prepare;
end;
用
Prepare显式地准备SQL语句,虽非必须,但可以优化SQL的执行。procedure TFrmQueryProc.EmployeeDataChange(Sender: TObject; Field: TField);
begin
EmployeeProjectsQuery.Close;
EmployeeProjectsQuery.Params[0].AsInteger :=
DmEmployee.EmployeeTableEmp_No.Value;
EmployeeProjectsQuery.Open;
WriteMsg('Employee ' DmEmployee.EmployeeTableEmp_No.AsString
' is assigned to ' IntToStr(EmployeeProjectsQuery.RecordCount)
' project(s).');
end;
该事件处理过程与
EmployeeSource的OnDataChange属性相联。用于当EmployeeTable数据记录变化时,修正存储过程的输入参数,并执行SQL语句。2. TStoredProc部件的存储过程编程
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




