⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s14_01.cpp

📁 本书分为五个部分
💻 CPP
字号:
// S14_01.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#define MAXNAME 256

int _tmain(int argc, _TCHAR* argv[])
{
	RETCODE		retcode;
	char		szCustID[6];
	char		szCompName[41];
	char		szLinkMan[31];
	int			recNum = 0;

	SQLHENV		henv = SQL_NULL_HENV;
	SQLHDBC		hdbc1 = SQL_NULL_HDBC;
	SQLHSTMT	hstmt1 = SQL_NULL_HSTMT;

	UCHAR		szDSN[SQL_MAX_DSN_LENGTH+1] = "CNorthwind",
				szUID[MAXNAME] = "Admin",
				szAuthStr[MAXNAME] = "\0";
	SDWORD		sdODataLength;

	// 分配ODBC环境并保存该环境句柄.
	retcode = SQLAllocHandle (SQL_HANDLE_ENV, NULL, &henv);

	// 通知ODBC, 这是一个ODBC 3.0应用程序.
	retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
		(SQLPOINTER)SQL_OV_ODBC3,
		SQL_IS_INTEGER);

	// 分配一个ODBC连接句柄, 并建立连接.
	retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1);
	retcode = SQLConnect(hdbc1, szDSN, (SWORD)strlen((LPCTSTR)szDSN),
		szUID, (SWORD)strlen((LPCTSTR)szUID),
		szAuthStr, (SWORD)strlen((LPCTSTR)szAuthStr));

	// 连接失败, 可以调用SQLGetDiagRec来查找错误原因.
	if ( (retcode != SQL_SUCCESS) && 
		(retcode != SQL_SUCCESS_WITH_INFO) ) 
	{
		printf("未能成功连接到数据源!\n");
	}
	
	// 连接成功.
	else
	{
		printf("成功连接到数据源!\n");
		
		// 分配语句(SQL语句)句柄, 并进行ODBC处理.
		retcode = SQLAllocStmt(hdbc1, &hstmt1);
		if( retcode == SQL_SUCCESS )
		{
			// 执行SQL查询语句.
			retcode = SQLExecDirect(hstmt1, 
				(unsigned char*)"SELECT * FROM 客户", 
				SQL_NTS);
			if( retcode ==SQL_SUCCESS )
			{
				recNum = 0;
				for( retcode = SQLFetch(hstmt1); retcode == SQL_SUCCESS; 
					retcode = SQLFetch(hstmt1) )
				{
					recNum++;
					// 获取指定列的记录数据.
					SQLGetData(hstmt1, 1, SQL_C_CHAR, szCustID, 6, &sdODataLength);
					SQLGetData(hstmt1, 2, SQL_C_CHAR, szCompName, 41, &sdODataLength);
					SQLGetData(hstmt1, 3, SQL_C_CHAR, szLinkMan, 31, &sdODataLength);
					printf("记录No.%03d: 客户ID=%5s; 公司名称=%-20s; 联系人姓名=%-10s\n",
						recNum, szCustID, szCompName, szLinkMan);
				}
			}
			SQLFreeStmt(hstmt1, SQL_DROP);
		}
	}

	// 清除.
	SQLDisconnect(hdbc1);
	SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);
	SQLFreeHandle(SQL_HANDLE_ENV, henv);

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -