SQLite Insert gagal secara diam-diam di BlackBerry

Saya mencoba memasukkan beberapa data ke dalam tabel SQLite yang ada. Tabel dan database dibuat menggunakan API yang sama, tetapi karena alasan tertentu penyisipan tidak berfungsi, dan tidak pernah memberi saya pesan kesalahan.

Saya sedang menguji ini pada simulator BlackBerry 9550.

Inilah pertanyaan saya:

final String insertQuery
    = "INSERT INTO 'Auth'( "
        + "'" + USER_ID_KEY + "', "
        + "'" + USER_NAME_KEY + "', "
        + "'" + USER_PASSWORD_KEY + "' ) "
        + "VALUES ( "
        + userId + ", "
        + "'" + username + "', "
        + "'" + password + "' ) ";

Dan kode yang saya gunakan untuk menjalankannya:

final Statement insertOrUpdateStatement;

insertOrUpdateStatement
    = database.createStatement(insertQuery);

insertOrUpdateStatement.prepare();
insertOrUpdateStatement.execute();
insertOrUpdateStatement.close();

Ini dijalankan dengan baik, saya tidak mendapatkan pesan kesalahan, tetapi data tidak pernah dimasukkan. Saya telah menggunakan 3 browser SQLite berbeda dan API BlackBerry untuk mengonfirmasi hal ini.

Saya juga sudah mencoba menggunakan transaksi eksplisit, dan tidak berhasil juga. Saya telah mencari masalah serupa, mencoba banyak variasi pada kode ini, dan tidak ada yang berhasil. Membantu?


person Andrew Koster    schedule 06.07.2011    source sumber
comment
Berikut adalah seluruh kelas yang mengimplementasikan fungsi login yang saya gunakan untuk mengujinya. tautan   -  person Andrew Koster    schedule 07.07.2011
comment
Setelah seharian bermain-main tanpa hasil, akhirnya berhasil. Saya tidak tahu apa, jika ada, yang saya lakukan secara berbeda kali ini. Ini adalah lingkungan pengembangan paling flaki yang pernah saya gunakan, selain editor/kompiler COBOL kuno.   -  person Andrew Koster    schedule 07.07.2011


Jawaban (1)


Saya berasumsi ini karena Anda memiliki kelebihan tanda kutip tunggal di sekitar tabel dan bidang Anda. Sudahkah Anda mencoba menghapus tanda kutip dari sintaks penyisipan, mis.

final String insertQuery
         = "INSERT INTO Auth(USER_ID_KEY,USER_ID_KEY,USER_PASSWORD_KEY) "
            + "VALUES ("
            + userId + ", "
            + "'" + username + "', "
            + "'" + password + "' ) ";
person George Johnston    schedule 06.07.2011
comment
Alasan saya berasumsi, adalah karena Sqlite bukan salah satu bidang keahlian saya, namun permintaan Anda akan gagal di mySQL atau SQL Server -- jadi saya berasumsi demikian juga di sini. - person George Johnston; 06.07.2011
comment
Bukan bidang keahlian saya juga, saya hanya berusaha sedekat mungkin dengan contoh kode yang pernah saya lihat. Saya menghapus tanda kutip dan tidak ada yang berubah. Bahkan jika itu adalah kesalahan sintaksis, saya harus mendapatkan pengecualian, bukan kegagalan diam-diam ini. - person Andrew Koster; 06.07.2011