【SQL开源代码栏目提醒】:网学会员--在 SQL开源代码编辑为广大网友搜集整理了:一个简单的ODBC数据库连接源代码 - 计算机教材绩等信息,祝愿广大网友取得需要的信息,参考学习。
int _tmainint argc _TCHAR argv //1.创建环境句柄 HENV henv RETCODE rcode rcode ::SQLAllocEnvhenv if rcode
SQL_SUCCESS //MessageBox0 _T创建环境句柄成功 _T成功 MB_OK else MessageBox0 _T创建环境句柄失败 _T失败 MB_OK //2.建立连接句柄 HDBC hdbc rcode ::SQLAllocConnecthenv hdbc if rcode
SQL_SUCCESS //MessageBox0 _T建立连接句柄成功 _T成功 MB_OK else MessageBox0 _T建立连接句柄失败 _T失败 MB_OK //2附加.动态创建数据源 //::SQLConfigDataSource //3.进行实际数据源链接 rcode ::SQLConnecthdbcSQLCHAR 数据源名称 10 SQLCHAR 用户名 9 SQLCHAR 密码 12 if rcode
SQL_SUCCESS rcode
SQL_SUCCESS_WITH_INFO //MessageBox0 _T连接数据库成功 _T成功 MB_OK //4.获得错误信息 if rcode
SQL_SUCCESS_WITH_INFO SQLCHAR temp256 SQLINTEGER temp1256 SQLCHAR temp2256 SQLSMALLINT temp3256 SQLErrorhenv hdbc 0 temp temp1 temp2 256 temp3 int a 0 a //5.分配句柄 HSTMT hstmt rcode ::SQLAllocStmthdbc hstmt ifrcode
SQL_SUCCESS // 连接句柄创建成功 //MessageBox0 _T分配句柄成功 _T成功 MB_OK else MessageBox0 _T分配句柄失败 _T失败 MB_OK //6.执行
SQL语句 // LPTSTR pszSQL // strcpypszSQL _TSELECT FROM STAFF rcode ::SQLExecDirecthstmt UCHARSELECT FROM STAFF
SQL_NTS ifrcode
SQL_SUCCESS //
SQL 语句执行成功 // 执行其它操作 //MessageBox0 _T查询成功 _T成功 MB_OK //绑定数据 SQLSMALLINT count SQLNumResultColshstmt count SQLCHAR pszName15 SQLSMALLINT URealLength SWORD wColumnCount UWORD wColumnIndex 2 SWORD wColumnType UDWORD dwPrecision SWORD wScale SWORD wNullable rcode ::SQLDescribeCol hstmt wColumnIndex // 列的索引 pszName // 列的名称 256 // 存放列名称的缓冲区大小 URealLength // 实际得到列名称的长度 wColumnType // 列的数据类型 dwPrecision // 精度 wScale // 小数点位数 wNullable // 是否允许空值 //MessageBox0 count _T成功 MB_OK //7.获取数据 WCHAR name10 //rcode ::SQLBindColhstmt 2wColumnType name 10 0 //修改id实验 wColumnIndex 6 rcode ::SQLDescribeCol hstmt wColumnIndex // 列的索引 pszName // 列的名称 256 // 存放列名称的缓冲区大小 URealLength // 实际得到列名称的长度 wColumnType // 列的数据类型 dwPrecision // 精度 wScale // 小数点位数 wNullable // 是否允许空值 float eye rcode ::SQLBindColhstmt 1wColumnType eye 1 0 //修改id实验__end SQLFetchhstmt // name0 L小 // name1 L明 eye 1.33f rcode SQLEndTranSQL_HANDLE_STMT hstmt
SQL_COMMIT ifrcode
SQL_SUCCESS SQLCHAR errorcode256//错误
代码 SQLINTEGER temp1256 SQLCHAR information256//错误详细信息 SQLGetDiagRecSQL_HANDLE_STMT hstmt 1 errorcodetemp1information256NULL bool a 0 //LPWSTR strss //::MultiByteToWideCharCP_THREAD_ACP MB_COMPOSITE name.GetBuffer -1 str.GetBuffer 10 a else MessageBox0 _T
查询失败 _T失败 MB_OK SQLCHAR errorcode256//错误
代码 SQLINTEGER temp1256 SQLCHAR information256//错误详细信息 SQLGetDiagRecSQL_HANDLE_STMT hstmt 1 errorcodetemp1information256NULL int a 0 a else MessageBox0 _T连接数据库失败 _T失败 MB_OK //::GetErrorInfo //systempause return 0