#include "stdafx.h" #include <windows.h> #include <windowsx.h> #include <sql.h>//添加的代碼 #include <sqlext.h>//添加的代碼 #include <sqltypes.h>//添加的代碼 #include "resource.h" #include "MainDlg.h" #define LOGIN_TIMEOUT 30//添加的代碼 #define MAXBUFLEN 255//添加的代碼 #define CHECKDBSTMTERROR(hwnd,result,hstmt) if(SQL_ERROR==result){ShowDBStmtError(hwnd,hstmt);return;} //添加的代碼 /* Template designed by RuPeng.com. Please visit http://www.rupeng.com for more information 如鵬網(http://www.rupeng.com)大學生計算機學習社區,提供大量免費視頻學習教程,提供個性化一對一學習指導 */ BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { return TRUE; } void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { DBTest(hwnd); } break; default: break; } } void Main_OnClose(HWND hwnd) { EndDialog(hwnd, 0); } void ShowDBError(HWND hwnd,SQLSMALLINT type,SQLHANDLE sqlHandle)//添加的函數[一定注意聲明的函數要在頭文件裏面聲明] { char pStatus[10],pMsg[101]; SQLSMALLINT SQLmsglen; char error[200]={0}; SQLINTEGER SQLerr; long erg2=SQLGetDiagRec(type,sqlHandle,1,(SQLCHAR*)pStatus,&SQLerr,(SQLCHAR*)pMsg,100,&SQLmsglen); wsprintf(error,"%s(%d)\n",pMsg,(int)SQLerr); MessageBox(hwnd,error,TEXT("數據庫執行錯誤"),MB_ICONERROR|MB_OK); } void ShowDBConnError(HWND hwnd,SQLHDBC hdbc)//添加的函數 { ShowDBError(hwnd,SQL_HANDLE_DBC,hdbc); } void ShowDBStmtError(HWND hwnd,SQLHSTMT hstmt)//添加的函數 { ShowDBError(hwnd,SQL_HANDLE_STMT,hstmt); } void DBTest(HWND hwnd)//添加的函數 { SQLHENV henv=NULL; SQLHDBC hdbc=NULL; SQLHSTMT hstmt=NULL; SQLRETURN result; SQLCHAR ConnStrIn[MAXBUFLEN]="DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=root;DATABASE=test;CharSet=gbk;"; SQLCHAR ConnStrOut[MAXBUFLEN]; //分配環境句柄 result=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); //設置管理環境屬性 result=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); //分配連接句柄 result=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); //設置連接屬性 result=SQLSetConnectAttr(hdbc,SQL_LOGIN_TIMEOUT,(void*)LOGIN_TIMEOUT,0); //連接數據庫 result=SQLDriverConnect(hdbc,NULL,ConnStrIn,SQL_NTS,ConnStrOut,MAXBUFLEN,(SQLSMALLINT*)0,SQL_DRIVER_NOPROMPT); if(SQL_ERROR==result) { ShowDBConnError(hwnd,hdbc); return; } //初始化語句句柄 result=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); //SQL_NTStellingthefunctionthepreviousparameterisNull-Terminated String, //pleasealculatethestringlengthforme result=SQLPrepare(hstmt,(SQLCHAR*)"insert into T_Person(FAge,FName) values(20,'kider')",SQL_NTS); CHECKDBSTMTERROR(hwnd,result,hstmt); result=SQLExecute(hstmt); CHECKDBSTMTERROR(hwnd,result,hstmt); SQLFreeStmt(hstmt,SQL_CLOSE); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC,hdbc); SQLFreeHandle(SQL_HANDLE_ENV,henv); MessageBox(hwnd,TEXT("執行成功"),TEXT("標題"),MB_OK); }
【VC++】SQL代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.