// Update_SQL.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"//在此文件里面包含以下头文件
//#include <stdio.h>
//#include <tchar.h>
//
//
//
//
TODO: reference additional headers your program requires here
//#include <windows.h>
//#include <sqlext.h> //在包含此头文件之前须包含windows.h因为sql.h引用了一些windows.h中定义的一些方法
//通常如果用UNICODE连接会失败
int _tmain(int argc, _TCHAR* argv[])
{
SQLHENV hEnv; //环境句柄
SQLHDBC hDbc; //连接句柄
SQLHSTMT hStmt; //语句句柄
SQLRETURN retCode; //返回值
//分配环境句柄
//分配环境句柄第二个参数必须为SQL_NULL_HANDLE
retCode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
if(retCode != SQL_SUCCESS){
printf_s("分配环境句柄失败!\n\n");
return 1;
}
//设置版本
retCode = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION,
(void*)SQL_OV_ODBC3, 0);
if(retCode != SQL_SUCCESS){
printf_s("设置版本失败!\n\n");
return 1;
}
//分配连接句柄
//分配连接句柄第二个参数必须为环境句柄
retCode = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
if(retCode != SQL_SUCCESS){
printf_s("分配连接句柄失败!\n\n");
return 1;
}
//连接数据库
//(SQLWCHAR*)"test"为数据源
//(SQLWCHAR*)"sa"用户名
//(SQLWCHAR*)"holyshit"用户密码
//连接之前可以调用SQLSetConnnectAttr设置连接属性
retCode = SQLConnect(hDbc, (SQLCHAR*)"test", SQL_NTS,
(SQLCHAR*)"sa", SQL_NTS,
(SQLCHAR*)"holyshit", SQL_NTS);
if(retCode != SQL_SUCCESS &&
retCode != SQL_SUCCESS_WITH_INFO){
printf_s("连接数据库失败\n\n");
return 1;
}
//分配语言句柄
//分配语句句柄第二个参数须为连接句柄
retCode = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); //
if(retCode != SQL_SUCCESS){
printf_s("分配语句句柄失败\n\n");
return 1;
}
//执行更新语句
retCode = SQLExecDirect(hStmt, (SQLCHAR*)"UPDATE Users \
SET Name = '黄贵林' \
WHERE ID = 1", SQL_NTS);
//如果执行有错则查看诊断记录
if(retCode != SQL_SUCCESS &&
retCode != SQL_SUCCESS_WITH_INFO){
SQLCHAR szwSqlState[6];
SQLINTEGER nErrorCode;
SQLCHAR szErrorMsg[SQL_MAX_MESSAGE_LENGTH];
int i = 1;
while (SQLGetDiagRec(SQL_HANDLE_STMT, hStmt,
i, szwSqlState, &nErrorCode, szErrorMsg,
sizeof(szErrorMsg), NULL)){
printf_s("Error: %s\n", szErrorMsg);
i++;
}
}
SQLDisconnect(hDbc); //断开连接
SQLFreeHandle(SQL_HANDLE_ENV, hEnv); //释放句柄
SQLFreeHandle(SQL_HANDLE_DBC, hDbc); //释放句柄
SQLFreeHandle(SQL_HANDLE_STMT, hStmt); //释放句柄
return 0;
}
SQL SEVER数据更新
最新推荐文章于 2021-05-16 23:10:29 发布