`

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 0.91

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

    freetds_mssql.rar

    linux使用freetds链接mssql

    FreeTDS-0.95版

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

    freetds-1.1.tar.gz

    php5.6,安装mssql扩展 yum install php56w-mssql ,下载了好多的0.92版本的freetds,都不能用,使用这个freetds-1.1版本,很快就能连接到mssql

    freetds-0.92.dev.20120124

    freetds-0.92.dev.20120124

    freetds-current.tar.gz

    安装:freetds 下载地址:http://www.freetds.org/software.html tar -zxvf freetds-patched.tar.gz cd freetds-dev.1.00.63 ./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib make...

    freetds-patched.tar.gz

    FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS的安装 1.下载freetds。 2.将其解压到任意目录,进入到解压后的文件夹里。 3.切换到root用户,配置: ./configure –prefix=/usr/...

    freetds-0.91v

    软件名称:freetds 版本号:0.91v 类型:源代码软件 软件作用:连接SQLSERVER或是塞班数据库的一款软件,并且提供给连接数据库的函数接口

    unixODBC+freeTDS移植.txt

    unixODBC+freeTDS移植.txt

    freetds-0.95.92.tar.gz

    FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS的安装 1.下载freetds。 2.将其解压到任意目录,进入到解压后的文件夹里。 3.切换到root用户,配置: ./configure –prefix=/usr/local ...

    Freetds(Linux下连接MSS工具)

    Freetds Linux下工具,本人已在RHEL5.8系统测试使用,用于连接microsoft sql server,

    FreeTDS的应用及移植

    本文档主要介绍了在linux下通过FreeTDS访问SQL数据的相关操作,以及如何移植FreeTDS到板端

    freetds的搭建

    很实用的搭建方法介绍,有用,自己总结的,实践过的。

    freetds.rar

    跨平台实现freetds库访问sqlserver,内含windwos下c++实现所需要的.lib以及.dll,还包含linux下c++实现所需要的.a文件,并附有测试代码!

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

    在Linux下连接windows数据库的工具最新版1.1.4 保证有用!

    freetds-dev.1.00.514.tar.gz

    freetds源码包,可以直接./configure make makeinstall安装,doc中有freetds的介绍和使用说明

    freetds-0.64.tar.gz

    freetds-0.64.tar.gz

    freetds-0.91.tar.gz

    freetds-0.91.tar.gz 也可以去这里下载http://www.freetds.org/

    freetds-1.1.26.tar.gz

    freetds-1.1.26.tar.gz from http://www.freetds.org/files/stable/ 方便下载使用

    freetds-0.95.80.tar.gz

    FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库。 在CentOS7上安装成功。

Global site tag (gtag.js) - Google Analytics