• 9289阅读
  • 3回复

QT怎样正确连接Oracle? [复制链接]

上一主题 下一主题
离线331926068
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-15
— 本帖被 XChinux 执行加亮操作(2008-10-15) —
一般资料都用下面的语句:                   
          QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
    db.setHostName("AA5FFEE09999499");    //主机名
    db.setDatabaseName("orcl");  //数据库名
    db.setUserName("ttkuser");  //用户名,我设的为DBA权限
    db.setPassword("admin");    //用户密码
    db.setPort(1521);          //端口号

可我试了,连不上,无法运行。我用的是WindowsXP。Oracle10g,配置了网络环境。
后来我又改成下面形式:
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName("AA5FFEE09999499");
    db.setDatabaseName("orcl");
    db.setUserName("ttkuser");
    db.setPassword("admin");
    db.setPort(1521);

能连上,但是我的tableview里没有数据显示。
后来我把sceneModel->setTable("scene");离得scene改成了大写SCENE,结果tableview里显示的数据包括中文的字段为乱码,而且我的删除记录功能失效了,修改数据的能力也失效了,添加记录的功能带中文的字段再添加后成为乱码,请问这是怎么回事啊? 如何解决请各位帮帮忙啊
  我在Oracle里建表和表的各个字段时,不管大写小写,建完后一律显示为大写,这会跟QT里涉及到这些表及字段的语句冲突吗?会大小写敏感吗?这跟我连不上数据库有无关系?
 
离线wd007

只看该作者 1楼 发表于: 2008-12-13
你的qt是opensource还是commercial的,后者的话有驱动,前者没有
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线duanchao1230
只看该作者 2楼 发表于: 2011-01-30
兄弟我也想在XP下连接ORACLE 10G  可我不知道怎么配置环境变量能给我讲讲吗?
离线cindy911
只看该作者 3楼 发表于: 2011-02-17
您好!您qt报的什么提示信息?在addDatabase("QOCI");
Starting E:\qtproject\project\debug\project.exe...
QSqlDatabase: QOCI driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
说明您的QT安装路径下没有QOCI驱动。因此必须先手工编译一个OCI驱动。

编译驱动:
保证安装完oracle10g的条件下;
打开qtcreator
open项目:C:\Qt\qt\src\plugins\sqldrivers\oci\pro  //QT的安装路径
修改pro文件,增加oracle自带的include和lib
"TARGET = qsqloci
HEADERS = ../../../sql/drivers/oci/qsql_oci.h
SOURCES = main.cpp \
    ../../../sql/drivers/oci/qsql_oci.cpp
win32:LIBS *= -loci -LE:\oracle\product\10.2.0\db_1\OCI\lib\MSVC
INCLUDEPATH+=E:\oracle\product\10.2.0\db_1\OCI\include
unix:!contains( LIBS, .*clnts.* ):LIBS *= -lclntsh
macx:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ
include(../qsqldriverbase.pri)
OTHER_FILES +=
给这个文件增加oracle的includepath和lib,这两个路径即oracle安装路径下。

三:编译后,在debug文件夹下会有两个文件,以。a和。dll结尾。
四:把这两个文件拷贝到C:\Qt\qt\plugins\sqldrivers,即QT的安装文件的插件路径下。
再去连接就可以了
快速回复
限100 字节
 
上一个 下一个