QT连接SQL Server(ODBC)

Qt程序连接Access数据库,出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect“错误的解决办法 Qt程序连接Access数据库,出现 1、"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect" 或者 2、"[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 QODBC3: Unable to connect"的错误的解决办法系统环镜1、当出现"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: 阅读详情
QT提供了对多种 数据库的访问支持,对 SQL Server也可以通过ODBC来进行访问。
要想顺利访问 SQL Server。 首先要保证以下几点:
1. QT编译时已经编译了QtSql
2. 编译了ODBC插件。可以通过 configure -plugin- sql-odbc来保证,也可以单独编译~\src\plugins\sqldrivers\odbc
qmake -t vclib odbc.pro
qmake
nmake
编译后,在~\plugins\sqldrivers\下应该有qsqlodbcd4.dll(debug)或qsqlodbc4.dll
此时,可以用下面的程序,测试一下你的QT目前支持哪些数据库访问。

#include <QApplication>

#include <QSqlDatabase>

#include <QStringList>

#include <QDebug>



int main(int argc, char* argv[]) {

QApplication app(argc, argv);



qDebug() << "Available drivers:";

QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers)

qDebug() << "\t" << driver;



QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

qDebug() << "ODBC driver valid?" << db.isValid();
}

如果输出中有
Available drivers:
"QSQLITE"
"QODBC4"
"QODBC"
ODBC driver valid? true 就说明已经可以成功支持ODBC了。
3. 要连接 数据库,有3种方式:
参考下面的连接:QT连接ODBC数据库
要注意的就是连接数据库时使用的数据库名,和 sqlite等是不同的,并不是直接写入数据库名称。
而是DSN名。
如果你已经设置好了DSN,可以直接输入DSN名。 如果没有,可以采用DSN连接字符串直接连接ODBC数据库。

例如:

//下面例子连接到10.0.0.2上的 sql server名为temp的数据库上。 程序中指定此连接的名称为dbTemp

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "dbTemp");

db.setHostName("10.0.0.2"); //如果dsn中已经含有SERVER,可以省略此句

QString dsn = QString::fromLocal8Bit("DRIVER={ SQL SERVER};SERVER=10.0.0.2;DATABASE=temp");

//如果已经设定DSN,可以写为QString::fromLocal8Bit("SQLSERVER_DSN")

db.setDatabaseName(dsn);

//即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤

db.setUserName("sa");

db.setPassword("xxxxxx");

if(!db.open()) {

QMessageBox::critical(0, QObject::tr("Database Error"),

db.lastError().text());

return false;

}

return true;


如果dsn名设错,将会在db.open()时出现“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect”
“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect”错误。
其他类型 数据库应该修改dsn字符串与其相适应:
下面是ODBC和OLEDB的连接字符串写法:

ODBC连接

适合数据库类型 连接方式
access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"

dBase "Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"

oracle "Driver={microsoft odbc for oracle}; server=oraclesever.world;uid=admin;pwd=pass;"

MSSQL server "Driver={ sql server};server=servername;database=dbname;uid=sa;pwd=pass;"

MS text "Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"

Visual Foxpro "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"

MySQL "Driver={ mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"

SQLite "Driver={SQLite3 ODBC Driver};Database=D:\SQLite\*.db"

PostgreSQL "Driver={PostgreSQL ANSI}; server=127.0.0.1;uid=admin;pwd=pass;database=databaseName"

OLEDB连接

适合的数据库类型 连接方式
access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;"

oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"

MS SQL Server "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;"

MS text "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'"

参考:
http://www.gamedev.net/community/forums/topic.asp?topic_id=523765
http://www.qtcn.org/bbs/read.php?tid=12414
http://www.qtcn.org/bbs/read.php?tid=7197&keyword= SQL%20Server
qt连接access数据库出现 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"解决办法 qt在链接Access数据库时遇到的问题:电脑64位,安装的32位office软件,调用access数据库出现"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"问题,找到ODBC数据源管理工具,方法:控制面板-&gt;管理工具-&gt;数据源(ODBC),打开如图所示 点开MS Access Da... 阅读详情

相关推荐

qt用odbc连接mysql_【原创】Qt 使用ODBC driver 连接SQL Server

最近在做数据库的课程设计。第一个需要解决的问题是使用什么工具来实现这个系统。经过一番资料查找,决定使用SQL Server Express 2012作为服务器,使用Qt作为编写客户端程序语言。问题是client如何连接SQL Server? 下面是我的解决方法。1.开启windows上的SQL Server 的ODBC驱动ODBC 是一个调用级接口,它使得应用程序得以访问任何具有 ODBC 驱动程...

weixin_35125159的博客 848

Qt数据库高级编程、SQLServer、MySQL、SQLite

Qt框架是由Qt Company开发的全球主流跨平台C++界面应用程序开发框架、是跨平台项目的主流解决方案,  Qt 5 框架是高效的跨平台C++框架,易扩展,组件丰富、允许真正地组件编程,既可以开发桌面应用程序,也可用于控制台工具、上位机软件、和高性能服务器的开发,目前国内Qt高级开发工程师的待遇也一直居高不下!本课程为黄强老师《Qt 5一站式编程》系列课程中的核心课、主要帮助学员熟练    数据库驱动ODBC介绍    QSqlDatabase核心类讲解    Qt使用ODBC对SQL Server数据库的增删改查    Qt使用ODBC对MySQL数据库的增删改查    Qt使用ODBC对Access数据库的增删改查    Qt数据库模块架构源码剖析    Qt使用MSVC、MinGW编译MySQL数据库驱动    Qt使用QMYSQL对MySQL数据库的增删改查    Qt使用QSQLITE对SQLite 数据库的增删改查

Qt 通过ODBC局域网内连接SQL server 2008

1.首先安装sql server数据 2.熟读Qt的数据库连接类介绍 3.找到D:\Qt\4.8.5\plugins\sqldrivers目录下的qsqlodbcd4.dll和qsqlodbc4.dll库,拷贝到自己的程序路径下\bin\sqldrivers目录下. 4.Qt类测试是否支持ODBC // qDebug() << "Available drivers:"; // QStr

A_sungirl的专栏 3396

QT通过ODBC来实现与Sql Server数据库的连接、数据读入、删除、修改等操作

本人由于项目的需求需要把缺陷检测的数据传入数据库中、实际企业人员信息的登记也需要相关数据库的信息记录,因此下载学习了Sql Server并构建与基于QT软件的连接。网上相关资料也较多,但完全复制粘贴并不能很好的运行,在借鉴大佬们的代码并经过本人的一些调试与代码修改,现在已成功实现QT开发界面与数据库的连接并操作。设计了一个简单的界面如下。没有Sql Server数据库经验的小白可以参考以下连接来实现对QT于SQL Server数据库连接的环境配置。希望我的工作能帮助有需要的朋友尽快实现自己的项目搭建。

wjh2580的博客 2997

Qt 连接 SQL Server 数据库:从 ODBC 配置到 C++ 实战查询

本文详细介绍了如何使用Qt连接SQL Server数据库,从ODBC配置到C++实战查询的全过程。内容包括环境准备、ODBC驱动安装、SQL Server账号配置、Qt工程设置及核心代码实现,并提供了常见问题排查和性能优化建议,帮助开发者高效完成数据库连接与操作。

weixin_34224941的博客 419

SQL Server ODBC 连接 Qt 6.7 避坑指南:5个常见错误与根因分析

本文深入解析Qt 6.7与SQL Server通过ODBC连接时的五大常见问题,包括驱动加载失败、认证问题、连接超时、字符集乱码和事务异常。提供详细的根因分析和实战解决方案,帮助开发者高效解决数据库连接难题,确保应用稳定运行。

weixin_31315567的博客 253

Qt 连接并使用 SQL Sever数据库

可以选上默认数据库是哪一个需要用的数据库】

3111

Windows/Linux 双平台 Qt 6.5 连接 SQL Server:ODBC 驱动安装与 2 大常见错误修复

本文详细介绍了在Windows和Linux双平台下使用Qt 6.5连接SQL Server的完整解决方案,重点讲解了ODBC驱动安装、配置及常见错误修复。针对'Driver not found'和'SQLAllocHandle failed'两大经典问题提供了根治方案,帮助开发者实现跨平台数据库连接的稳定运行。

weixin_30632883的博客 386

qt用odbc连接mysql_Qt通过ODBC连接SQL Server2008实践总结

Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发程序使用起来非常方便,并且也是远程连接数据库所需要用到的方式。前提工作:在Win7下安装了SQL Server 2008,并在SQL Server中创建了数据库MyDB。Qt通过ODBC连接SQL Server 2008概述:Qt通过ODBC连接数据库时,使用的数据库名不是直接写入数据库名称,而是DSN...

weixin_33696476的博客 347

qt odbc office windows driver驱动

64位windows平台默认不安装Access的64位ODBC驱动,此下载将安装一系列组件,帮助在现有的 Microsoft Office 文件(例如 Microsoft Office Access 2010(*.mdb 和 *.accdb)文件和 Microsoft Office Excel 2010(*.xls、*.xlsx 和 *.xlsb)文件)与其他数据源(例如 Microsoft SQL Server)之间传输数据。还支持与现有文本文件建立连接。 此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。

Qt 文件对话框(QFileDialog)实战指南 —— 从基础到高级应用

本文是Qt文件对话框(QFileDialog)的实战指南,从基础静态函数调用到高级对象模式应用,全面解析了文件选择、保存、目录选取及多选等核心功能。文章深入探讨了MIME类型过滤、自定义侧边栏、信号槽实时响应及状态持久化等高级技巧,并提供了跨平台开发中的避坑指南与最佳实践,帮助开发者高效、稳健地集成文件操作功能。

weixin_29306261的博客 376

linux下qt的odbc库编译,linux qt QODBC连接sql server 驱动 有关问题 ,实在是没辙了

linux qt QODBC连接sql server 驱动 问题 ,实在是没辙了程序在linux下,现在需要连接windows的sqlserver.db=QSqlDatabase::database(SqlExpressway);if(db.isValid()==false){db=QSqlDatabase::addDatabase("QODBC",SqlExpressway...

weixin_35677144的博客 1885

优化求解器性能:当分支切割算法中的gap停滞不前时如何应对

本文深入探讨了当分支切割算法求解复杂整数规划问题时,gap停滞不前的根本原因与应对策略。文章指出gap停滞源于上界(找不到更优整数解)或下界(证明过程缓慢)提升受阻,并提供了从模型改写、自定义割平面、调整搜索策略到参数调优等一系列实战方法,帮助优化工程师有效打破求解僵局,推动gap下降。

weixin_29294597的博客 381

Qt 通过ODBC连接SQL Server

Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发程序使用起来非常方便,并且也是远程连接数据库所需要用到的方式。 要连接数据库,有3种方式: 参考下面的连接:QT连接ODBC数据库 要注意的就是连接数据库时使用的数据库名,和sqlite等是不同的,并不是直接写入数据库名称,而是DSN名。 如果你已经设置好了DSN,可以直接输入DSN名。 如果

Hughen Force 3289

点云配准实战:用DGCNN+Transformer+SVD搞定3D模型对齐(附PyTorch代码)

本文详细介绍了基于深度学习的点云配准实战方法,重点解析了Deep Closest Point (DCP)模型。该模型融合了DGCNN、Transformer和可微分SVD三大核心模块,能够端到端地预测点云间的刚性变换,有效克服传统ICP算法对初始位置敏感、易陷入局部最优的缺点。文章提供了完整的PyTorch代码实现、ModelNet40数据集处理、训练策略及显存优化技巧,旨在帮助开发者在机器人、自动驾驶等领域实现精准的3D模型对齐。

weixin_29061041的博客 153

手把手教你:如何为自制的STM32H7飞控板适配PX4固件(基于NuttX)

本文详细介绍了如何为自制的STM32H7飞控板适配PX4固件,基于NuttX系统进行移植。从硬件设计规范到软件环境配置,再到PX4固件的移植与调试,提供了完整的实战指南。特别分享了如何复用FMU-v6u参考设计以节省开发时间,并解决了常见问题,帮助开发者快速实现高性能飞控系统的搭建。

weixin_27697385的博客 475

Qt - ODBC连接SQL SERVER

.QT中数据库测试 下面的这段测试代码非常有用,可以检测自己的QT支持哪些数据库连接 int main(int argc, char* argv[]) {   QApplication app(argc, argv);   qDebug() "Available drivers:";   QStringList drivers = QSqlDatabase::drivers(

apaul001的专栏 4710

别再死磕SPWM了!手把手教你用STM32实现SVPWM驱动PMSM电机(附代码)

本文详细介绍了如何使用STM32实现SVPWM驱动PMSM电机,对比传统SPWM方案,SVPWM在电压利用率、电流THD、转矩脉动和稳态温升等方面均有显著提升。通过克拉克变换优化、扇区快速判断和矢量作用时间补偿等核心算法,结合STM32硬件加速技巧,实现高效电机控制。附代码示例,助力开发者快速掌握SVPWM技术。

weixin_28733777的博客 272

Qt 使用ODBC driver 连接SQL Server

1.开启windows上的SQL Server 的ODBC驱动     ODBC 是一个调用级接口,它使得应用程序得以访问任何具有 ODBC 驱动程序的数据库中的数据。使用 ODBC 可以创建具有访问任何数据库(最终用户具有该数据库的 ODBC 驱动程序)的权限的数据库应用程序。ODBC 提供了使您的应用程序独立于源数据库管理系统 (DBMS) 的 API。一个应用程序访问DBMS中数据库的

yuhan_9204的专栏 907

腾讯Android开发面试指南与参考答案

腾讯深圳元宝高级Android开发工程师岗位要求3-5年Android开发经验,熟悉Kotlin和性能优化,具备架构设计能力。岗位职责包括元宝Android客户端研发、稳定性优化及跨团队协作。面试重点考察Kotlin、Jetpack Compose、多线程编程等核心技术,3轮线上面试流程较快。无AI项目经验也可应聘,需突出展示Android架构设计、性能调优等实战能力。建议准备Compose开发、算法等加分项案例。

郑伟强dev的专栏 1132

【OpenClaw从入门到精通】第11篇:OpenClaw 2026多模态实战全攻略:OCR/语音/图像自动化(附完整代码+双部署方案)

本文聚焦OpenClaw 2026版核心升级的多模态能力,从底层架构原理到实操落地全流程拆解。先解析“统一指令解析+多工具适配器”的核心设计逻辑,再提供阿里云规模化部署(适合批量任务)与本地汉化版部署(适合隐私数据调试)的详细步骤,含依赖安装、配置验证完整操作;随后落地三大高频实战场景——OCR合同信息结构化提取、会议录音自动转写纪要、电商商品图片智能打标,每个场景均提供可直接运行的完整代码、执行结果演示及流程说明;最后补充多模态任务避坑指南、性能优化技巧与成本控制方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2611

告别QSqlError:一份针对Qt + SQL Server开发者的ODBC连接与查询最佳实践清单

本文为Qt与SQL Server开发者提供了一套完整的ODBC连接与查询最佳实践,涵盖驱动选择、连接池配置、参数化查询、存储过程调用及错误处理等关键环节。特别针对常见的QSqlError问题,提供了详细的解决方案和优化建议,帮助开发者构建稳定高效的数据库访问层。

weixin_33724046的博客 365

QGC4.0.11界面修改

QGC4.0.11。

超维空间科技的博客 2464

Qt 5.14.2 连接 SQL Server 2019:3种ODBC连接字符串方案与性能实测

本文详细解析了Qt 5.14.2连接SQL Server 2019的三种ODBC连接方案,包括DSN连接、无DSN连接和Linux专用优化方案,并提供了性能实测数据与优化策略。通过对比不同方案的连接耗时和稳定性,帮助开发者选择最适合的跨平台数据库连接方式,提升应用程序性能。

weixin_30263277的博客 484

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

qt qsqlodbc连接oracle,QT连接SQL Server(ODBC)

QT提供了对多种数据库的访问支持,对SQL Server也可以通过ODBC来进行访问。要想顺利访问SQL Server。 首先要保证以下几点:1. QT编译时已经编译了QtSql2. 编译了ODBC插件。可以通过 configure -plugin-sql-odbc来保证,也可以单独编译~\src\plugins\sqldrivers\odbcqmake -t vclib odbc.proqmak...

weixin_28192383的博客 822

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: Ubuntu配置Apache+PHP+MySQL
下一篇: QT4如何连接MS SQL SERVER
獠
獠
博客等级 码龄16年 43粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值