当前位置:主页>销售管理软件> 列表

存储过程的问题 找操作简单的财务软件

进销存软件版1楼: 编写SQL存储过程时,如果想实现调用一次存储过程插入多条记录,存储过程的输入参数应该怎么设置,如果插入的多条记录不是一定的,那参数不是无限的长了么,
请教高手应该怎么解决这个问题,
如果是掉用一次只插入一条记录,反复调用的速度与直接调用SQL语句的速度怎么样

2楼: 传参就行啦。。一次调用效率高些,减少Roundtrip
代码如下,给你参考一下。(delphi 、sql server)
存储过程
CREATE PROCEDURE pro_test
@sqlstr text
AS
exec(@sqlstr)
GO

Delphi代码
var
i : Integer;
sqlstr : String;
begin
with ADOCommand1 do
begin
sqlstr := '''';
conSQL.BeginTrans;

for i := 1 to 10 do
begin
sqlstr := sqlstr + ''insert into tbTest values('' + IntToStr(i)
+ '', '''''' + IntToStr(i) + '''''')''#13#10;
end;

ADOStoredProc1.Parameters.ParamByName(''@sqlstr'').Value := sqlstr;
ADOStoredProc1.ExecProc;

conSQL.CommitTrans;
end;
end; 如操作简单的财务软件

3楼: insert 表名(字段1,字段2) select ''属性1'',''属性2''

4楼: 问题的关键在于:你要插入的这多条记录中的信息的来源是什么?


1.如果这些数据需要程序一一提供,那最好一条一条的往数据库里面写!
2.如果这些数据来自数据库中的其它数据表(通过检索获得的),那么可以考虑在存储过程中读取这些数据,然后插入,以提高效率!

5楼: 个人觉得存储过程完全是一个机械的方案
方便频繁的一个操作
没必要让它支持n多把?

6楼: 我编写的超市前台,是要用到存储过程的 ,
请问wendeyuan1朋友,你提供的代码中#13#10,有什么意义呢

进销存软件版7楼: 多人接受答案了。