Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 FreeTDS转换SQL BigInt的问题_Sql Server 2008_Biginteger_Freetds_Bigint - Fatal编程技术网

Sql server 2008 FreeTDS转换SQL BigInt的问题

Sql server 2008 FreeTDS转换SQL BigInt的问题,sql-server-2008,biginteger,freetds,bigint,Sql Server 2008,Biginteger,Freetds,Bigint,我在Unix上有一个查询MSSQL数据库的程序。DB将功能公开为一个存储过程,并带有一个BigINT输出参数 在客户端,我们有一个C++程序调用这个进程,并试图从输出参数中获取BigIt。 我们看到的是数据正在被破坏。换句话说,BigInt的垃圾值是从驱动程序返回的 更多信息: 客户: Ubuntu 11.10和freetds 0.64 TDS版本:0.8 与FRIEDS 0.64 链接的自定义C++程序 服务器: MSSQL 2008 返回BigInt作为输出参数的存储过程 注: 我们尝试更改

我在Unix上有一个查询MSSQL数据库的程序。DB将功能公开为一个存储过程,并带有一个BigINT输出参数

在客户端,我们有一个C++程序调用这个进程,并试图从输出参数中获取BigIt。 我们看到的是数据正在被破坏。换句话说,BigInt的垃圾值是从驱动程序返回的

更多信息:

客户:

Ubuntu 11.10和freetds 0.64 TDS版本:0.8 与FRIEDS 0.64

链接的自定义C++程序 服务器:

MSSQL 2008 返回BigInt作为输出参数的存储过程

注:

我们尝试更改存储过程以将BigInt作为第一个结果集返回。如果我们尝试将其作为BigInt读取,则会得到垃圾值。然而,如果我们试着把它当作一个字符串来读,它会被正确地理解

我为驱动程序启用了freetds日志记录,我看到驱动程序认为该值是数字,而不是BigInt

令牌.c:526:处理结果令牌。标记为ac(参数)

令牌c:1526:处理结果。类型=108(数字),变量大小1

令牌c:1547:处理结果。第17栏

token.c:1863:tds_get_数据:列0,类型108,变量大小1

但是,SQL server SP定义将输出参数正确定义为BigInt

    ALTER PROCEDURE [dbo].[SomeSproc] (
    @pParam1        bigint,
    @pReturnCnt     int = 5000,  -- how many records to return
    @pOutParam1    bigint = NULL OUTPUT
) AS
知道为什么会这样吗