| 发表于:2007-10-25 16:46:57 楼主 |
我用odbc drivers连接数据源时会出现(odbc没有执行可选特性)这样的错误,但用sql server连接数据库刚可以运行 请教各位大侠,如何用odbc drivers连接数据源不会出错!~~~急! 存储过程如下: create procedure show_infrm @rk_time datetime, @rk_id varchar(30) output as begin declare @temp varchar(30) --提取游标中的数据 set @rk_id = 'rk'+ convert(varchar(20),year(@rk_time)) if month(@rk_time) <10 set @rk_id = @rk_id +'0'+ convert(varchar(20),month(@rk_time)) else set @rk_id = @rk_id+convert(varchar(20),month(@rk_time)) if day(@rk_time) <10 set @rk_id = @rk_id +'0'+ convert(varchar(20),day(@rk_time)) else set @rk_id = @rk_id+convert(varchar(20),day(@rk_time)) --声明一个局部游标用于提取当前日期的最大票号 declare fetch_maxph cursor local scroll for select max(rk_id) from tb_rk where rk_time> = floor(convert(float,@rk_time)) and rk_time <floor(convert(float,@rk_time))+1 if cursor_status('local','fetch_maxph')= -1 --如果游标未打开,打开游标 open fetch_maxph fetch first from fetch_maxph into @temp close fetch_maxph declare @id int if @temp is null begin set @rk_id = @rk_id+'001' end else begin set @id = convert(int,substring(rtrim(@temp),11,10)) if @id <9 set @rk_id = @rk_id +'00'+convert(varchar(20),@id+1) else if @id <99 set @rk_id = @rk_id +'0'+convert(varchar(20),@id+1) else set @rk_id = @rk_id + convert(varchar(20),@id+1) end select rk_id from tb_rk where rk_id=@rk_id end go 程序如下: with adoquery2 do begin close; sql.clear; sql.add('EXEC show_infrm :rk_time,:rk_id output'); parameters.parambyname('rk_time').value := formatdatetime('yyyy-mm-dd',datetimepicker1.date); parameters.parambyname('rk_id').value:= 'temp'; EXECsql; edit1.text:=parameters.parambyname('rk_id').value; end; |
|
|
|
|