当前位置:网站首页>VS通过ODBC连接MYSQL(二)
VS通过ODBC连接MYSQL(二)
2022-07-31 05:15:00 【龙虾在剥我的壳】
一、结果展示


如果你想得到类似这样的数据,接下来的代码或许有所帮助
二、代码分享
#include<windows.h>
#include<iostream>
#include <assert.h>
#include<sql.h>
#include <sqlext.h>
using namespace std;
int main() {
SQLHENV serverhenv;
SQLHDBC serverhdbc;
SQLHSTMT serverhstmt;
SQLRETURN ret;
SQLCHAR cno[20] = { 0 }, cname[20] = { 0 }, semester[10] = { 10 };
//SQLINTEGER grade = 0, length;
SQLLEN grade = 0, length;
//分配环境句柄
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &serverhenv);
//设置环境属性
ret = SQLSetEnvAttr(serverhenv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
if (!SQL_SUCCEEDED(ret)) {
cout << "AllocEnvHandle error!" << endl;
system("pause");
}
//分配连接句柄
ret = SQLAllocHandle(SQL_HANDLE_DBC, serverhenv, &serverhdbc);
if (!SQL_SUCCEEDED(ret)) {
cout << "AllocDbcHandle error!" << endl;
system("pause");
}
//数据库连接
//ret = SQLConnect(serverhdbc, (SQLCHAR*)"odbc_test(数据源名称)", SQL_NTS, (SQLCHAR*)"root(数据库用户名)", SQL_NTS, (SQLCHAR*)"123456(数据库用户密码)", SQL_NTS);
ret = SQLConnect(serverhdbc, (SQLCHAR*)"vsodbc07", SQL_NTS, (SQLCHAR*)"root", SQL_NTS, (SQLCHAR*)"root", SQL_NTS);//连接数据库
if (!SQL_SUCCEEDED(ret)) {
cout << "SQL_Connect error!" << endl;
system("pause");
}
//分配执行语句句柄
ret = SQLAllocHandle(SQL_HANDLE_STMT, serverhdbc, &serverhstmt);
//执行SQL语句
//ret = SQLExecDirect(serverhstmt, (SQLCHAR*)"insert into course values('C01','数据库','春',NULL);", SQL_NTS);//插入数据
//ret = SQLExecDirect(serverhstmt, (SQLCHAR*)"update course set semester='秋' where cno='C01';", SQL_NTS);//修改数据
//ret = SQLExecDirect(serverhstmt, (SQLCHAR*)"delete from course where cno='C01';", SQL_NTS);//删除数据
ret = SQLExecDirect(serverhstmt, (SQLCHAR*)"select * from course;", SQL_NTS);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO){
//绑定数据
SQLBindCol(serverhstmt, 1, SQL_C_CHAR, (void*)cno, sizeof(cno), &length);
SQLBindCol(serverhstmt, 2, SQL_C_CHAR, (void*)cname, sizeof(cname), &length);
SQLBindCol(serverhstmt, 3, SQL_C_CHAR, (void*)semester, sizeof(semester), &length);
//将光标移动到下行,即获得下行数据
//while (SQL_NO_DATA != SQLFetch(serverhstmt)) {
for (int i = 0;i<3; i++) {
if(SQL_NO_DATA != SQLFetch(serverhstmt)){
cout << "cno:" << cno << " cname:" << cname << " semester:" << semester;
cout << "55"<< endl;
}
}
}
//释放语句句柄
ret = SQLFreeHandle(SQL_HANDLE_STMT, serverhstmt);
if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret)
cout << "free hstmt error!" << endl;
//断开数据库连接
ret = SQLDisconnect(serverhdbc);
if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret)
cout << "disconnected error!" << endl;
//释放连接句柄
ret = SQLFreeHandle(SQL_HANDLE_DBC, serverhdbc);
if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret)
cout << "free hdbc error!" << endl;
//释放环境句柄句柄
ret = SQLFreeHandle(SQL_HANDLE_ENV, serverhenv);
if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret)
cout << "free henv error!" << endl;
system("pause");
}
这两篇博客都是关于VS通过ODBC连接MYSQL
下一篇将分享VS直接连接MYSQL
欢迎交流探讨~
边栏推荐
- MySQL高级学习笔记
- 【云原生】原来2020.0.X版本开始的OpenFeign底层不再使用Ribbon了
- Chinese garbled solution in UTF-8 environment in Powershell
- 腾讯云轻量服务器删除所有防火墙规则
- powershell statistics folder size
- mysql password modification method in Linux (pro-test available)
- quick-3.5 lua调用c++
- sql add default constraint
- MySQL压缩包方式安装,傻瓜式教学
- 【云原生】开源数据分析 SPL 轻松应对 T+0
猜你喜欢

js中的对象与函数的理解

带你搞懂MySQL隔离级别,两个事务同时操作同一行数据会怎样?

对js的数组的理解

【云原生】微服务Nacos的简单介绍与使用

为什么redis是单线程还那么快?

feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r

On the side of Ali, tell me what are the application scenarios of message middleware you know?

MySQL compressed package installation, fool teaching
![[Cloud native] Simple introduction and use of microservice Nacos](/img/06/b0594208d5b0cbf3ae8edd80ec12c4.png)
[Cloud native] Simple introduction and use of microservice Nacos

unicloud 云开发记录
随机推荐
mysql常用命令
MySQL压缩包方式安装,傻瓜式教学
configure:error no SDL library found
cocos2d-x-3.2图片灰化效果
Understanding of js arrays
Access database query
[Ubuntu20.04 installs MySQL and MySQL-workbench visualization tool]
unicloud 发布后小程序提示连接本地调试服务失败,请检查客户端是否和主机在同一局域网下
[swagger close] The production environment closes the swagger method
mysql password modification method in Linux (pro-test available)
带你搞懂MySQL隔离级别,两个事务同时操作同一行数据会怎样?
一个简单的bash转powershell案例
Principle analysis of famous website msdn.itellyou.cn
jenkins +miniprogram-ci 一键上传微信小程序
Digital twins will be an important way to enter the "metaverse"
What is the difference between NFT and digital collection?
Markdown 帮助文档
2021 Mianjing - Embrace Change
"limit" query in Oracle database
小米手机短信定位服务激活失败