郁闷啊!通过ADO调用SQL_server的存储过程,但出了一个莫名其妙的问题!!请解,解决就送分!
wh_cd 2003-10-15 01:28:15 我有一个存储过程如下:
CREATE PROCEDURE my_getcoluname
@Table Varchar(20),
@coluname Varchar(200)='' output
AS
select @coluname= @coluname+','+name from syscolumns where id=object_id(''+@Table+'')
set @coluname=substring( @coluname,2,200)
GO
------------------
我在BCB中代码如下:(TName是我的所需查看的表的表名,肯定在库中存在!)
ADOConnection1->Open();
ADOStoredProc1->Close();
ADOStoredProc1->Parameters->Clear();
ADOStoredProc1->ProcedureName = "my_getcoluname";
ADOStoredProc1->Parameters->CreateParameter("@table",ftString,pdInput,20,NULL);
ADOStoredProc1->Parameters->CreateParameter("@coluname",ftString,pdOutput,200,0);
ADOStoredProc1->Parameters->ParamByName("@table")->Value = TName;
ADOStoredProc1->ExecProc();
Field_Name = ADOStoredProc1->Parameters->ParamByName("@coluname")->Value;
ADOConnection1->Close();
---------------------
但结果老是 “ADOStoredProc1->Parameters->ParamByName("@coluname")->Value”的值为NULL,无法转换为String型。
但我在SQL查询分析器中执行,此存储过程又能够正常使用,返回所需的值!!
------------------------------
请高手指点一下,我的代码到底是那儿出了错啊???先谢过大家了!