中山男性医院:delphi如何调用存储过程

来源:百度文库 编辑:杭州交通信息网 时间:2024/03/29 22:48:52
我想调用SQL Server 2000中数据库renshiguanlixitong的存储过程:备份,还原。以下是存储过程的源代码:
CREATE PROCEDURE back_up_modal?/*备份
@device_name varchar(80),
@file_name varchar(125),
@logdevice_name varchar(80),
@logfile_name varchar(125)
AS
if EXISTS(select @file_name)
begin
EXEC sp_addumpdevice 'disk',@device_name,
@file_name
BACKUP DATABASE renshiguanlixitongl TO @device_name
end
if EXISTS(select @logfile_name)
begin
EXEC sp_addumpdevice 'disk',@logdevice_name,
@logfile_name
BACKUP LOG renshiguanlixitong To @logfile_name
end
go
CREATE PROCEDURE up_back_modal /*还原
@device_name varchar(80),
@logdevice_name varchar(125)
AS
if EXISTS(select @device_name)
begin
RESTORE DATABASE renshiguanlixitong
From @device_name
end
if EXISTS(select @logdevice_name)
begin
RESTORE LOG renshiguanlixitong
From @logdevice_name
end
GO
以下是使用ADOStoredProc1执行调用备份存储过程的源码
procedure TForm14.BitBtn2Click(Sender: TObject);
begin
with ADOStoredProc1 do
begin
PARAMETERS[1].value:=edit1.Text;
Parameters.ParamByName('@device_name').Value:=edit1.text;
Parameters.ParamByName('@file_name').Value:=edit2.text;
Parameters.ParamByName('@logdevice_name').Value:=edit3.text;
Parameters.ParamByName('@logfile_name').Value:=edit4.text;
prepared:=true;
ExecProc;
showmessage('数据库备份已完成!');
end;
end;
请高人看看,哪里有错误!
备份总是不能执行的!
不胜感激!

程序执行的代码没错
看来是你的存储过程编写上有问题了