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);
    }


  • 相关阅读:
    关于c#.net 使用自动生成的TableAdapter类的Insert、update方法无效
    .net 字符流下载 迅雷下载问题
    win7 64位系统下使用Oracle的问题
    使用vs2010发布.net framework2.0的网站出现的 分析器错误
    c博客作业我的第一篇博客
    C博客作业01分支,顺序结构1
    机器学习特训营前四次课总结
    ASP.NET应用程序与页面生命周期
    asp.net 获取文件的详细属性,大小,修改日期,所在位置等
    Json string value cannot have line breaks(解决方法)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3253499.html
Copyright © 2011-2022 走看看