重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前提是电脑必须安装oracle客户端。 配置方法: 1、找到oracle的安装目录。如:C:\oracle\product\10.2.0\db_1\network\ADMIN 2、找到tnsnames.ora文件。 3、用文本方式打开,添加以下内容: 本地实例名 = (DESCRIPTION = (ADDRESS = (PROTOCOL =...
创新互联公司长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为雁江企业提供专业的成都网站设计、成都网站建设,雁江网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
qt调用oracle存储过程是通过QsqlQuery来实现的。
用法举例:
QSqlQuery movementQuery ;
movementQuery.prepare("call Qt.add_movement(:pDocumentType , :pDocumentId ,
to_date(sysdate,'dd-mm-yyyy') ,:pDocumentNumber"
",to_date(sysdate,'dd-mm-yyyy') , :pCustId ,:pMovementId ,:pReturn )");
movementQuery.bindValue(":pDocumentType",documentType);
movementQuery.bindValue(":pDocumentId",documentId);
movementQuery.bindValue(":pDocumentNumber",0);
movementQuery.bindValue(":pCustId",ui-custId-text());
movementQuery.bindValue(":pMovementId", 0, QSql::Out);
movementQuery.bindValue(":pReturn", "FALSE", QSql::Out);
movementQuery.exec();
//// The query executed the query is active and no errors are valid
//// message is method to display the value
message(query.boundValue(":pReturn").toString());
message(query.boundValue(5).toString());
message(query.boundValue(":pMovementId").toString());
message(query.boundValue(4).toString());
你确定在工程文件中添加数据库支持了吗?我上次连接MySQL的时候都搞定了,就是忘了咋pro文件中添加数据库支持
可以使用QT自带的数据库完成操作,以下是参考代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加数据库
db.setDatabaseName("note.db"); //创建一个note.db的文件存储数据
db.open(); //开启数据库
query = QSqlQuery(db); //获得访问数据库的query
query.exec(XXX); //执行指令(XXX为SQL指令)
db.close(); //关闭数据库
一般而言会将db变量作为全局变量或者数据成员,当需要访问的时候就获取一个query就可以了。
要实现所提到的功能,要好好看看QString、QStringList,这两玩意主要是临时存放数据、分割数据等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,这四个主要用来读取文本数据。看看QVector或者QList等来存放读出来的数据。
另外,要实现这玩意,SQL的语句不要求精通,但是基本的Create、Insert、Select、Delete等操作要准确无误。否则出错了QT是看不出来的。QT不会检测SQL的准确性的。
前提是在同一个局域网,或者网络IP可以互相ping通
1、本地创建ORACLE监听
2、防火墙开通端口
3、远程安装ORACLE客户端,根据服务端的数据库名称、IP地址、端口配置TNS连接