Я хочу попробовать SQLite запрос на андроид приложение,SQLiteException: возле "XY": ошибка синтаксиса (код 1):
EDIT: Мое имя колонки:
private static final String NOM_BDD = "sms.db";
private static final int VERSION_BDD = 1;
private static final String COL_ID = "ID";
private static final int NUM_COL_ID = 0;
private static final String TABLE_SMS_SENT = "table_sms_sent";
private static final String COL_DateSending = "dateSending";
private static final String TABLE_SMS_RECEIVED = "table_sms_received";
private static final String COL_DateReceiving = "dateReceiving";
private static final int NUM_COL_DateReceiving = 1;
private static final String COL_PROCESSED ="processed";
private static final int NUM_COL_PROCESSED = 2;
private static final String COL_PHONE ="phone";
private static final int NUM_COL_PHONE= 3;
private static final String COL_DATA ="data";
private static final int NUM_COL_DATA= 4;
Мой запрос здесь :
private static final String CREATE_BDD_SMS_RECEIVED = "CREATE TABLE " + TABLE_SMS_RECEIVED + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_DateReceiving + " TEXT, "
+ COL_PROCESSED + " TEXT, " + COL_PHONE + "TEXT, " + COL_DATA + "TEXT)";
Edit: удаление некоторых пробелов до 'TEXT'
private static final String CREATE_BDD_SMS_RECEIVED = "CREATE TABLE " + TABLE_SMS_RECEIVED + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_DateReceiving + "TEXT, "
+ COL_PROCESSED + "TEXT, " + COL_PHONE + "TEXT, " + COL_DATA + "TEXT)";
И мой OnCreate из myBaseSqlite класса здесь:
@Override
public void onCreate(SQLiteDatabase db) {
//on créé la table à partir de la requête écrite dans la variable CREATE_BDD sent et received
db.execSQL(CREATE_BDD_SMS_RECEIVED);
}
А потом на моем MainActivity:
CSmsReceiverDAO cSmsReceiverDAO = new CSmsReceiverDAO(this);
CSmsReceived SmsReceived1 = new CSmsReceived.SmsReceivedBuilder().Id(0)
.Data("coords XY").DateReceiving("janvier").Phone("+33565456").Processed("zz").build();
cSmsReceiverDAO.open();
try {
cSmsReceiverDAO.persist(SmsReceived1);
} catch (Exception e) {
e.printStackTrace();
}
Я считаю, что интересная линия ошибка здесь:
E/SQLiteDatabase: Error inserting zz=2 coords XY=4 janvier=1 +33565456=3
android.database.sqlite.SQLiteException: near "XY": syntax error: , while compiling: INSERT INTO table_sms_received(zz,coords XY,janvier,+33565456) VALUES (?,?,?,?)
EDIT: мой код: @Override общественного недействительными сохраняются (CSmsReceived т) бросает исключение {
//Création d'un ContentValues (fonctionne comme une HashMap)
ContentValues values = new ContentValues();
//on lui ajoute une valeur associé à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
values.put(t.getDateReceiving(), NUM_COL_DateReceiving);
values.put(t.getProcessed(), NUM_COL_PROCESSED);
values.put(t.getPhone(), NUM_COL_PHONE);
values.put(t.getData(), NUM_COL_DATA);
//on insère l'objet dans la BDD via le ContentValues
bdd.insert(TABLE_SMS_RECEIVED, null, values);
}
Мои OnCreate, кажется, работает, но мой упорствовать() не работает, он делает ошибку:
E/SQLiteDatabase: Error inserting zz=2 coords XY=4 janvier=1 +33565456=3
android.database.sqlite.SQLiteException: near "XY": syntax error: , while compiling: INSERT INTO table_sms_received(zz,coords XY,janvier,+33565456) VALUES (?,?,?,?)
at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68)
at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143)
at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361)
at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:260)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:112)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1838)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1711)
at com.dev.boblinux.cador.bdd.CSmsReceiverDAO.persist(CSmsReceiverDAO.java:85)
at com.dev.boblinux.cador.activities.CMainActivity.onCreate(CMainActivity.java:41)
at android.app.Activity.performCreate(Activity.java:4469)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
at dalvik.system.NativeStart.main(Native Method)
Но я не» т увидеть, где это syntaxe ошибка ..
Спасибо за помощь мне;)
пожалуйста, покажите 'cSmsReceiverDAO.persist()' метод – Karakuri