zoukankan      html  css  js  c++  java
  • c++链接数据库测试,中文有问题

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <Windows.h>
    #include <sql.h>
    #include <sqlext.h>
    #include <Sqltypes.h>
    
    
    #include "iostream"
    using namespace std;
    
    /* 检测返回代码是否为成功标志,当为成功标志返回TRUE,否则返回FALSE */
    #define RC_SUCCESSFUL(rc) ((rc) == SQL_SUCCESS || (rc) == SQL_SUCCESS_WITH_INFO)
    /* 检测返回代码是否为失败标志,当为失败标志返回TRUE,否则返回FALSE */
    #define RC_NOTSUCCESSFUL(rc) (!(RC_SUCCESSFUL(rc)))
    
    HENV henv; /* 环境句柄 */
    HDBC hdbc; /* 连接句柄 */
    HSTMT hsmt; /* 语句句柄 */
    SQLRETURN sret; /* 返回代码 */
    char szcode[6]; /* 厂商编号 */
    long cbcode = 0;
    char szname[21]; /* 厂商名 */
    long cbname = 0;
    char szasset[13]; /* 资产总值 */
    long cbasset = 0;
    char szaddress[11];/* 厂商地址 */
    long cbaddress = 0;
    void main(void)
    {
    	/* 申请一个环境句柄 */
    	SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
    	/* 设置环境句柄的ODBC版本 */
    	SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
    	/* 申请一个连接句柄 */
    	SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    	//SQLConnect(hdbc, (SQLCHAR *)"DM4", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS);
    	SQLConnect(hdbc,(SQLCHAR *)"handgame",SQL_NTS,(SQLCHAR *)"root",SQL_NTS,(SQLCHAR *)"handgame",SQL_NTS);
    	/* 申请一个语句句柄 */
    	SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hsmt);
    	/* 立即执行查询厂商登记表的语句 */
    	SQLExecDirect(hsmt, (SQLCHAR *)"SELECT nickname, charguid, exp, platformgold FROM t_char where account = 'ii21';", SQL_NTS);
    	/* 绑定数据缓冲区 */
    	SQLBindCol(hsmt, 1, SQL_C_CHAR, szcode, sizeof(szcode), &cbcode);
    	SQLBindCol(hsmt, 2, SQL_C_CHAR, szname, sizeof(szname), &cbname);
    	SQLBindCol(hsmt, 3, SQL_C_CHAR, szasset, sizeof(szasset), &cbasset);
    	SQLBindCol(hsmt, 4, SQL_C_CHAR, szaddress, sizeof(szaddress), &cbaddress);
    	/* 取得数据并且打印数据 */
    	printf("厂商编号 厂商名 资产总值 厂商地址/n");
    	for (;;) {
    		sret = SQLFetchScroll(hsmt, SQL_FETCH_NEXT, 0);
    		if (sret == SQL_NO_DATA_FOUND)
    			break;
    		printf("%s %s %s %s/n", szcode, szname, szasset, szaddress);
    	}
    	/* 释放语句句柄 */
    	SQLFreeHandle(SQL_HANDLE_STMT, hsmt);
    	/* 断开与数据源之间的连接 */
    	SQLDisconnect(hdbc);
    	/* 释放连接句柄 */
    	SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    	/* 释放环境句柄 */
    	SQLFreeHandle(SQL_HANDLE_ENV, henv);
    }


  • 相关阅读:
    一行代码搞定Dubbo接口调用
    测试周期内测试进度报告规范
    jq 一个强悍的json格式化查看工具
    浅析Docker容器的应用场景
    HDU 4432 Sum of divisors (水题,进制转换)
    HDU 4431 Mahjong (DFS,暴力枚举,剪枝)
    CodeForces 589B Layer Cake (暴力)
    CodeForces 589J Cleaner Robot (DFS,或BFS)
    CodeForces 589I Lottery (暴力,水题)
    CodeForces 589D Boulevard (数学,相遇)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3253499.html
Copyright © 2011-2022 走看看