-
UID:124812
-
- 注册时间2011-11-23
- 最后登录2013-05-30
- 在线时间14小时
-
- 发帖4
- 搜Ta的帖子
- 精华0
- 金钱40
- 威望14
- 贡献值0
- 好评度4
-
访问TA的空间加好友用道具
|
请问在micro2440上使用qt自带的sqlite数据库功能如何操作。我把C++GUIQt4编程上的一个例子(第13章的 scooters.rar (5 K) 下载次数:0) 编译了一下,在PC机上可以运行,但是交叉编译的在ARM上运行有 问题。在ARM上可以产生 数据库文件(scooters.db文件),里面是有表scooter的,表scooter里也是有数据的。但是运行到scooterwindow.cpp里的“model->setTable("scooter");//设置模型运行的数据库表的表名”这一句时便无法运行下去了,程序发生异常,提示Illegalinstruction 。请问高手如何解决。如果这么简单的例子在arm上都跑不起,那就太没天理了。 文件1:scooterwindow.h 文件2:scooterwindow.cpp 文件3:main.cpp 复制代码
- #include <QtGui>
- #include <QtSql>
- #include "scooterwindow.h"
- bool createConnection()
- {
- //创建QSqlDatabase对象,使用QSQLITE作为数据库的驱动程序来访问数据库
- QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//可以设置连接connection的名字
- db.setDatabaseName("scooters.db");//设置连接的数据库的名称,必须在open之前。注意与connection的名字的连接
- if (!db.open())//打开数据库
- {
- QMessageBox::warning(0, QObject::tr("Database Error"),
- db.lastError().text());
- return false;
- }
- return true;
- }
- void createFakeData()
- {
- QSqlQuery query;//提供了一种执行和操纵SQL语句的方式。
- query.exec("DROP TABLE scooter");//为什么要删除呢?
- // /******************2012.10.21******************/
- // bool ok1=query.lastError().isValid();
- // if (ok1)
- // qDebug() << query.lastError();
- // else
- // qDebug()<<"ok1:query.exec is ok!";
- // /************************************************/
- query.exec("CREATE TABLE scooter ("//使用SQL语句创建数据表
- //"id INTEGER PRIMARY KEY AUTOINCREMENT, "//主键
- "id INTEGER PRIMARY KEY , "//主键
- "name VARCHAR(40) NOT NULL, "//表示NULL允许NULL值,NOT NULL应该是不允许NULL值
- "maxspeed INTEGER NOT NULL, "
- "maxrange INTEGER NOT NULL, "
- "weight INTEGER NOT NULL, "
- "description VARCHAR(80) NOT NULL)");
- // /******************2012.10.21******************/
- // bool ok2=query.lastError().isValid();
- // if (ok2)
- // qDebug() << query.lastError();
- // else
- // qDebug()<<"ok2:query.exec is ok!";
- // /************************************************/
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Mod-Rad 1500', 40, 35, 298, "
- "'Speedometer, odometer, battery meter, turn signal "
- "indicator, locking steering column')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Rad2Go Great White E36', 22, 12, 93, "
- "'10\" airless tires')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('X-Treme X360', 21, 14, 59, "
- "'Cargo rack, foldable')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Vego SX 600', 20, , 76, "
- "'Two interchangeable batteries, foldable')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Sunbird E Bike', 18, 30, 118, '')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Leopard Shark', 16, 12, 63, "
- "'Battery indicator, removable seat, foldable')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Vego iQ 450', 15, 0, 60, "
- "'OUT OF STOCK')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('X-Treme X-11', 15, 11, 38, "
- "'High powered brakes, foldable')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('ZZ Cruiser', 14, 10, 46, "
- "'Two batteries, removable seat')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('X-Treme X-010', 10, 10, 14, "
- "'Solid tires')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Q Electric Chariot', 10, 15, 60, "
- "'Foldable')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('X-Treme X250', 15, 12, 0, "
- "'Solid aluminum deck')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Go MotorBoard 2000X', 15, 0, 20, "
- "'Foldable and carryable')");
- query.exec("INSERT INTO scooter (name, maxspeed, "
- "maxrange, weight, description) "
- "VALUES ('Goped ESR750 Sport Electric Scooter', "
- "20, 6, 45, " "'Foldable and carryable')");
- }
- //主程序
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- bool create = !QFile::exists("scooters.db");//是否进行创建的标识
- if (!createConnection())
- return 1;
- if (create)
- createFakeData();
- ScooterWindow window;
- //window.resize(600, 500);
- window.resize(400, 300);
- qDebug()<<"window.resize(400, 300);";
- window.show();
- qDebug()<<"window.show();";
- return app.exec();
- }
| 文件4:scooters.pro
|