引用第1楼wd007于2009-06-03 22:14发表的 :
听起来有点复杂,你为什么这么设计呢
这个软件主要用于安全方面的管理,用于记录所有对数据库的操作。
一个DSN连接该软件的数据库(software-database),
另一个DSN连接要操作的数据库(比如oracle下的Scott),所有对Scott表下的操作都记录在software-database数据库中。
我遇到的问题是:当连接scott用户的时候,软件不接受键盘输入了,但是其他程序(如text能正常接受键盘输入)。
连接数据库的代码是:
QSqlError err;
global->cursor.setShape(Qt::WaitCursor);
setCursor(global->cursor);
if(global->db.isOpen()) // global->db 是全局Qsqldatabase, 其声明是: QSqldatabase db;
{
global->db.close();
}
global->db = QSqlDatabase::addDatabase(DriverType,QString("HOST"));
global->db.setDatabaseName(DatabaseName);
global->db.setHostName(host);
global->db.setPort(port);
global->db.setUserName(UserName);
global->db.setPassword(password);
if(!global->db.open())
{
err = global->db.lastError();
qDebug() << "Database cannot open" << err.text();
unsetCursor();
return;
}
当数据库连接之后,就不接受键盘输入了!!!