Franceshinio
Witam mirki z #programowanie, #android, #sql i troche #cpp, mam pewien problem. Piszę aplikację, która ma działć z bazą danych w QT na Androida. I mam taki problem, że mój program tworzy mi moją bazę danych, ale żadne zapytanie jakie wykonuje na niej, nie zwraca mi czegokolwiek. Nie mam pojęcia dlaczego. Może ktoś będzie wiedział w czym leży szkopuł?

bool MainWindow::openDB(){
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("my.db.sql");
return db.open();
}

Metoda powyżej jest wywoływana w konstruktorze MainWindow. A to pod spodem wchodzi mi do ifa ale nie dodaje nic do tablicy.

if(db.isOpen()){
qDebug() << "dbIsOpen";
QSqlQuery query;
query.exec("INSERT INTO students values(2, 'Tony', 'Stark')");
}
1
  • Najlepsze
  • Wszystkie komentarze
Metaprogrammer
@Franceshinio: Sprawdź co ten exec zwróci i jaki jest błąd wywołując query.lastError()
2
piszczalka
@Franceshinio: Co zwraca metoda query.exec?

Możesz jeszcze sprawdzić metodą QSqlQuery::lastError()
1
sylwke3100
@Franceshinio A nie trzeba commitować zmian czasem?
0
Franceshinio
@piszczalka
@Metaprogrammer dzięki jutro sprawdzę i dam znać teraz zmykam bo mam rano zajęcia.
0
nkrnpp
nkrnpp
@Franceshinio: A tabelę students masz utworzoną w tej bazie?
0
Franceshinio
@nkrnpp tak tworzyłem ręcznie przez adb shell sqlite3
0
Franceshinio
@nkrnpp nawet jeden rekord w niej mam też ręcznie wrzucony.
0
Franceshinio
@Metaprogrammer: @piszczalka: QSqlError("1", "Unable to execute statement", "no such table: students")
Co dziwne jak wejde z buta do bazy dancyh to mam:
Enter ".help" for usage hints.
sqlite> .tables
students

Może trzeba jakiegoś użytkownika wrpowadzić, czy coś? Może tak być, że tabela nie jest widoczna dla wszystkich?
0
piszczalka
@Franceshinio Spróbuj podać pełną ścieżkę do bazy w tej funkcji.

db.setDatabaseName("my.db.sql");
0