用的是adostoreproc调用
with storequery do
begin
Close;
Parameters.ParamByName('@sj').value:='2004-6-3';//sj为输入参数
ExecProc;
end;
//////////////////
///////////
存储过程代码SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER proc test
( @sj datetime)
as
begin
declare @year char(4),@month char(2),@ny char(6)
SET @year=str(year(@sj),4)
set @month=str(month(@sj),2)
if len(ltrim(rtrim(str(month(@sj),2))))=1 set @month='0'+ltrim(rtrim(@month))
set @ny=@year+@month
select * from dd_tz where rq=@ny
endGO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
///////////////////////
with storequery do
begin
Close;
Parameters.ParamByName('@sj').value:='2004-6-3';//sj为输入参数
ExecProc;
end;
//////////////////
///////////
存储过程代码SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER proc test
( @sj datetime)
as
begin
declare @year char(4),@month char(2),@ny char(6)
SET @year=str(year(@sj),4)
set @month=str(month(@sj),2)
if len(ltrim(rtrim(str(month(@sj),2))))=1 set @month='0'+ltrim(rtrim(@month))
set @ny=@year+@month
select * from dd_tz where rq=@ny
endGO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
///////////////////////
为什么会出现错误“[microsoft][odbc sql server drivers] 没有执行可选特性”这个“没有执行可选特性”是什么?难道调用的不对,以前没有用过存储过程。
但是在delphi中执行,还是那个错误,SQL SERVER的事件查看器没有数据,应该是在delphi这断有问题,
ADOQuery.SQL.clear;
ADOQuery.SQL.Add('exec 存取过程名 参数');
ADOQuery1.ExecSQL;
这是我执行一个存取过程的代码,可以的! with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('exec p_update_charge '''+dbkeep+''','''+dbpath+''','''+dbname+''','''+dbdate+''''); //调用导入拆机表存取过程
ADOQuery1.ExecSQL;
end
用adoquery可以,用adostopro就是不行