代码如下,省掉了#include行:
int main(int argc, char *argv[])
{
QFile file("err.txt");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
// QApplication::addLibraryPath("E:\QtDev\4.3.4\plugins");
~~~~这行加上就出现错误,可以编译,不能运行!
QStringList avlLib = QApplication::libraryPaths();
out << avlLib;
~~~~~~这行输出的是空!奇怪
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "Sen");
~~~~~~~显示QODBC driver not loaded, 并且available drivers为空
db.setHostName("Sen");
db.setDatabaseName("Sen");
db.setUserName("system");
db.setPassword("system");
if (!db.open()) {
cout << "Fail to connect database!" << endl;
return 0;
}
db = QSqlDatabase::database("Sen");
QStringList connectionNames = QSqlDatabase::connectionNames();
/*out << connectionNames;*/
cout << "Data Base OK!" << endl;
QSqlQuery q(db);
//以下所有行均打印出0,表示未成功执行
cout << q.exec("drop table Movies") << endl;
cout << q.isActive() << endl;
cout << q.exec("drop table Names");
cout << q.exec("create table Movies (id integer primary key, Title varchar, Director varchar, Rating number)");
cout << q.exec("insert into Movies values (0, 'Metropolis', 'Fritz Lang', '8.4')");
cout << q.exec("insert into Movies values (1, 'Nosferatu, eine Symphonie des Grauens', 'F.W. Murnau', '8.1')");
cout << q.exec("insert into Movies values (2, 'Bis ans Ende der Welt', 'Wim Wenders', '6.5')");
cout << q.exec("insert into Movies values (3, 'Hardware', 'Richard Stanley', '5.2')");
cout << q.exec("insert into Movies values (4, 'Mitchell', 'Andrew V. McLaglen', '2.1')");
cout << q.exec("create table Names (id integer primary key, Firstname varchar, Lastname varchar, City varchar)");
cout << q.exec("insert into Names values (0, 'Sala', 'Palmer', 'Morristown')");
cout << q.exec("insert into Names values (1, 'Christopher', 'Walker', 'Morristown')");
cout << q.exec("insert into Names values (2, 'Donald', 'Duck', 'Andeby')");
cout << q.exec("insert into Names values (3, 'Buck', 'Rogers', 'Paris')");
cout << q.exec("insert into Names values (4, 'Sherlock', 'Holmes', 'London')");
cout << "Create Table OK!" << endl;
q.exec("SELECT * FROM Movies");
cout << q.next() << " " << q.at() << endl;
cout << q.isSelect () << endl;
cout << "Check Result!" << endl;
while (q.next()) {
cout << q.value(0).toInt() << endl;
}
db.close();
QSqlDatabase::removeDatabase("Sen");
return 0;
}