#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代码
原创fangjin19900820 ©著作权
©著作权归作者所有:来自51CTO博客作者fangjin19900820的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:【VC++】socket程序
下一篇:【VC++】动态调用链接库
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
VC++记录
1. 记录时间 2. 报错 解决
#include -
VC ++ | VC++调试方法
【代码】VC ++ | VC++调试方法。
c++ 开发语言 java 数据操作 App -
VC++ 知识小结
VC++ 知识小结
C++ 职场 编程 休闲 vc++ -
VC++速记
速记vc小知识。
#include #define 头文件 条件编译 #ifdef