QT中如何连接数据库?

博是 2004-11-16 03:03:18
请问:qt中如何连接数据库?最好能给个具体的操作步骤,谢谢!
...全文
325 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
博是 2005-07-19
  • 打赏
  • 举报
回复
我要连接的是ms sql server 或 sybase ,但找不到他们的驱动,按帮助里的SQL驱动程序文档所说方法试,还是不行,他们的驱动如何处理哪?
lzwwiner 2004-12-03
  • 打赏
  • 举报
回复
完整的代码给你了:

data.h
#define DB_SALES_DRIVER "QMYSQL3"
#define DB_SALES_DBNAME "CAAS"
#define DB_SALES_USER "root"
#define DB_SALES_PASSWD ""
#define DB_SALES_HOST ""

main.cpp

#include <qapplication.h>
#include <qsqldatabase.h>
#include <qsqlquery.h>
#include <qsqlcursor.h>
#include <qtextedit.h>
#include <qstring.h>
#include <qtextcodec.h>
#include <qvbox.h>
#include "data.h"
#include <stdio.h>
#include <qpushbutton.h>

class MyQVBox : public QVBox
{
public:
MyQVBox( QWidget *parent=0, const char *name=0 );
//public slots:
// refValue(QSrting lzw);
};

MyQVBox::MyQVBox( QWidget *parent, const char *name )
: QVBox( parent, name )
{
QString Lzw("\n");
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase(DB_SALES_DRIVER);
if ( defaultDB )
{
defaultDB->setDatabaseName( DB_SALES_DBNAME );
defaultDB->setUserName( DB_SALES_USER );
defaultDB->setPassword( DB_SALES_PASSWD );
defaultDB->setHostName( DB_SALES_HOST );

if ( defaultDB->open() )
{
//插入数据
QSqlQuery query("INSERT INTO test(ID,Name,Age) VALUES(1155, 'Ginger', 125);" );

//提取数据
QSqlCursor cur( "test" ); // 指定表/视图名称
cur.select(); // 我们将检索每一条记录
while ( cur.next() )
{
qDebug( cur.value( "ID" ).toString() + ": " +
cur.value( "Name" ).toString() + " " +
cur.value( "Age" ).toString() );
Lzw.append(cur.value( "ID" ).toString() + ": " +
cur.value( "Name" ).toString() + " " +
cur.value( "Age" ).toString()+"\n");
}
//qDebug(Lzw);
printf("aaaaaaa");
}
}

QString ustr = (QTextCodec::codecForLocale())->toUnicode(Lzw);
QString sstr = (QTextCodec::codecForLocale())->toUnicode("刷新");
QTextEdit *myEdit = new QTextEdit(this,0);
myEdit->setText(ustr);
QPushButton *quit = new QPushButton(sstr, this, "quit" );
connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
}




int main( int argc, char *argv[] )
{
QApplication app( argc, argv );
MyQVBox *mybox = new MyQVBox(0,0);
//mybox->setText(ustr);
app.setMainWidget(mybox);
mybox->show();
return app.exec();
}

博是 2004-12-03
  • 打赏
  • 举报
回复
DB_SALES_DRIVER 的值如何qt认出来啦,需要什么样的设置那?
luckysky 2004-11-19
  • 打赏
  • 举报
回复
看看QtAssistant中的文档吧

#include <qapplication.h>
#include <qsqldatabase.h>
#include "../connection.h"
int main( int argc, char *argv[] )
{
QApplication app( argc, argv, FALSE );

QSqlDatabase *defaultDB = QSqlDatabase::addDatabase( DB_SALES_DRIVER );
if ( ! defaultDB ) {
qWarning( "Failed to connect to the database driver" );
return 1;
}
defaultDB->setDatabaseName( DB_SALES_DBNAME );
defaultDB->setUserName( DB_SALES_USER );
defaultDB->setPassword( DB_SALES_PASSWD );
defaultDB->setHostName( DB_SALES_HOST );
if ( defaultDB->open() ) {
// Database successfully opened; we can now issue SQL commands.
}
return 0;
博是 2004-11-17
  • 打赏
  • 举报
回复
都不知道吗?
博是 2004-11-17
  • 打赏
  • 举报
回复
up
博是 2004-11-16
  • 打赏
  • 举报
回复
谢谢各位,
但在我的/usr/bin下没有找到ODBCConfig程序那,确定不了是那一个?
suisuibianbian 2004-11-16
  • 打赏
  • 举报
回复
Qt提供了操作数据库的类如QDataBrowser,
If you want a read-only form to present database data use QDataView;
if you want a table-based presentation of your data use QDataTable.
kingzai 2004-11-16
  • 打赏
  • 举报
回复
http://www-900.ibm.com/developerWorks/cn/linux/database/odbc/index.shtml
2。QT下进行ODBC编程

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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