首页 > 数据库 >c++ 通过ODBC连接达梦数据库

c++ 通过ODBC连接达梦数据库

时间:2022-12-20 21:44:08浏览次数:46  
标签:HANDLE hdbc 句柄 ODBC c++ SQL henv include 达梦

安装达梦数据库

建立数据源,位置:开始》》windows管理工具》》ODBC数据源

 

 测试通过

 

打开编译器编写代码连接这个数据库 

#include "stdafx.h"
#include<Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <sql.h>
#include <sqltypes.h>
#include <sqlext.h>


/* 检测返回代码是否为成功标志,当为成功标志返回 TRUE,否则返回 FALSE */
#define RC_SUCCESSFUL(rc) ((rc) == SQL_SUCCESS || (rc) == SQL_SUCCESS_WITH_INFO)
/* 检测返回代码是否为失败标志,当为失败标志返回 TRUE,否则返回 FALSE */
#define RC_NOTSUCCESSFUL(rc) (!(RC_SUCCESSFUL(rc)))

HENV henv;/* 环境句柄 */
HDBC hdbc;/* 连接句柄 */
HSTMT hsmt;/* 语句句柄 */
SQLRETURN sret; /* 返回代码 */

int main(void)
{
    /* 申请一个环境句柄 */
    SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
    /* 设置环境句柄的 ODBC 版本 */
    SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
    /* 申请一个连接句柄 */
    SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

    sret = SQLConnect(hdbc, (SQLCHAR *)"DM8", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS, (SQLCHAR *)"SYSDBA", SQL_NTS);
    if (RC_NOTSUCCESSFUL(sret)) {
        /* 连接数据源失败! */
        printf("odbc: fail to connect to server!\n");
        SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
        SQLFreeHandle(SQL_HANDLE_ENV, henv);
        exit(0);
    }
    printf("odbc: connect to server success!\n");

    /* 断开与数据源之间的连接 */
    SQLDisconnect(hdbc);
    /* 释放连接句柄 */
    SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
    /* 释放环境句柄 */
    SQLFreeHandle(SQL_HANDLE_ENV, henv);

    return 0;
}

执行连接成功

标签:HANDLE,hdbc,句柄,ODBC,c++,SQL,henv,include,达梦
From: https://www.cnblogs.com/lely/p/16995159.html

相关文章

  • C++实现单链表相关操作
    #include<iostream>#include<cstdlib>//C++动态分配存储空间usingnamespacestd;#defineOK1#defineERROR0#defineMAXSIZE100typedefintElemtype;typedefintStat......
  • C++| 1-RAII
     RAII,完整的英文是ResourceAcquisitionIsInitialization,是C++所特有的资源管理方式。RAII依托栈和析构函数,来对所有的资源——包括堆内存在内——进行管理。对......
  • VScode配置支持c++11和配置自动编译调试功能
    VScode配置支持c++11和配置自动编译调试功能​​1在工程目录下新建.vscode目录​​​​2在.vscode目录下创建c_cpp_properties.json文件内容如下​​​​2.1添加c_cpp_pr......
  • c++ 去除字符串首尾的空白字符
    c++去除字符串首尾的空白字符​​方法一使用find_first_not_of和find_last_not_of​​​​方法二使用正则表达式(c++11)​​​​测试​​​​测试结果​​方法一使用find_f......
  • C++中的class
    用classqxz{};定义一个类,其中private:以下的每一行都是私有成员,而public:以下的每一行都是公有成员(两者可以反复交叉出现多次)。私有成员只能被自己类中的成员函数访问,而......
  • 安装 Python 包时解决 Microsoft visual c++ 14.0 is required 问题
     参考:​​http://www.hongweipeng.com/index.php/archives/1532/​​ 在windows上安装scrapy时经常会遇到这个问题,安装其他组件也可能会遇到。但问题解决办法都是大致......
  • vscode 调试 C++/JavaScript
     MicrosoftVisualStudioCode  在调试JavaScript代码时,其中三种比较简单:1.使用Chrome等浏览器调试2. 使用Ctrl+Shift+B 快捷键运行html文件,需要在Task......
  • ubuntu20.04下C++调用接口解压缩zip文件
     https://github.com/Lecrapouille/zipper Compiling/InstallingTodownloadtheprojectandcompileit:gitclonehttps://github.com/lecrapouille/zipper.g......
  • c++使用this的一个实例
    转载:原文地址正在做一个鼠标绘图程序,在一个class中需要调用鼠标响应函数setMouseCallback,由于setMouseCallback中的mousecallback不支持调用non-staticfunction,遇到了很......
  • C++冷门语法/关键字
    这篇文章将用来记录平时第一次遇到的语法或关键字,仅记录我使用到的功能,不进行拓展。volatileC/C++中的volatile关键字和const对应,用来修饰变量,通常用于建立语言级别......