`

freetds bind int64

SQL 
阅读更多

int GetPopList_show(PSTRU_ODBC_POP_LIST * appstruGasInfo)
{
	char lc_sql_state_count[SQLSTATESIZE] = {0};
	char lc_sql_state[SQLSTATESIZE] = {0};
	DBINT result_code = 0;
	int liCount = 0;
	DBPROCESS* dbprocess = NULL;

	try
	{
		//查询数据库
		dbprocess = goDBConnectionPool.GetDBProcess();
		if ( dbprocess == NULL )
			return -1;

		strcpy(lc_sql_state_count, "select count(*) from dbo.t_game_pop_list (nolock) ");
		dbcmd( dbprocess, lc_sql_state_count );
		if( dbsqlexec(dbprocess) == FAIL )
		{
			printf( "Query count(*) failed!\n" );
			return -1;
		}

		if ( (result_code = dbresults(dbprocess)) != NO_MORE_RESULTS )
		{
			if (result_code == SUCCEED)
			{
				dbbind(dbprocess, 1, INTBIND, (DBINT)0, (BYTE*)&liCount);
			}
			else
			{
				printf( "result_code != SUCCEED!\n" );
				return -1;
			}

		}
		else
		{
			return -1;
		}

		while( dbnextrow(dbprocess) != NO_MORE_ROWS )
		{
		}
		printf( "t_chat_label_list liCount:%d\n", liCount );

		sprintf( lc_sql_state, "select top %d user_id, user_level from dbo.t_game_pop_list with (nolock)", liCount );
		dbcmd( dbprocess, lc_sql_state ); 
		if( dbsqlexec(dbprocess) == FAIL )
		{
			printf( "Query top * failed!\n" );
			return -1;
		}

		PSTRU_ODBC_POP_LIST	lpstruGasInfo = NULL;
		lpstruGasInfo = new STRU_ODBC_POP_LIST;
		if ( lpstruGasInfo == NULL )
			return -1;
		memset( lpstruGasInfo, 0, sizeof(STRU_ODBC_POP_LIST) );

		char strUserId[32] ={0};
		while ( (result_code = dbresults(dbprocess)) != NO_MORE_RESULTS )
		{
			if( result_code == SUCCEED )
			{
				//dbbind(dbprocess, 1,  INTBIND,   (DBINT)0,      (BYTE*)&(lpstruGasInfo->mi64UserId));
				dbbind(dbprocess, 1,  STRINGBIND, (DBINT)0, (BYTE*)strUserId);
				dbbind(dbprocess, 2,  TINYBIND,   (DBTINYINT)0,      (BYTE*)&(lpstruGasInfo->mbyUserLevel));
			}
			else
			{
				break;
			}
		}

		PSTRU_ODBC_POP_LIST	lpstruGasInfoTemp = NULL;
		lpstruGasInfoTemp = new STRU_ODBC_POP_LIST[liCount];
		if ( lpstruGasInfoTemp == NULL )
			return -1;
		memset( lpstruGasInfoTemp, 0, liCount*sizeof(STRU_ODBC_POP_LIST) );
		*appstruGasInfo = lpstruGasInfoTemp;

		int n = 1;
		while( dbnextrow(dbprocess) != NO_MORE_ROWS )
		{
			
			memcpy( &lpstruGasInfoTemp[n-1], lpstruGasInfo, sizeof(STRU_ODBC_POP_LIST) );
			lpstruGasInfoTemp[n-1].mi64UserId = _atoi64(strUserId);
			memset(strUserId,0,sizeof(strUserId));
			memset( lpstruGasInfo, 0, sizeof(STRU_ODBC_POP_LIST) );
			n++;
		}

		if ( lpstruGasInfo )
			delete lpstruGasInfo;

		return liCount;
	}
	catch (...)
	{
		return -1;
	}
}
 
分享到:
评论

相关推荐

    freetds的搭建

    ### freetds的搭建 #### 一、简介 FreeTDS 是一套开源软件包,用于在非 Microsoft 环境下实现与 Microsoft SQL Server 的兼容性。它支持两种不同的协议:TDS(Tabular Data Stream)和 RBDMS(Relational Database...

    FreeTDS 0.91

    简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源(如果你喜欢可以称为自由)的程序库,是TDS(表列数据流 )协议的再次实现。它可以被用在Sybase的db-lib或者ct-lib库...

    freetds_mssql.rar

    在Linux环境中,与Microsoft SQL Server (MSSQL)进行数据交互通常需要借助特定的驱动或工具,其中FreetDS是一个开源的解决方案。本教程将详细阐述如何在Linux系统上使用FreetDS来连接和操作MSSQL数据库。 一、...

    freetds最新的版本freetds-patched.tar.gz

    标题中的“freetds-patched.tar.gz”表明这是一个经过修改或优化的Freetds软件包,采用tar.gz格式压缩,通常在Linux环境下使用。"freetds"是开源的数据库连接库,它允许Linux系统连接到如SQL Server(mssql)这样的...

    freetds-0.91v

    《freetds-0.91v:连接SQL Server与Symbian数据库的源代码库》 freetds-0.91v是一款专为Linux系统设计的开源软件,其主要功能是为开发者提供与Microsoft SQL Server和Symbian数据库进行交互的能力。这款软件的核心...

    FreeTDS-0.95版

    FreeTDS最新版本支持SqlServer2008,注意网上的FreeTDS0.91不支持--with-tdsver=7.1以上的SqlServer配置,也就是是说--with-SqlServer2005/2008在FreeTDS0.91下和2000是一样的驱动。

    freeTDS源码

    **FreeTDS源码分析与在Linux系统上安装与配置** FreeTDS是一个开源软件库,它提供了在Unix和Linux系统上与Microsoft SQL Server和Sybase数据库进行通信的能力。标题中的"freeTDS源码"指的是FreeTDS的源代码,用户...

    freetds-1.00.27

    标题“freetds-1.00.27”指的是Freetds的一个特定版本,1.00.27,这是一个开源软件项目,旨在为Unix和类Unix系统提供与Microsoft SQL Server的连接能力。 描述中提到,“Linux下连接SQL Server的必备工具”,确认了...

    freetds-0.91.tar.gz

    《FreeTDS:连接SQL Server与Sybase的开源库》 FreeTDS是开源社区开发的一个库,用于在Unix和Linux系统上与Microsoft SQL Server和Sybase数据库进行通信。其名称"FreeTDS"中的"TDS"代表"Tabular Data Stream",这是...

    freetds.rar

    **标题:“freetds.rar”** **描述:**这个压缩包提供的是Freetds库的跨平台实现,用于在不同的操作系统上(如Windows和Linux)访问Microsoft SQL Server数据库。Freetds是一个开源软件项目,它允许C和C++开发者...

    freetds-0.92.dev.20120124

    "Freetds-0.92.dev.20120124" 是一个特定版本的 Freetds 开源库的开发版本,发布于2012年1月24日。Freetds 是一个开源软件项目,它允许Linux、Unix以及其它非Windows操作系统上的应用程序与Microsoft SQL Server和...

    freetds1.0

    **标题:“freetds1.0”** **描述:**“freetds1.0 是一个可以直接在Linux操作系统上使用的命令行工具,用于连接和操作SQL Server数据库。它已经预先编译完成,用户可以直接安装并投入使用,无需进行复杂的编译过程...

    FreeTDS的应用及移植

    **FreeTDS应用及移植详解** FreeTDS是一款开源的软件库,主要用于在Unix和Linux系统上连接Microsoft SQL Server和Sybase数据库。它实现了TDS(Tabular Data Stream)协议,使得非Windows平台也能轻松地与这些数据库...

    redhat5.2下freetds0.82环境搭建

    在Red Hat 5.2操作系统环境下,安装和配置FreetDS 0.82是一项重要的任务,特别是对于那些需要与Microsoft SQL Server或Sybase数据库进行交互的系统管理员来说。FreetDS是一个开源库,它提供了在Unix和Linux系统上...

    freetds-1.1.tar.gz

    标题中的"freetds-1.1.tar.gz"是一个开源软件包,用于在Unix/Linux系统上与Microsoft SQL Server和Sybase数据库进行通信。Freetds是一个实现了TDS(Tabular Data Stream)协议的库,使非Windows平台上的应用程序能够...

    freetds-0.95.80.tar.gz

    FreeTDS是一个开源的软件项目,它为Unix和Linux系统提供了连接Microsoft SQL Server和Sybase数据库的能力。这个软件包名为“freetds-0.95.80.tar.gz”,表明这是FreeTDS的一个版本0.95.80的源代码压缩包,通常以`....

    freetds安装使用

    ### Freetds在Linux系统上的安装与配置 #### 一、概述 Freetds 是一个开源项目,旨在提供一套兼容 Microsoft TDS (Tabular Data Stream) 协议的客户端库和工具,允许用户通过 ODBC 技术在 Linux 系统上访问运行于 ...

    freetds 文档

    ### freetds 文档知识点详解 #### 一、概述 FreeTDS 是一套开源软件工具,主要用于实现客户端应用程序与 Microsoft SQL Server 和 Sybase 数据库之间的兼容性连接。它支持多种编程语言,包括 PHP,在需要与 MSSQL ...

    freetds-0.95.87.zip_FreeTDS_freetds0.95

    FreeTDS是一个开源库,专为Unix和Linux系统设计,用于与Microsoft SQL Server和Sybase数据库进行通信。这个“freetds-0.95.87.zip”压缩包包含了FreeTDS的版本0.95.87,这是一个稳定且广泛使用的版本,提供了对SQL ...

    freetds-patched.tar.gz linux安装mssql扩展

    【标题】"freetds-patched.tar.gz"是FreetDS的一个补丁版本,用于在Linux系统上安装Microsoft SQL Server的扩展。FreetDS是一个开放源代码的库,它允许Unix和类Unix系统(包括Linux)与Microsoft SQL Server和Sybase...

Global site tag (gtag.js) - Google Analytics