QT中ODBC数据库操作

合集下载

qt连接数据库sql server ODBC 不能正常驱动解决办法

qt连接数据库sql server ODBC 不能正常驱动解决办法

1 经过小白的两天努力终于将qt连接sql server 数据库的问题解决网上的例子几乎尝试完毕,希望我的这些能给大家些参考:Qt连接sql server ODBC不能驱动,1 第一步检查自己的目录下面有没有这样的两个文件如图:如果没有自己需要手动驱动,或则通过代码检查自己的qt是否支持对sql server的驱动代码如下所示:运行结果如下图所示:这里面是有QODBC说明是对sql server的支持,当然有的时候存在,在我们打开数据库的时候未必支持,也许你上面qsqlodbc.dll 和qsqlodbcd.dll库不是你自己的库,可能是重网上下载的,或则给别人要的,这个两个库相当重要,下面介绍如何自己编译这两个库,我是在windows 下手都编译的当然在windows下命令行也可以自己输入命令进行编译生成指定的动态库,当然啦命令行的,网上百度一大堆,下面小白自己介绍一下自己手动的生成动态库的方法:1 步骤1 入下图:进该目录下:打开.pro文件:第二步:构建->重新构建项目odbc->查看qt\qt5.6.0\5.6\Src\qtbase\plugins\sqldrivers\odbc目录下面是否有qsqlodbc.dll和qsqlodbcd.dll这两个库,如果有恭喜你构建成功,如果没有可去这个文件下面找这两个库(小编的当时就在这个文件下面)路径入下图所示:第三步骤:将搞好的库拷贝复制过来放到如下文件夹里面:点击运行就可以连接你的sql server 数据库啦以上不同的可能路径不对其他的可按步骤进行操作:也许开发环境的不同导致不能正常运行:Qt 5.6.0.32位windows server 2012 64 位系统连接sql server 2012以上简单的介绍希望对你有点帮助!再此非常感谢那位来自南京的朋友的帮助!。

QT连接SQLserver数据库和设置数据源名称(DSN)的方法

QT连接SQLserver数据库和设置数据源名称(DSN)的方法

编写外部应用程序来查询与操作数据库数据1、打“开控制面板”,找到“管理工具”。

2、进入“管理工具”,找到“数据源(ODBC)”,双击进入“ODBC 数据库管理器”。

3、点击“添加按钮”,进入“创建新数据源向导”。

4、选择数据库驱动程序,因为是微软的SQLServer数据库,所以选择驱动为SQLServer。

点击完成。

5、进入如下页面,在名称,描述,和服务器三个位置分别自己写描述信息。

需要注意的是在输入服务器的时候,服务器的名称应该在启动SqlServer数据库管理程序时的服务器名称一样。

如下图是服务器名是5F-CAD32。

点击下一步。

6、用户登录验证,选择WindowsNT验证。

也可以用ID和密码登录但是要创建用户名和密码,创建用户名和密码方法如下图。

点击下一步。

附:在SqlServer2008的客户端创建一个登录用户的方法。

把用户角色设置为public和sysadmin系统管理者。

7、选择需要用到的数据库。

下拉列表列出了所有可以连接的数据库。

8、点击下一步。

其余选项默认,点击完成就可以。

显示下面的画面点击测试,显示测试成功。

则我们的数据源DSN创建成功。

9、写外部应用程序以ODBC方式访问数据库数据(这里写的是qt程序,要注意的是~\plugins\sqldrivers\下应该有qsqlodbcd4.dll(debug)或qsqlodbc4.dll,他们是qt访问SqlServer数据库的库文件)。

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtSql/QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QSqlQuery>#include <QDebug>{/* 方法一:通过DSN建立连接。

Qt数据库操作

Qt数据库操作

3.修改main.cpp中的内容如下。 #include <QtCore/QCoreApplication> #include <QtSql> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”); //添加数据库驱动 db.setDatabaseName(“:memory:”); //数据库连接命名 if(!db.open()) //打开数据库 { return false; } QSqlQuery query; //以下执行相关QSL语句 query.exec(“create table student(id int primary key,name varchar)”); //新建student表,id设置为主键,还有一个name项 query.exec(“insert into student values(1,’xiaogang’)”); query.exec(“insert into student values(2,’xiaoming’)”); query.exec(“insert into student values(3,’xiaohong’)”); //向表中插入3条记录 query.exec(“select id,name from student where id >= 2″); //查找表中id >=2 的记录的id项和name项的值 while(query.next()) //query.next()指向查找到的第一条记录,然后每次后移一条记录 { int ele0 = query.value(0).toInt(); //query.value(0)是id的值,将其转换为int型 QString ele1 =query.value(1).toString(); qDebug() << ele0 <<ele1 ; //输出两个值 } } return a.exec();

如何创建ODBC数据源

如何创建ODBC数据源

如何创建ODBC数据源创建ODBC(Open Database Connectivity)数据源是一种连接数据库的常用方式,本文将介绍如何在Windows系统中创建ODBC数据源。

1.打开ODBC数据源管理器:-对于32位系统,打开控制面板,选择“系统与安全”,在“管理工具”中找到“ODBC数据源(32位)”。

-对于64位系统,打开控制面板,选择“系统与安全”,在“管理工具”中找到“ODBC数据源(64位)”。

2.创建系统数据源:-在ODBC数据源管理器中的“系统DSN”选项卡下点击“添加”按钮。

-在“创建新的数据源”对话框中选择想要连接的数据库驱动程序,点击“完成”按钮。

-在“数据源设置”对话框中,输入数据源名称(可以自定义)、描述和要连接的数据库信息,点击“测试连接”按钮以确保连接正常。

-点击“确定”按钮保存数据源设置。

3.创建用户数据源:-在ODBC数据源管理器中的“用户DSN”选项卡下点击“添加”按钮。

-在“创建新的数据源”对话框中选择想要连接的数据库驱动程序,点击“完成”按钮。

-在“数据源设置”对话框中,输入数据源名称(可以自定义)、描述和要连接的数据库信息,点击“测试连接”按钮以确保连接正常。

-点击“确定”按钮保存数据源设置。

4.创建文件数据源:-在ODBC数据源管理器中的“文件DSN”选项卡下点击“添加”按钮。

-在“创建一个新的文件数据源”对话框中选择想要连接的数据库驱动程序,点击“下一步”按钮。

-在“选择文件数据源类型”对话框中选择需要创建的文件数据源类型,点击“下一步”按钮。

-在“文件数据源设置”对话框中输入数据源文件名、描述和要连接的数据库信息,点击“测试连接”按钮以确保连接正常。

-点击“完成”按钮保存数据源设置。

创建ODBC数据源是连接数据库的第一步,通过ODBC数据源可以在应用程序中使用通用的ODBCAPI与不同的数据库进行交互。

在使用ODBC数据源时,需要注意数据库驱动程序是否正确安装、数据库连接信息是否准确等。

qt连接数据库的方法

qt连接数据库的方法

qt连接数据库的方法1. 简介Qt是一个跨平台的开发框架,提供了丰富的GUI控件和易于使用的API。

它也支持与各种数据库的连接。

在本篇文章中,我们将介绍Qt如何连接数据库。

我们将涵盖Qt 支持的各种数据库类型,例如SQLite、MySQL和PostgreSQL等。

2. SQLite数据库连接SQLite是一个轻量级的关系型数据库,可以在任何平台上使用,并且无需安装。

以下是Qt连接SQLite数据库的示例代码:```cppinclude <QCoreApplication>include <QtSql>int main(int argc, char *argv[]){QCoreApplication a(argc, argv);QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("test.db");if (!db.open()){qDebug() << "Failed to connect to database.";return 1;}qDebug() << "Database connected successfully.";// Do some database-related work heredb.close();return a.exec();}```在上面的示例中,我们首先使用`QSqlDatabase::addDatabase()`函数创建一个数据库连接,然后使用`setDatabaseName()`函数指定要连接的数据库文件的名称。

如果连接成功,则应该输出“Database connected successfully.”,否则输出“Failed to connect to database.”。

建立odbc数据源的方法

建立odbc数据源的方法

建立odbc数据源的方法一、ODBC数据源是啥。

1.1 ODBC数据源啊,就像是一座桥梁。

它能让不同的软件和数据库之间搭上线,互相沟通。

比如说,你有个程序想从数据库里拿数据,或者往数据库里存数据,没有这个数据源可就像没带钥匙想开门,干着急呢。

1.2 这数据源可重要着呢,就好比是快递员和快递站之间的关系。

程序是快递员,数据库是快递站,ODBC数据源就是那个能让快递员准确找到快递站并且顺利收发件的路线图。

二、建立ODBC数据源的准备工作。

2.1 首先呢,你得确定自己有数据库管理系统。

这就像你要做饭,得先有食材一样。

常见的数据库管理系统有MySQL、Oracle之类的。

要是没有这个,那建立数据源就成了无米之炊,根本没法进行。

2.2 然后呢,你得知道数据库的一些基本信息,像数据库的名字啦,用户名和密码啦。

这就好比你要去朋友家做客,得知道他家住哪儿,门牌号是多少,有没有门禁密码一样。

要是这些信息不清楚,你就没法顺利“进门”建立数据源。

三、建立ODBC数据源的实际操作。

3.1 在Windows系统里,你得找到ODBC数据源管理器。

这就像在一个大商场里找一个特定的店铺一样。

你可以通过控制面板里的管理工具找到它。

这一步可不能马虎,要是找不到这个管理器,后面的操作就无从谈起了,那可真就是“巧妇难为无米之炊”了。

3.2 找到之后呢,就开始添加数据源。

这里就像是在给数据库办一个“通行证”。

你要选择适合你数据库类型的驱动程序,这就好比你要坐对车才能到达目的地。

如果你的数据库是MySQL,那就选MySQL的驱动程序。

要是选错了,那就好比坐错车,肯定到不了地方。

选好驱动程序后,就要填写数据库的相关信息了,像前面提到的数据库名、用户名和密码这些。

这一步得小心翼翼,一个数字或者字母错了,就可能导致连接失败。

这就像密码锁,密码错一位就打不开。

四、测试数据源。

4.1 数据源建立好之后,可别以为就大功告成了。

还得测试一下,这就像新做的桥,得看看能不能走人、通车。

ODBC与数据源操作

ODBC与数据源操作

9.单击“测试数据源”按钮,测试数据源 连接是否正确。如果DSN创建正确,则得 到图5-8所示的“SQL SERVER ODBC数 据源测试”的测试成功对话框。单击“确
定”按钮关闭测试结果对话框,最后单击 “确定”按钮,完成SQL SERVER 数据源 的建立工作,系统返回图7-1所示的 “ODBC数据源管理器”对话框,但“系统 DSN”的列表框中增加了一个名为 “NetShopSource”的数据源。
二、创建和配置ODBC数据源
在Windows NT/2000中,设定Web服务器使用 的数据源名称(DSN)时,必须建系统DSN,才 能确保所有的Web用户都可以使用该DSN连接到 指定得数据库。
下面以网上商店中所用的数据库NetShop为例, 建立ODBC数据源的步骤:
1.单击“开始/设置/控制面板”(或双击桌面 上“我的电脑”图标,并双击随之出现的“控制 面板”图标),出现“管理工具”图标。双击 “管理工具”图标,出现“管理工具”对话框。
数据源包含了用户安全性、数据库定位和
连接参数等与数据库进行连接的信息。也 就是说,DSN是一个代表ODBC连接的符 号,它隐藏了诸如数据库文件名、所在目 录、数据库驱动程序、用户ID、密码等细 节。所以,当建立连接时,不必考虑数据 库文件名或位置,只要给出它在ODBC中的 DSN即可。
DSN分为三种类型:用户DSN、系统DSN 和文件DSN。
在,则用选中一个数据源后单击“配置” 按钮,对该数据源进行重新设置。
3.单击“添加”按钮,将出现如图7-2所示的 “创建新数据源”对话框。因为本书中要连接的 数据库是由SQL Server创建的,故选择列表框中 的“SQL Server”,然后单击“完成”按钮。出 现图5-3所示的“建立新的数据源到SQL Server” 对话框第一页。

odbc数据源的配置方法

odbc数据源的配置方法

odbc数据源的配置方法嘿,朋友们!今天咱来聊聊 ODBC 数据源的配置方法。

这可真是个有点头疼但又超级重要的事儿呢!ODBC 数据源啊,就像是一个数据的大通道,把不同的数据库和我们要使用它们的程序连接起来。

你可以把它想象成是一条神奇的纽带,让数据能顺畅地跑来跑去。

首先呢,咱得找到那个 ODBC 数据源的管理工具。

这就好比是找到打开宝库大门的钥匙。

不同的操作系统,这钥匙的位置可能不太一样哦。

比如说在 Windows 系统里,咱就得去控制面板里好好找找。

找到之后,就可以开始创建新的数据源啦!这就像是给数据源盖一个小房子,得把各种参数都设置好。

比如要告诉它数据库在哪里呀,用啥用户名和密码呀。

然后呢,选择你要连接的数据库类型。

这就像是给数据源选一个合适的帽子,得匹配才行呢!不同的数据库类型,就像不同款式的帽子,各有各的特点。

接着,就是输入各种详细的信息啦,比如服务器地址、数据库名称啥的。

这可不能马虎,就跟你填地址寄快递一样,错一个字都可能寄不到地方呢!再之后,设置好一些其他的选项,比如连接超时时间啊啥的。

这就像是给数据源的小房子装修一下,让它住起来更舒服。

等这些都弄好了,嘿,你的 ODBC 数据源就配置好啦!就好像是小房子盖好了,数据源可以舒舒服服地住进去啦。

配置 ODBC 数据源,是不是听起来有点复杂?但别担心呀,只要一步一步来,肯定能搞定的。

就像爬山一样,虽然过程有点累,但爬到山顶看到美丽的风景,那感觉可太棒啦!咱想想,如果数据源没配置好,那不就像是路没修好,数据怎么能顺畅地跑起来呢?所以呀,一定要认真对待这个配置过程哦。

总之呢,ODBC 数据源的配置方法虽然有点小麻烦,但只要咱有耐心,仔细去做,就一定能成功。

大家加油哦!让我们的数据源都乖乖听话,为我们的工作和学习助力!。

function sequence error qodbc3 不能执行语句

function sequence error qodbc3 不能执行语句

function sequence error qodbc3 不能执行语句"function sequence error qodbc3 不能执行语句"在使用QODBC3连接数据库时,有时可能会遇到"function sequence error"的错误提示,导致无法执行语句。

这个错误通常意味着在执行数据库操作时,调用的函数顺序不正确。

在本文中,我们将讨论可能导致这个错误的常见原因,以及如何解决它。

首先,让我们了解一下QODBC3是什么。

QODBC3是一个开源的ODBC (Open Database Connectivity) 驱动程序,它允许开发人员在使用Qt编写的应用程序中使用ODBC连接到各种数据库。

它提供了一个接口,使得开发人员可以使用标准SQL语言来执行数据库操作。

当出现"function sequence error"的错误提示时,这意味着在执行SQL语句或相关函数时,调用的函数序列存在问题。

以下是导致这个错误的一些常见原因以及解决方法:1. 函数调用顺序不正确:QODBC3要求按照特定的顺序调用函数,以确保正确执行数据库操作。

如果函数的调用顺序不正确,就会出现"function sequence error"。

解决这个问题的方法是仔细查看代码,确保函数的调用顺序正确。

2. 数据库连接错误:另一个可能的原因是数据库连接的问题。

如果数据库没有正确连接或连接中断,就无法执行SQL语句,导致"function sequence error"。

解决这个问题的方法是确保数据库已成功连接,并在使用之前进行必要的连接验证。

3. SQL语句语法错误:如果SQL语句存在语法错误,也会导致"function sequence error"。

在编写和执行SQL语句之前,务必仔细检查语句的语法是否正确。

ODBC的配置方法

ODBC的配置方法

ODBC数据源的配置步骤1、在开始-设置中打开控制面板,如下图所示
2、双击打开管理工具,如下图所示:
3、双击打开数据源,如下图所示:
打开后的界面如下图所示:
4、点击添加按钮,在创建新数据源中,选择SQL SERVER,如下图所示:
5、点击完成按钮键,如下图所示:
6、在名称栏中随意输入一个字符,在服务器栏中选择要连接的服务器IP或名称,(服务器的IP地址为:10.100.60.1)如下图所示:
7、选择完成后点击下一步按钮,选择界面如下图所示,在登录ID(L)中输入安装服务器的SQL SERVER时用的名称即sa,密码(P)中输入与安装服务器的SQL SERVER时sa对应的密码,即123456。

8、输入完成后,点击下一步按钮,界面如下图所示:
9、在第八步的操作中不做任何选择,然后点击下一步按钮,此步也不做任何选择,然后点击完成按钮,如下图所示:
10、至此数据源的配置已全部完成。

如下图所示
点击测试数据源按钮,完成数据源的测试工作,如下图所示:。

odbc数据库配置正确方法

odbc数据库配置正确方法

odbc数据库配置正确方法
配置ODBC数据库连接是通过ODBC数据源管理器完成的。

以下是正确的配置方法:
1. 打开ODBC数据源管理器。

在Windows操作系统中,可以
在控制面板中找到ODBC数据源管理器。

2. 在ODBC数据源管理器中,选择"系统DSN"或"用户DSN"
选项卡,然后点击"添加"按钮。

3. 从ODBC驱动程序列表中选择合适的驱动程序,这取决于
你要连接的数据库类型。

4. 填写数据源名称,这相当于一个标识符,用于在应用程序中引用这个数据库连接。

5. 配置数据库相关的连接信息,包括服务器地址、数据库名称、用户名和密码等。

6. 根据需要配置其他选项,比如连接超时时间、字符集等。

7. 点击"测试连接"按钮,确保能够成功连接到数据库。

如果连
接成功,会出现一个提示框,显示连接成功的信息。

8. 点击"确定"按钮保存配置,然后关闭ODBC数据源管理器。

现在,你已经成功配置了ODBC数据库连接。

在应用程序中可以使用这个数据源名称来连接和操作数据库。

odbc连接数据库,及ado连接数据库

odbc连接数据库,及ado连接数据库

odbc连接数据库做之前先把sql server的服务打开。

1.这种连接方式先要配置一个数据源。

打开控制面板—管理工具—数据源(odbc)—添加选择第一个,点完成。

名称就命名为school吧(我已经创了一个school的所以这里填的school1),服务器填(local)。

下一步,再下一步。

把默认的master数据库改成school。

下一步,完成,然后测试一下连接。

测试成功之后这个数据源就有了。

打开vs2013,新建一个项目。

选择MFC应用程序名称自己取,或者默认。

确定。

选择应用程序类型,单个文档!数据库支持选择“提供文件支持的数据库视图”,ODBC。

选择机器数据源中你刚刚配置的那个数据源。

确定。

再确定。

选择到表Student之后,点确定。

这个MFC的程序就创建好了,接下来开始写。

点击资源视图(在左下角或者你的风格被安排在右下角)选择含有你创建的那个名称的IDD_XXXXXX,双击一下。

出现了上面那个东西。

在视图里面,把工具箱点出来。

在那上面画一个按钮(BUTTON),一个ListBOX在你画好的图上右击—类向导—成员变量选中那个ListBox对应的名字,添加变量。

取个变量名m_list,一会儿我要把查到的东西在这个listbox控件里面输出。

双击那个按钮就可以给这个按钮添加函数啦~加入如下代码while (!m_pSet->IsEOF()){CString a (m_pSet->m_SNO);CString b( m_pSet->m_SNAME);if (m_pSet->m_SDEPT == "信息系"){m_list.AddString(a+"------"+b);}m_pSet->MoveNext();}m_pSet 的这些操作相当于把Student表的数据放到了一个链表里,m_pSet->MoveNext()就是指向下条位置。

Qt连接Oracle数据库

Qt连接Oracle数据库

Qt连接Oracle数据库1. 连接数据库QSqlDatabase db;bool m_bIsConn;db.setHostName("127.0.0.1");db.setPort(1521);db.setDatabaseName("orcl");db.setUserName("ATIMS");db.setPassword("123");if(db.open()){qDebug()<<QString(u8"连接成功");m_bIsConn = true;}else{qDebug()<<"连接失败";m_bIsConn = false;} 2.查询数据库if(m_bIsConn){QSqlQuery query;bool bSuccess = query.exec("select * from TableName");if(bSuccess){QSqlRecord rec = query.record();qDebug()<<tr("TableName的字段个数:")<<rec.count();QSqlField filed = rec.field(0);qDebug()<<tr("字段名称:")<<rec.field(0).name()<<tr("字段类型:")<<rec.field(0).type()<<tr("字段值:")<<rec.field(0).value(); qDebug()<<tr("字段名称:")<<rec.field(1).name()<<tr("字段类型:")<<rec.field(1).type()<<tr("字段值:")<<rec.field(1).value(); qDebug()<<tr("字段名称:")<<rec.field(2).name()<<tr("字段类型:")<<rec.field(2).type()<<tr("字段值:")<<rec.field(2).value(); qDebug()<<tr("字段名称:")<<rec.field(3).name()<<tr("字段类型:")<<rec.field(3).type()<<tr("字段值:")<<rec.field(3).value(); }else{qDebug()<<tr("error");}} 细细品味,有点类似.net中的反射,通过这些属性可以实现通⽤数据访问层的封装 3.插⼊数据if(m_bIsConn){QSqlQuery query(db);bool bSuccess = false;QTime t;t.start();query.prepare("insert into TableName values(:a,:b,:c,:d)");long records = 100;QString strTemp = "";for(int i=0;i<records;i++) //插⼊100条数据{query.bindValue(":a",i);strTemp = QString("name-%1").arg(i);query.bindValue(":b",strTemp);query.bindValue(":c",16.0);query.bindValue(":d","note");bSuccess = query.exec();if(!bSuccess){QSqlError error = stError();qDebug()<<i<<error.driverText()<<QString("插⼊数据失败!");qDebug()<<i<<error.text()<<QString("插⼊数据失败!");}//qDebug()<<query.executedQuery();qDebug()<<stQuery();}qDebug()<<tr("插⼊ %1 条记录,耗时: %2 ms").arg(records).arg(t.elapsed());} 在插⼊数据准备Sql语句时需要注意,可以使⽤Oracle类型的占位符和ODBC类型的占位符,这⾥使⽤的是Oracle类型的占位符。

odbc编程

odbc编程

odbc编程ODBC编程是一种常用的数据库访问方式,它提供了一种标准的接口,使得不同的应用程序可以通过相同的方式来访问不同的数据库。

本文将介绍ODBC编程的基本概念、使用方法以及一些常见的应用场景。

一、ODBC编程的基本概念ODBC全称为Open Database Connectivity,它是一种应用程序接口(API),用于访问各种数据库的标准。

通过ODBC,应用程序可以使用统一的方式来连接、查询和更新数据库。

ODBC的核心概念包括数据源、数据源名称(DSN)、驱动程序和连接。

1. 数据源(Data Source):数据源是指数据库的名称或位置,可以是本地的数据库文件,也可以是远程的数据库服务器。

在ODBC中,数据源可以用一个字符串来表示,比如一个文件路径或一个网络地址。

2. 数据源名称(Data Source Name,DSN):DSN是一个标识符,用于标识一个具体的数据源。

它包含了连接数据库所需的信息,比如数据库的类型、地址、用户名和密码等。

在ODBC编程中,我们可以通过DSN来连接数据库,而不需要关心具体的数据库类型和连接细节。

3. 驱动程序(Driver):驱动程序是ODBC的核心组成部分,它负责实际连接数据库并执行相应的操作。

不同的数据库类型通常需要不同的驱动程序来进行连接和操作。

在ODBC编程中,我们需要根据数据库类型选择合适的驱动程序。

4. 连接(Connection):连接是指应用程序与数据库之间建立的通信通道。

在ODBC编程中,我们首先需要建立一个连接,然后才能进行后续的查询和更新操作。

连接可以通过DSN来建立,也可以直接指定连接参数。

二、ODBC编程的使用方法ODBC编程主要包括以下几个步骤:加载驱动程序、建立连接、执行SQL语句、处理结果和关闭连接。

下面我们将分别介绍这些步骤的具体实现。

1. 加载驱动程序:在使用ODBC编程之前,我们首先需要加载相应的驱动程序。

驱动程序通常是一个动态链接库(DLL)文件,我们可以使用系统提供的函数来加载和卸载它。

从定义入手讲解如何配置你的ODBC数据源

从定义入手讲解如何配置你的ODBC数据源

从定义入手讲解如何配置你的ODBC数据源配置ODBC(Open Database Connectivity)数据源是一种在计算机系统中与数据库进行通信的方法。

通过配置ODBC数据源,用户可以连接和访问各种类型的数据库,如Oracle、MySQL、SQL Server等。

下面是一个从定义入手讲解如何配置ODBC数据源的简要指南。

接下来,打开Windows操作系统上的“控制面板”并选择“ODBC数据源”。

在打开的窗口中,有两个选项卡:“用户DSN”和“系统DSN”。

“用户DSN”选项卡中列出了当前登录用户有权限访问的ODBC数据源。

如果希望只有当前用户才能访问一些数据源,在这里进行配置。

选择“添加”按钮,然后从列表中选择所需的ODBC驱动程序。

根据所选驱动程序的要求,提供必要的连接信息,如服务器地址、端口号、数据库名称、用户名和密码等。

完成所有必填字段后,点击“测试连接”按钮,确认连接是否成功。

如果成功,点击确定保存配置并退出。

“系统DSN”选项卡列出了所有系统范围内可供所有用户访问的ODBC数据源。

在这里配置数据源将使所有用户都能够访问它。

与“用户DSN”选项卡类似,选择“添加”按钮并提供所需的驱动程序以及其他连接信息。

完成配置后,点击“测试连接”按钮以验证连接。

成功后,点击确定保存配置并退出。

在应用程序中使用ODBC数据源时,需要指定所需的数据源名称。

通过ODBC连接字符串或直接使用ODBC数据源名称连接到数据库。

具体连接方式根据所使用的编程语言和数据库访问库而有所不同。

例如,使用Python语言和pyodbc库时,连接字符串可能如下所示:```import pyodbcconnection_string = 'DRIVER={ODBC Driver};SERVER=服务器地址;DATABASE=数据库名称;UID=用户名;PWD=密码'connection = pyodbc.connect(connection_string)```需要根据实际情况将连接字符串中的服务器地址、数据库名称、用户名和密码替换为正确的值。

odbc连接数据库步骤

odbc连接数据库步骤

连接数据库使用ODBC(Open Database Connectivity)需要以下步骤:
1. 安装数据库驱动程序:首先需要安装数据库的ODBC驱动程序,这通常是由数据库供应商提供的。

安装驱动程序后,系统就可以识别和连接到相应的数据库。

2. 打开ODBC数据源管理器:在Windows操作系统中,可以通过控制面板-> 管理工具-> 数据源(ODBC)来打开ODBC数据源管理器。

3. 添加数据源:在ODBC数据源管理器中,选择“系统DSN”或“用户DSN”,然后点击“添加”按钮。

接下来选择安装的数据库驱动程序,然后点击“完成”。

4. 配置数据源:在添加数据源后,需要配置数据源的连接信息,包括数据库的名称、服务器地址、用户名和密码等。

根据数据库供应商提供的信息进行相应的配置。

5. 测试连接:配置完成后,可以点击“测试连接”按钮来测试是否成功连接到数据库。

如果连接成功,会显示连接成功的提示信息。

6. 使用连接:配置成功后,就可以在应用程序中使用ODBC连接数据库了。

可以通过ODBC 接口来执行SQL查询、插入、更新和删除等操作。

这些是连接数据库使用ODBC的基本步骤,具体的操作可能会因数据库类型和版本而有所不同。

Qt数据库(支持10种数据库)

Qt数据库(支持10种数据库)

Qt数据库(⽀持10种数据库) Qt 提供了 QtSql 模块来提供平台独⽴的基于 SQL 的数据库操作。

这⾥我们所说的“平台独⽴”,既包括操作系统平台,有包括各个数据库平台。

另外,我们强调了“基于 SQL”,因为 NoSQL 数据库⾄今没有⼀个通⽤查询⽅法,所以不可能提供⼀种通⽤的 NoSQL 数据库的操作。

Qt 的数据库操作还可以很⽅便的与 model/view 架构进⾏整合。

通常来说,我们对数据库的操作更多地在于对数据库表的操作,⽽这正是 model/view 架构的长项。

Qt 使⽤QSqlDatabase表⽰⼀个数据库连接。

更底层上,Qt 使⽤驱动(drivers)来与不同的数据库 API 进⾏交互。

Qt 桌⾯版本提供了如下⼏种驱动:驱动数据库QDB2IBM DB2 (7.1 或更新版本)QIBASE Borland InterBaseQMYSQL MySQLQOCI Oracle Call Interface DriverQODBC Open Database Connectivity (ODBC) – Microsoft SQL Server 及其它兼容 ODBC 的数据库QPSQL PostgreSQL (7.3 或更新版本)QSQLITE2SQLite 2QSQLITE SQLite 3QSYMSQL针对 Symbian 平台的SQLite 3QTDS Sybase Adaptive Server (⾃ Qt 4.7 起废除) 不过,由于受到协议的限制,Qt 开源版本并没有提供上⾯所有驱动的⼆进制版本,⽽仅仅以源代码的形式提供。

通常,Qt 只默认搭载 QSqlite 驱动(这个驱动实际还包括 Sqlite 数据库,也就是说,如果需要使⽤ Sqlite 的话,只需要该驱动即可)。

我们可以选择把这些驱动作为 Qt 的⼀部分进⾏编译,也可以当作插件编译。

如果习惯于使⽤ SQL 语句,我们可以选择QSqlQuery类;如果只需要使⽤⾼层次的数据库接⼝(不关⼼ SQL 语法),我们可以选择QSqlTableModel和QSqlRelationalTableModel。

Qt连接sqlserver数据库遇到的问题

Qt连接sqlserver数据库遇到的问题

Qt连接sqlserver数据库遇到的问题在QT中使⽤addDataBase添加⼀个数据库连接,其中第⼀个参数应该填⼊使⽤数据库驱动的类型,如QMYSQL、QSQLLITE、QSQLPSSQL等。

1. QSqlDatabase QSqlDatabase::addDatabase(const QString & type, const QString & connectionName = QLatin1String( defaultConnection ))第⼀个参数指定了应⽤程序使⽤哪⼀种数据库驱动访问数据库。

Qt⾃⼰建⽴了不同数据库的驱动,这些驱动会调⽤相应DBMS的编程接⼝对数据库进⾏操作。

下⾯给出QtSql模块定义的驱动类型,与对应的DBMS。

QDB2IBM DbQIBASE Borland InterBaseQMYSQL MYSQLQOCI甲⾻⽂公司QODBC ODBC(包括微软公司的Server服务器)QPSQL PostgreSQL的7.3版以及更⾼版QSQLITE QLite第三版QSQLITE2QLIte2第⼆版QTDS sybase⾃适应服务器由图可以看出其中只有QODBC⽐较特殊,QODBC驱动调⽤ODBC驱动接⼝,ODBC对数据库的操作不依赖任何的DBMS,不直接于DBMS 打交道,它将所有的数据库操作交给对应DBMS驱动程序去完成。

因此在使⽤QODBC时候有两种连接⽅式:DNS字符串1. QString dsn = "DRIVER={SQL SERVER};SERVER=58.67.161.109;DATABASE=RDBS;UID=RDBS_USER;PWD=RDBS_USER_7010387;";2. //还要注意这⾥的⽤户名要有创建表的权限,不然创建下⾯的表student会不成功。

3. db.setDatabaseName(dsn); //数据库名 db.setUserName("RDBS_USER");//登录名,我再dsn⾥设置UID和PWD后,就不需要设置了4. if(!db.open ())5. {6. QSqlError error = stError();7. return false;8. }⼿动设置ODBC数据源控制⾯板->系统和安全->管理⼯具->数据源(ODBC)代码:QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");db.setDatabaseName("testdsn");db.setUserName("sa");db.setPassword("scada");三、下⾯是ODBC和OLEDB的连接字符串写法:1、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"。

qt 读写 access 2007

qt 读写 access 2007

qt 读写 access 2007在 Qt 中读写 Microsoft Access 2007 数据库,需要使用 ODBC (Open Database Connectivity) 驱动程序。

下面是一个基本的 Qt 程序,它连接到一个 Access 数据库并执行查询。

首先,确保你的系统上安装了 Microsoft Access 2007 ODBC 驱动程序。

下面是一个简单的 Qt 示例代码,展示如何使用 Qt 连接到 Access 2007 数据库并执行查询:```cpp#include <QSqlDatabase>#include <QSqlQuery>#include <QDebug>int main(int argc, char *argv[]){QCoreApplication app(argc, argv);// 创建数据库连接QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path/to/your/database.accdb;");if (!db.open()) {qDebug() << "无法打开数据库: " <<stError().text();return -1;}// 执行查询QSqlQuery query;if (query.exec("SELECT * FROM YourTable")) {while (query.next()) {QString name = query.value(0).toString();int age = query.value(1).toInt();qDebug() << name << age;}} else {qDebug() << "查询失败: " << stError().text(); }// 关闭数据库连接db.close();return 0;}```在这个示例中,你需要将 `path/to/your/database.accdb` 替换为你的 Access 数据库文件的路径,将 `YourTable` 替换为你要查询的表的名称。

Qt访问Oracle数据库的驱动说明

Qt访问Oracle数据库的驱动说明

Qt访问Oracle数据库的驱动编译说明Qt免费版本没有提供QOCI驱动(Qt访问Oracle的用户接口驱动),因此必须通过利用源代码编译生成QOCI。

本文介绍基于不同操作系统(Win7_X64和RHEL6.1_X64)和编译器(Win7+MinGW/VS2008和RHEL+GCC)如何生成QOCI。

一、Win7_X64系统安装VS2008、qt-win-opensource-4.8.0-vs2008、qt-vs-addin-1.1.10。

安装完毕后,则可以实现基于vs2008实现Qt软件开发。

编译生成QOCI时必须用到Oracle的相关文件(oci.lib和oci.h)。

如果安装了Oracle11g数据库,则编译所需要的头文件和库文件分别在$ORACLE_HOME\OCI\include和$ORACLE_HOME\OCI\lib\MSVC。

如果未安装Oracle11g也可从Oracle官网下载instantclient-sdk-nt-11.2.0.3.0.rar,直接解压可以获得所需要的头文件和库文件。

(QTDIR=D:\qt\4.8.0\; ORACLE_HOME=E:\app\oracle\product\11.2.0\dbhome_1)1、编译生成QOCI_vs2008利用vs2008打开D:\Qt\4.8.0\src\plugins\sqldrivers\oci\oci.pro设置qsqloci的工程属性,增加头文件oci.h的路径支持设置qsqloci的工程属性,设置oci.lib路径支持通过设定configuration manager依次生成QOCI的调试版和发布版。

编译生成Debug版本和Release版本的动态库:qsqlocid4.dll、qsqlocid4.lib和qsqloci4.dll、qsqloci4.lib。

将上述文件拷贝至$QTDIR\plugins\sqldrivers文件中即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
"QODBC4"
"QODBC"
则恭喜大哥,你可以开始您的开发了。
3.QT中ODBC数据库操作模式
QT提供了几种数据库的操作模式:
1)利用QSqlQuery类执行SQL语句;
2)QSqlQueryModel模式操作数据库;
3)QsqlTableModel模式(无需SQL语句)
一般来说,如果开始无编译,两种方法
1)--------------------------------------------------------------------------
编译ODBC插件。可以通过 configure -plugin-sql-odbc来保证,
2)----------------------------------------------------------------------------
4)QsqlRelationalTableModel模式
我之前有用过VB,VC和ACCESS进行AOI和SPI的开发,对SQL语句还是比较熟悉,一看几个类,其实实质上没有太多差别。我想在程序中实现以前用中dataset的内存数据库的模式:
程序开始运行-读取整个数据库内容到内存(数据从硬盘数据库到内存数据库)
//连接数据库------------------------------------------------------------------
bool QDBOperator:: DBConnection(const QString& HostName, const QString& DatabaseName, const QString& UserName, const QString& Password)
{
if( m_db.isOpen())
{
DBClose();
}
m_db = QSqlDatabase::addDatabase("QODBC");
m_db.setHostName(abaseName);
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t" << driver;
{
m_TableStep = new QSqlTableModel(this);
m_TableStep->setTable("Step");
m_TableStep->setEditStrategy(QSqlTableModel::OnManualSubmit);
m_TableStep->select(); //选取整个表的所有行
-然后所有操作在内存中进行(内存数据库进行数据操作,更新,插入,删除等)
-最后保存则更新到硬盘数据库中(内存数据库更新数据到硬盘数据库)
于是选用了类似DATASET的QsqlTableModel模式。
4.QT中ODBC数据库操作QsqlTableModel
我写了一个数据库操作类,主要函数:
QT中ODBC数据库操作(-) (2011-01-26 15:02:20)
分类: QT专栏
1.QT中ODBC数据库编译
如果你在安装QT时什么也没有配置,通常只会有QSQLITE出现。这样就需要安装QODBC4。
所以在这里提醒大家,在编译的时候,最好添加plugin-sql-odbc,否则你用ODBC的时候就麻烦了。
m_db.setUserName(UserName);
m_db.setPassword(Password);
bool ok = m_db.open();
if(ok == false)
{
QMessageBox::information(NULL,"Error",tr("DB connection Failed!"));
//m_TableStep->index(1,1)
return true;
}
//删除行----------------------------------------------------------------------------------
void QDBOperator:: DeleteRowOfTabStep(int iRow)
我们单独编译了N次,不知道什么原因,始终没有成功,最终还是整体编译的。
2.QT中数据库测试
下面的这段测试代码非常有用,可以检测自己的QT支持哪些数据库连接
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() << "ODBC driver valid?" << db.isValid();
}
如果输出中有
Available drivers:
"QSQLITE"
return false;
}
else
{
return true;
}
}
//读取数据库中表的内容-----------------------------------------------------------------------
bool QDBOperator::GetTableStep()
{
m_TableStep->removeRow(iRow);
}
相信上面这些操作简单到每个人看见这个类都会,非常简单,而且不写SQL语句,让人心情却也好了不少。
但是接下来,问题来了,博文太长,换下一回合。
也可以单独编译~\src\plugins\sqldrivers\odbc
qmake -t vclib odbc.pro
qmake
nmake
编译后,在~\plugins\sqldrivers\下应该有qsqlodbcd4.dll(debug)或qsqlodbc4.dll
----------------------------------------------------------------------------
相关文档
最新文档