当前位置:网站首页>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
欢迎交流探讨~
边栏推荐
- For penetration testing methods where the output point is a timestamp (take Oracle database as an example)
- SSH automatic reconnection script
- SSH自动重连脚本
- Powershell中UTF-8环境中文乱码解决办法
- Yuan prospect and four track of the universe
- 小米手机短信定位服务激活失败
- 网页截图与反向代理
- [Cloud native] Ribbon is no longer used at the bottom layer of OpenFeign starting from the 2020.0.X version
- Android软件安全与逆向分析阅读笔记
- Eternal blue bug reappears
猜你喜欢
Access database query
【云原生】微服务Nacos的简单介绍与使用
自定dialog 布局没有居中解决方案
最新MySql安装教学,非常详细
[Cloud native] Ribbon is no longer used at the bottom layer of OpenFeign starting from the 2020.0.X version
MySQL高级SQL语句(二)
对js的数组的理解
npm WARN config global `--global`, `--local` are deprecated. Use `--location解决方案
Install mysqldb in mac10.14
MySQL面试题大全(陆续更新)
随机推荐
Regular Expression Basics
阿里一面,说说你知道消息中间件的应用场景有哪些?
Hyper-V新建虚拟机注意事项
MySql创建数据表
对js的数组的理解
Attribute Changer的几种形态
[windows]--- SQL Server 2008 super detailed installation tutorial
2021年京东数据分析工程师秋招笔试编程题
著名网站msdn.itellyou.cn原理分析
mysql common commands
Xiaobai learns reptiles - introduction to reptiles
数据库 | SQL增删改查基础语法
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
flutter 混合开发 module 依赖
MySQL compressed package installation, fool teaching
360 hardening file path not exists.
[Ubuntu20.04 installs MySQL and MySQL-workbench visualization tool]
Install mysqldb in mac10.14
年终总结——岁月静好~
MySQL高级语句(一)