以下程序在32位系统下好用,在win7 64位下报错
- bool testfile(){ QString filename = "C:\\test.txt"; if(!QFile::exists (filename)){ qDebug() << "file is not exists"; return false; } QFile file(filename); qDebug() << file.size (); if(!file.open(QIODevice::ReadOnly)){ qDebug() << "open failed!" << file.error (); file.close (); return false; } QByteArray Data = file.readAll ();
- //db
- QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //连接数据库 ,需要mysql数据库驱动 db.setHostName("localhost"); db.setDatabaseName("test"); // 我们之前建立的数据库 db.setUserName("root"); // 我们创建的 yunfan 用户名 db.setPassword("123"); // yunfan 用户的密码 if (!db.open()){ qDebug() << "Cannot open database"; return false; }else{ qDebug() << "connect success!"; }
- QSqlQuery query(db);
- query.prepare ("INSERT INTO filetest (filename , file ) VALUES( :name , :file )");
- query.bindValue(":name", filename); query.bindValue(":file", Data);
- if(query.exec()){ qDebug() << "file update success!!! again!!"; db.close(); return true; }else{ QSqlError error = query.lastError(); qDebug() << error; db.close(); return false; }}
报错:
- QSqlError(2036, "QMYSQL3: Unable to bind value", "Using unsupported buffer type: -1163005939 (parameter: 1)")
请问这是为什么,我如何能写出兼容32 位和64位的代码?
[ 此帖被anubiskong在2010-11-12 16:10重新编辑 ]