在delphi中如果写存储过程或者函数!! 我做delphi添加的时候,每次都要写,很麻烦,想写个添加的存储过程,然后每次做添加的时候调用,通用的添加函数,不知道如何写?如何调用?我刚学delphi,还希望大家帮忙!给段代码!!谢了!!用adoquery控件做添加! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CREATE procedure add_new( p_id in number, p_name in varchar2, p_addr in varchar2) is begin insert into liudzh.liu_table values(p_id,p_name,p_addr); commit; end; with StoredProc1 do for i := StrToInt(Edit1.text) to StrToInt(Edit4.Text) do try StoredProc1.Params[0].AsInteger := i; StoredProc1.Params[1].AsString := Edit2.Text+IntToStr(i); StoredProc1.Params[2].AsString := Edit3.Text+IntToStr(i); StoredProc1.Prepare; StoredProc1.ExecProc; except ShowMessage('error'); end; 用adoquery也可以调用 如: adoquery1.close ; adoquery1.sql:= '{call procedurename (vlaues)}'; adoquery1.open ;//有结果集返回 adoquery1.execsql //无结果集返回 对于存储过程的调用使用的控件TADOStoredProc。创建方法和连接都很简单。StorPro:=TADOStoredProc.Create(nil);然后定义存储过程的名字和输入参数:StorPro.ProcedureName:=ProName;StorPro.Parameters.clear;StorPro.Close;StorPro.Parameters.CreateParameter('as_gh', ftString, pdInput , 10, NULL);StorPro.Parameters.CreateParameter('as_in', ftString, pdInput , 100, NULL);StorPro.Parameters.CreateParameter('as_out', ftString, pdOutput , 255, NULL);大家可能看到函数CreateParameter中的第3个参数,pdInput 就是用来定义此参数是输入参数函数输出参数。具体的参数函数是:存储过程参数名称、类型、输入输出参数类型、长度还有就是最后一个参数Delphi帮助中说是Value: OleVariant,不过我没有用过。一般我赋值为NULL。上面的过程是定义这个存储过程的参数。在调用的时候自然需要给参数赋值。赋值过程为(其中WorkID和DataID是事先定义好的两个变量):StorPro.Parameters[0].value :=WorkID;StorPro.Parameters[1].value :=DataID;赋值完成后运行此存储过程:StorPro.prepared:=true;StorPro.ExecProc;好了存储过程调用以后,我们希望得到这次存储过程返回的参数'as_out'的值。fxh7622:=StorPro.Parameters.parambyname('as_out').Value;这个时候存储过程返回的值就保存在了fxh7622里面。其实获得存储过程的返回值比较简单,希望对大家有帮助。 添加记录?直接生成一个insert values的sql字符串,不就行了通用的添加记录的存储过程,还不是一样要指定哪个表、哪些字段和对应的值 除非用ORMapping,否则都需要重复地一遍遍写插入语句 MaskEdit 日期格式 如何知道定义的枚举类型的个数(想了又想) 有關在線程中操作數據庫問題 请教:数据库备份问题 寻求:delphi8的试用版下载连接! 怎么把字符串类型的“1”转化为数值型的1 关于ADO调用ACCESS数据库 delphi里的dbgrid能实现行的拖动吗? 怎样取得计算机名?或者怎样在局域网中取得服务器的名字?谢谢 老狼,拿命来!!! Tservice应用运行后为何在任务管理器中看到进程? delphi 中dbgrid 行高怎么设置?
p_id in number,
p_name in varchar2,
p_addr in varchar2)
is
begin
insert into liudzh.liu_table values(p_id,p_name,p_addr);
commit;
end;
with StoredProc1 do
for i := StrToInt(Edit1.text) to StrToInt(Edit4.Text) do
try
StoredProc1.Params[0].AsInteger := i;
StoredProc1.Params[1].AsString := Edit2.Text+IntToStr(i);
StoredProc1.Params[2].AsString := Edit3.Text+IntToStr(i);
StoredProc1.Prepare;
StoredProc1.ExecProc;
except
ShowMessage('error');
end;
用adoquery也可以调用
如:
adoquery1.close ;
adoquery1.sql:= '{call procedurename (vlaues)}';
adoquery1.open ;//有结果集返回
adoquery1.execsql //无结果集返回 对于存储过程的调用使用的控件TADOStoredProc。
创建方法和连接都很简单。
StorPro:=TADOStoredProc.Create(nil);
然后定义存储过程的名字和输入参数:
StorPro.ProcedureName:=ProName;
StorPro.Parameters.clear;
StorPro.Close;
StorPro.Parameters.CreateParameter('as_gh', ftString, pdInput , 10, NULL);
StorPro.Parameters.CreateParameter('as_in', ftString, pdInput , 100, NULL);
StorPro.Parameters.CreateParameter('as_out', ftString, pdOutput , 255, NULL);
大家可能看到函数CreateParameter中的第3个参数,pdInput 就是用来定义此参数是输入参数函数输出参数。具体的参数函数是:存储过程参数名称、类型、输入输出参数类型、长度还有就是最后一个参数Delphi帮助中说是Value: OleVariant,不过我没有用过。一般我赋值为NULL。
上面的过程是定义这个存储过程的参数。在调用的时候自然需要给参数赋值。
赋值过程为(其中WorkID和DataID是事先定义好的两个变量):
StorPro.Parameters[0].value :=WorkID;
StorPro.Parameters[1].value :=DataID;
赋值完成后运行此存储过程:
StorPro.prepared:=true;
StorPro.ExecProc;
好了存储过程调用以后,我们希望得到这次存储过程返回的参数'as_out'的值。
fxh7622:=StorPro.Parameters.parambyname('as_out').Value;
这个时候存储过程返回的值就保存在了fxh7622里面。
其实获得存储过程的返回值比较简单,希望对大家有帮助。
添加记录?
直接生成一个insert values的sql字符串,不就行了
通用的添加记录的存储过程,还不是一样要指定哪个表、哪些字段和对应的值