Приложение к вычислениям на db.execsql ();
Вопрос
Мое приложение сохраняет корпус, когда я пытаюсь просмотреть класс, который удерживает владелец базы данных. Я получаю ошибку на методе OnCreate () моей базы данных. У меня есть одно приложение, которое использует то же самое, что иначе в базе данных практически так же, как единственное отличие состоит в том, что я пытаюсь нажать на опцию меню вместо регулярной кнопки, я не знаю, будет ли это повлиять на проблему в любом случае. Если бы кто -то мог сказать мне, что случилось, это было бы неплохо. благодарю вас.
Ошибка журнала CAT обновлена
11-28 22:06:01.951: E/AndroidRuntime(19544): FATAL EXCEPTION: main
11-28 22:06:01.951: E/AndroidRuntime(19544): java.lang.RuntimeException: Unable to start activity ComponentInfo{http.www.hotapp.com.timeandlocation/http.www.hotapp.com.timeandlocation.db.DatabaseViewer}: android.database.sqlite.SQLiteException: near "IS": syntax error: CREATE TABLE dbtable (_id INTEGER PRIMARY KEY AUTOINCREMENT, latitude TEXT IS NOT NULL, longitude TEXT IS NOT NULL, time TEXT IS NOT NULL, date TEXT IS NOT NULL);
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.os.Looper.loop(Looper.java:123)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-28 22:06:01.951: E/AndroidRuntime(19544): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 22:06:01.951: E/AndroidRuntime(19544): at java.lang.reflect.Method.invoke(Method.java:521)
11-28 22:06:01.951: E/AndroidRuntime(19544): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-28 22:06:01.951: E/AndroidRuntime(19544): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-28 22:06:01.951: E/AndroidRuntime(19544): at dalvik.system.NativeStart.main(Native Method)
11-28 22:06:01.951: E/AndroidRuntime(19544): Caused by: android.database.sqlite.SQLiteException: near "IS": syntax error: CREATE TABLE dbtable (_id INTEGER PRIMARY KEY AUTOINCREMENT, latitude TEXT IS NOT NULL, longitude TEXT IS NOT NULL, time TEXT IS NOT NULL, date TEXT IS NOT NULL);
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1727)
11-28 22:06:01.951: E/AndroidRuntime(19544): at http.www.hotapp.com.timeandlocation.db.Database$DatabaseHelper.onCreate(Database.java:35)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106)
11-28 22:06:01.951: E/AndroidRuntime(19544): at http.www.hotapp.com.timeandlocation.db.Database.open(Database.java:63)
11-28 22:06:01.951: E/AndroidRuntime(19544): at http.www.hotapp.com.timeandlocation.db.DatabaseViewer.onCreate(DatabaseViewer.java:26)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-28 22:06:01.951: E/AndroidRuntime(19544): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
Метод Oncreate внутри класса базы данных
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(" CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_LATITUDE + " TEXT IS NOT NULL, " +
KEY_LONGITUDE + " TEXT IS NOT NULL, " +
KEY_TIME + " TEXT IS NOT NULL, " +
KEY_DATE + " TEXT IS NOT NULL);");
}
Класс зрителей
public class DatabaseViewer extends Activity{
private TextView dbla;
private TextView dblo;
private TextView dbti;
private TextView dbda;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.database);
dbln = (TextView) findViewById(R.id.dblo);
dbti = (TextView) findViewById(R.id.dbti);
dbda = (TextView) findViewById(R.id.dbda);
dbla = (TextView) findViewById(R.id.dbla);
Database info = new Database(this);
info.open();
String data = info.latData();
info.close();
dblt.setText(data);
}
}
Решение
Попробуй это:
1) Удалить "IS"
2) Удалить ';' в конце
Другие советы
Из Некоторая документация SQLite:
Набор ограничений SQL для каждой таблицы. SQLite поддерживает уникальные, а не нулевые ограничения, чек и внешний ключ.
Уберите «IS« часть », не нулевой, чтобы прочитать« текст, а не нулевой »
Проблема с таблицей создать запрос ..
Удалить "есть" .. вот что также говорит LogCat
Сделайте одну вещь .. Используйте Firefox с SQLite Manager .. Попробуйте свои запросы SQLite там при получении таких ошибок.
К вашему сведению: http://code.google.com/p/sqlite-manager/