+ -
当前位置:首页 → 问答吧 → ADO 返回字符串

ADO 返回字符串

时间:2011-11-14

来源:互联网

(MSSQLSERVER)我的本来意图在于datasnap三层,需要返回一个表的自增长字段(主键),该字段我是通过自定义函数来 获取的,客户端INSERT数据(不包括主键),服务器通过 自定义函数获得主键,来反馈给 客户端.
问题在于:
1,ADO哪个组建能够返回字符串(返回自定义函数的主键);
2,服务端怎么把字符串返回到 客户端;

作者: lch0422   发布时间: 2011-11-14

adoquery就可以返回参数啊,将值作为一个参数输出(存储过程)

作者: bdmh   发布时间: 2011-11-15

同意楼上的

作者: cqs6616   发布时间: 2011-11-15

引用 1 楼 bdmh 的回复:
adoquery就可以返回参数啊,将值作为一个参数输出(存储过程)


没用过。。能简单解释下么

作者: lch0422   发布时间: 2011-11-15

我简单写了个存储过程,但是调用的时候有问题
SQL code

--drop procedure GetBillNo;
create procedure GetBillNo(@OPBillNo varchar(16) output)
AS
BEGIN
  declare @fDate datetime
  select @OPBillNo=CONVERT (VARCHAR(16),GETDATE(),120)
return @OPBillNo;

END;




调用

SQL code

declare @abc varchar(16)
exec  GetBillNo  abc;



错误提示:
将 varchar 值 '2011-11-15 14:24' 转换为数据类型为 int 的列时发生语法错误。

作者: lch0422   发布时间: 2011-11-15

不要return 直接賦值

SQL code
--drop procedure GetBillNo;
create procedure GetBillNo(@OPBillNo varchar(16) output)
AS
BEGIN
  select @OPBillNo=CONVERT (VARCHAR(16),GETDATE(),120)
END;




作者: kaikai_kk   发布时间: 2011-11-15

引用 5 楼 kaikai_kk 的回复:
不要return 直接賦值


SQL code

--drop procedure GetBillNo;
create procedure GetBillNo(@OPBillNo varchar(16) output)
AS
BEGIN
select @OPBillNo=CONVERT (VARCHAR(16),GETDATE(),120)
END;


这样 是没有返回值的

作者: lch0422   发布时间: 2011-11-15

調用

SQL code
declare @abc varchar(16)
exec  GetBillNo  @abc OUTPUT
select @abc

作者: kaikai_kk   发布时间: 2011-11-15