1. 程式人生 > >C++通過ODBC連線資料庫

C++通過ODBC連線資料庫

有很多種連線資料庫的方法,得一種一中的鑽研學習,

這裡,我用的是一種比較基本的比較老的資料庫連線方法,就是通過微軟給提供的ODBC SQLAPI庫來連線

具體的原理,我就不在這掉書袋了,大家都大體清楚,深層的就沒有研究過。

先貼出直接查詢的程式碼:

#include <windows.h>
#include <stdio.h>
#include <sql.h>
#include <stdlib.h>
#include <sqlext.h>
#include <string.h>
#include <iostream>
/*
 *一般情況下,如果返回的錯誤碼retcode < 0,就說明沒有處理得當,就是錯誤的
 */

using namespace std;

int main()
{
	HENV henv;
	HDBC hdbc;
	HSTMT hstmt;
	RETCODE retcode;

	SQLAllocEnv(&henv);
	SQLAllocConnect(henv, &hdbc);

	retcode = SQLConnect(hdbc,(unsigned char *)"myDB", SQL_NTS, NULL, 0, NULL, 0);
	
//	cout << retcode << endl;

	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
	{
		cout << "連線成功" << endl;
	}
	else
	{
		cout << "連線失敗" << endl;
	}
	
	retcode = SQLAllocStmt(hdbc, &hstmt);
	retcode = SQLExecDirect(hstmt, (unsigned char*)"SELECT * FROM student", SQL_NTS);
	
	char *sno = new char[256];
	char *sname = new char[256];
	char *ssex = new char[256];
	char *sage = new char[256];
	char *sdept = new char[256];

	long columnlen;

	SQLBindCol(hstmt, 1, SQL_CHAR, sno, 256, &columnlen);//這個語句可不能寫錯,裡面的256,代表的是字串的最大長度.
	SQLBindCol(hstmt, 2, SQL_CHAR, sname, 256, &columnlen);
	SQLBindCol(hstmt, 3, SQL_CHAR, ssex, 256, &columnlen);
	SQLBindCol(hstmt, 4, SQL_CHAR, sage, 256, &columnlen);
	SQLBindCol(hstmt, 5, SQL_CHAR, sdept, 256, &columnlen);
	
	if (retcode < 0)
	{
		cout << "沒有執行語句" << endl;
	}
	retcode = SQLFetch(hstmt);

	while (retcode == SQL_ROW_SUCCESS || retcode == SQL_ROW_SUCCESS_WITH_INFO)
	{
		if (retcode == SQL_ROW_SUCCESS || retcode == SQL_ROW_SUCCESS_WITH_INFO)
		{
			printf("%s\t%s\t%s\t%s\t%s\n", sno, sname, ssex, sage, sdept);
			retcode = SQLFetch(hstmt);
		}
	}
	SQLFreeConnect(hdbc);
	SQLFreeEnv(henv); 
	return 0;
}


相關推薦

C++通過ODBC連線資料庫

有很多種連線資料庫的方法,得一種一中的鑽研學習, 這裡,我用的是一種比較基本的比較老的資料庫連線方法,就是通過微軟給提供的ODBC SQLAPI庫來連線 具體的原理,我就不在這掉書袋了,大家都大體清楚,深層的就沒有研究過。 先貼出直接查詢的程式碼: #include &l

linux下 WMB通過ODBC連線資料庫

目前環境: ESB版本:wmb8.0 資料庫:Oracle 10g 系統:linux 6.4 現在要mb要通過odbc連線到資料庫 1.配置ODBC檔案 (a)從MB的安裝目錄/opt/ibm/mqsi/8.0.0.1/ODBC/unixodbc複製odbc.ini,od

MATLAB通過ODBC連線資料庫方法

## MATLAB通過ODBC連線資料庫方法 #### 1、首先建立資料庫,我在這裡用到的是MySQL 8.0 #### 2、建立ODBC資料來源,參考連結: #### https://www.cnblogs.com/benpao1314/p/10120700.html; ![](https://im

windows下QT如何通過ODBC連線達夢資料庫

1.首先需要保證你的QT編譯器位數和DM資料庫位數一致,否則無法連線成功。 2.配置資料來源。 資料來源在控制面板中的管理工具裡面,如下圖。 如果資料庫是32位的就用32位的資料來源,64位的

javascript連線mysql與php通過odbc連線任意資料庫

腦洞大開用javascript連結mysql,2個小時總算實現了,用到了odbc,後面又想到用php連結odbc連結資料庫,也實現了,就把案例放一下。 注意事項: 1.javascript連線mysql使用的是”new ActiveXObject“這個物件,這個物件只有IE

C/C++使用ODBC連線MSSQL資料庫

前幾天在研究C/C++連結MSSQL資料的方法,前前後後在網上找了不少的文章,大多數文章都沒法真正的解決入門新手的全部疑惑,所以在此整理一下自己整個連線資料庫的過程,希望能幫到有需要的人。 一、首先是MSSQL server的安裝,相信有不少同學會卡在這邊。我安裝的是MS

C/C++使用ODBC連線Microsoft SQL server資料庫

因為最近要用C對SQL Server進行連線,但發現網上關於這方面的資料不多,就把這兩天查到的資料和心得歸攏了下,留著以後自己看。 使用C語言通過ODBC(開放式資料庫互連)對SQL Server進行連線,分為兩步操作:1.配置本地ODBC環境;2.碼程式碼...=_= 【首先配置本地環境】1.啟動

C++ODBC連線資料庫

最近學習ODBC api連線oracle資料庫,這是找到的比較靠譜的底層程式碼,經過封裝可以使用 #include <stdio.h> #include <iostream.h> #include <string.h> #inclu

求助!!!php通過odbc連線intersystems cache資料庫獲取片段亂碼,求大神指點。

跟一家醫院對接,他們用的是intersystems cache資料庫,在本地建立了odbc資料來源,我用PHP連線上並且得到了資料。 但是得到的資料遍歷打印出來發現,欄位超過200位元組的部分就亂碼,沒有超過200位元組的全都正常。 用php的mb_detect_encod

vs2013建立MFC專案通過ODBC連線mysql資料庫

1.用ODBC連線mysql 右鍵空白部分-》類嚮導-》新增類-》MFC ODBC使用者-》資料來源-》機器資料來源-》新建-》使用者資料源(點選下一步)-》Mysql ODBC Unicode Driver-》完成 出現下圖: 填寫資料,點選test。連線成功選擇OK

通過ODBC連線達夢資料庫

環境:達夢、centos、C++1、需要在目標機器上安裝達夢的client端,當然server和client一起安裝也可以的;2、需要配置ODBC,安裝unixODBC; unixODBC的安裝參考:去官方網站下載一個 uniODBC2.3.1cd /opttar -zxvf

使用ODBC連線資料庫[C++]

使用ODBC連線資料庫 walrus 發表於 2006-6-21 22:05:00   SQL

Cognos安裝及通過ODBC連線Tibero資料庫

1   環境資訊 Cognos BI Server 10.2 64Bit.rar Tibero 5sp1 64bit.exe  本手冊中cognos安裝環境為win8.1 64bit  本手冊中cognos資料庫為oracle 10g 32bit  本手冊中cogno

複習之shiro安全框架(三)——通過jdbcRealm連線資料庫

shiro提供jdbcRealm連線資料庫 這裡要連線資料庫所有要依賴一些jar包 <dependency> <groupId>org.apache.shiro</groupId>

【筆記】LR配置ODBC連線資料庫進行引數化

很多時候我們需要大量的引數資料,但是光光靠手填寫是非常麻煩的,既然被測物件的資料都在資料庫,那麼我們直接讀取資料庫回來就輕鬆簡便很多。 data  wizard 提供了一個從ODBC的連接獲得資料轉化成引數的過程。過程如下: 一、配置ODBC ①開啟windows 下的控制面板下的管理工具

通過JDBC連線資料庫再向資料庫裡錄入資料

一  首先第一步我們現在資料庫裡建立一張examstudent空表: 二 接著對應著表裡內容建立一個學生類: package com.atguigu.jdbc; public class Student { // 流水號 private int flowId;

EXCEL 通過ODBC連線ORACLE, 匯出表或資料透視表進行分析

本意是通過直接匯出oracle中的表,進行快速的資料分析。 注意點: 本文是Excel中通過ODBC連線oracle,所以需要注意的一個問題是,EXCEL和ODBC,oracle的位數必須一致,在測

ODBC連線資料庫提示“ [Microsoft][ODBC 驅動程式管理器] 在指定的 DSN 中,驅動程式和應用程式之間的體系結構不匹配”的解決方法

出現這個錯誤的原因是因為使用的電腦是64位的,但是mysql的64位ODBC驅動跟qt的ODBC驅動不知道有哪裡不相容,所以會出現連線不上的情況。重新安裝mysql的32位ODBC驅動進行配置,再次連線即可(64位機用32位驅動才能正常工作,這不科學= =)。 ====

C++通過OCILIB連線Oracle

先附上參考 http://blog.csdn.net/rznice/article/details/74466123 準備:1.ocilib,直接百度然後有個GitHub的連結,我這邊下的是ocilib-4.4.0-windows.zip 2.VS2012/15/17均可 3.Or

MFC介面程式設計基礎(22):MFC ODBC連線資料庫

上一篇:MFC介面程式設計基礎(21):一個簡單的CArchive類用法的示例(Ex_Archive) 下一篇:MFC介面程式設計基礎(23):建立並註冊資料來源 ODBC是微軟公司支援開放資料庫服務體系的重要組成