在一个局域网环境下,应用程序调用服务器上sql库的存储过程来更新数据库
方式1
用StoredProc1连接服务器上的updateMan存储过程更新
方式2
Query1.close;
Query1.sql.clear;
query1.sql.add('exec uupdateMan');
query1.open;那种方式的效率高呢?如何来提高应用程序连接服务器数据库的速度。现在简直慢死了。更新一条记录要十几秒!!!!!!!!!!!
方式1
用StoredProc1连接服务器上的updateMan存储过程更新
方式2
Query1.close;
Query1.sql.clear;
query1.sql.add('exec uupdateMan');
query1.open;那种方式的效率高呢?如何来提高应用程序连接服务器数据库的速度。现在简直慢死了。更新一条记录要十几秒!!!!!!!!!!!
再看一下你的网络是不是通畅.
存储过程如下:ALTER PROCEDURE sf_User_Change_Insert
(
@ID varchar(5)
)
AS
declare @tran_Update varchar(32)
declare @ErrorCharge int
declare @ErrorUserInfo int
declare @Error varChar(100)select @tran_Update='my_tran_Update'
begin transaction @tran_Update declare @count int
select @count=count(*) from userInfo
where ID=@ID
if @count<=0
begin insert Table1 ......--插入新记录操作
set @ErrorCharge=@@Error
end
update table2 --更新表2记录
set @ErrorUserInfo=@@Errorif @ErrorCharge=0 and @ErrorUserInfo=0
begin
commit transaction my_tran_Update
set @Error='成功'
end
else
begin
set @Error='失败';
Rollback TRAN my_tran_Update
endSelect @Error as Error在应用程序里判断Error的返回值
返回成功打印,返回失败出提示。
而现在就在服务器反应慢的时候,返回成功并打印。但事后到数据库里查看没有插入的记录。
晕了.................................................
楼主可参看李维写的那本《Delphi 5.X Ado/mts/com+高级程序设计篇》,里面对ADO有详细的介绍,应该对你有用...