C/S程序, 如何连接达梦数据库。

zjhss1981 2019-11-12 02:30:16
本机环境:WIN10 64;  
尝试了两种方式,
1、 本机装64位达梦8.1, ODBC配置没问题, 但PB得数据库连不上, 原因: PB9为32位, 达梦客户端64位,不匹配。
2、本机装32位客户端8.1,ODBC配置连不上,原因不明。

有谁最近在玩国产达梦吗? 或者已经有玩过得朋友,PB应该如何来连接,还请不吝赐教。谢谢。
...全文
374 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
原谅不美好。 2021-07-08
  • 打赏
  • 举报
回复

可以指教一下怎么连接的吗

YongApple 2020-04-16
  • 打赏
  • 举报
回复
LOG_ERROR("SQL_NEED_DATA failed! 111 cbConnStrOut=" << cbConnStrOut);
总是输出这行;
YongApple 2020-04-16
  • 打赏
  • 举报
回复
long V_OD_erg; // result of functions 存放错误代码

// allocate Environment handle and register version
V_OD_erg = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &V_OD_Env_ );
if ( (V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO) )
{
LOG4CPLUS_ERROR(gLogger, __FUNCTION__ << " Error AllocHandle");
return false;
}

V_OD_erg = SQLSetEnvAttr( V_OD_Env_, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0 );
if ( (V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO) )
{
LOG4CPLUS_ERROR(gLogger, __FUNCTION__ << " Error SetEnv");
SQLFreeHandle(SQL_HANDLE_ENV, V_OD_Env_);
return false;
}

long V_OD_erg = 0;
SQLCHAR V_OD_stat[64]= {0}; // Status SQL 执行sql语句的结果状态
SQLSMALLINT V_OD_mlen = 0; // 错误返回的消息文本大小
SQLCHAR V_OD_msg[256] = {0};// 错误消息缓冲区

// allocate connection handle, set timeout
V_OD_erg = SQLAllocHandle( SQL_HANDLE_DBC, V_OD_Env_, &V_OD_hdbc_ );
if ((V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO))
{
LOG4CPLUS_ERROR(gLogger, __FUNCTION__ << " Error AllocDBC " << V_OD_erg);
return false;
}

//(SQLPOINTER *)
V_OD_erg = SQLSetConnectAttr(V_OD_hdbc_, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);
if ((V_OD_erg != SQL_SUCCESS) && (V_OD_erg != SQL_SUCCESS_WITH_INFO))
{
LOG4CPLUS_ERROR(gLogger, __FUNCTION__ << " Error SQLSetConnectAttr " << V_OD_erg);
SQLFreeHandle( SQL_HANDLE_DBC, V_OD_hdbc_ );
return false;
}


char szConnStrIn[256] = {0};
char szConnStrOut[256]= {0};
SQLSMALLINT cbConnStrOut = 0;

strcpy(szConnStrIn, "DRIVER=DM ODBC DRIVER");
SQLRETURN sret = SQLBrowseConnect(V_OD_hdbc_, (SQLCHAR*)szConnStrIn, SQL_NTS, (SQLCHAR*)szConnStrOut, 256, &cbConnStrOut);
if (sret != SQL_NEED_DATA) {
LOG_ERROR("SQL_NEED_DATA failed! 111");
exit(0);
}
strcpy(szConnStrIn, "SERVER=192.168.16.172;TCP_PORT=5236");//TCP_PORT=5236 可选
sret = SQLBrowseConnect(V_OD_hdbc_, (SQLCHAR*)szConnStrIn, SQL_NTS, (SQLCHAR*)szConnStrOut, 256, &cbConnStrOut);
if (sret != SQL_NEED_DATA) {
LOG_ERROR("SQL_NEED_DATA failed! 222");
exit(0);
}
strcpy(szConnStrIn, "UID=SYSDBA;PWD=linkdood@300352;");
sret = SQLBrowseConnect(V_OD_hdbc_, (SQLCHAR*)szConnStrIn, SQL_NTS, (SQLCHAR*)szConnStrOut, 256, &cbConnStrOut);
if (sret != SQL_SUCCESS) {
LOG_ERROR("SQLBrowseConnect failed! 333");
exit(0);
}
LOG_INFO("open dm ok");

总是连接 失败,能否指点下;
zjhss1981 2019-12-20
  • 打赏
  • 举报
回复
已经搞定, 通过ODBC可以连接。 WIN7, WIN10,得32位,64位操作系统都可以了。
资源下载链接为: https://pan.quark.cn/s/0c983733fad2 在 IT 领域,数据库管理系统(DBMS)的选择对应用程序的性能和稳定性有着关键影响。Nacos 是一款广受欢迎的微服务管理和配置中心,通常会与 MySQL、Oracle 等常见数据库集成。但对于国内一些有特定安全和合规要求的企业,国产数据库如达梦(DM)往往是更合适的选择。本文将详细介绍如何将 Nacos 服务适配到达梦数据库,并探讨相关配置和脚本。 Nacos 是阿里巴巴开源的服务发现和配置管理平台,为分布式系统提供动态配置服务、服务发现、健康检查等功能。达梦数据库则是由华迪计算机集团有限公司研发的高性能、高可用、安全可控的国产数据库产品,支持多种数据类型和 SQL 标准,适用于大规模数据处理场景。 要将 Nacos 适配到达梦数据库,需按以下步骤操作: 第一步,环境准备:需先安装好达梦数据库服务器,并掌握其基本操作。同时,从 Nacos 官网下载并部署 Nacos 服务。 第二步,运行数据库脚本:Nacos 提供了专门针对达梦数据库的脚本,位于 nacos-dm/conf/nacos-dm.sql。该脚本包含创建 Nacos 所需表结构、索引及初始化数据的 SQL 语句。运行前,需确保拥有达梦数据库管理员权限,以便创建数据库、用户和分配权限。 第三步,修改配置文件:在 Nacos 的配置文件中,需调整数据库连接参数,使其指向达梦数据库。主要修改 conf/application.properties 或 conf/application.yml 文件中的 spring.datasource.* 配置项,如数据库 URL、用户名、密码、驱动类名等。例如: 其中,db.url.0 是达梦数据库连接地址,db.num 表示数据源数量,db.user 和 db.password 是数据

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧