Sqlite não faz validação dos dados inseridos.
Em 7 de outubro de 2015 10:25, Rômulo Nadler <romulofnadler@gmail.com> escreveu:
O ano esta como TEXT e você esta gravando interineo 1970 e não '1970'.--Em 7 de outubro de 2015 10:11, L. <carisio@gmail.com> escreveu:Não.O banco de dados foi criado com o seguinte script dentro do SQLite Expert:create table carro (_id integer primary key autoincrement, nome text not null, placa text not null, ano text not null);inser into carro (nome, placa, ano), values ('Fusca A', 'ABC-1234', 1950);inser into carro (nome, placa, ano), values ('Brasilia B', 'DEF-1234', 1960);inser into carro (nome, placa, ano), values ('Chevete C', 'GHI-1234', 1970);Depois disso, verifiquei no SQLite Expert e banco foi criado e populado. Então, seguindo as instruções do livro, startei o emulador e depois joguei o arquivo do banco de dados para a pasta "data\data\livro.android.cap14\databases\" .O código que chama o banco é:public class RepositorioCarro {private static final String CATEGORIA = "livro";public static final String NOME_BANCO = "livro_android";public static final String NOME_TABELA = "carro";protected SQLiteDatabase db;public RepositorioCarro(Context ctx) {try {Log.i(CATEGORIA, "Tentando abrir banco");db = ctx.openOrCreateDatabase(NOME_BANCO, Context.MODE_PRIVATE, null);Log.i(CATEGORIA, "Abriu banco"); // Ele não chega a printar essa linha no LogCat} catch (Exception e) {Log.e(CATEGORIA, "Erro abrindo banco: " + e.toString());}}// Outros métodos}E o onCreate da Activity que chama esse método:Obrigadoprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);repositorio = new RepositorioCarro(this);// Outras bobagens não relacionadas}
Em quarta-feira, 7 de outubro de 2015 09:25:21 UTC-3, gorio escreveu:fez exatamente isso ?public void onCreate(Context ctx,SQLiteDatabase db){ //openOrCreateDatabase --> Cria ou Abre banco de dados //(nome.db,permissão (modo), ...) // MODE_PRIVATE --> Priva o acesso do banco para somente aplicação db = ctx.openOrCreateDatabase(this.DATABASE_NAME,Context.MODE_PRIVATE, null); db.execSQL(this.SQL_CREATE); //Criando tabela caso não exista!! db.close(); }2015-10-07 9:01 GMT-03:00 L. <car...@gmail.com>:Bom dia pessoal,estou tentando fazer os exemplos do capítulo 14 do livro do Lecheta e estou tendo alguns problemas tentando acessar o banco.Criei um banco de dados de teste usando a ferramenta SQLite Expert e populei de acordo com o que ele fala no livro. Depois disso, usando a aba File Explorer do eclipse, enviei o arquivo do banco ("livro_android") para a pasta data\data\livro.android.cap14\databases\O erro está dando na linha que tenta abrir o banco:public static final String NOME_BANCO = "livro_android";public static final String NOME_TABELA = "carro";db = ctx.openOrCreateDatabase(NOME_BANCO, Context.MODE_PRIVATE, null);Eu não entendi muito bem o que está acontecendo e como tentar resolver isso. Alguém pode dar uma luz?Segue log do LogCat:10-07 11:52:53.265: I/Database(289): sqlite returned: error code = 14, msg = cannot open file at source line 2546710-07 11:52:53.265: I/Database(289): sqlite returned: error code = 14, msg = prepared statement aborts at 37: [CREATE TABLE IF NOT EXISTS android_metadata (locale TEXT)]10-07 11:52:53.265: E/Database(289): CREATE TABLE android_metadata failed10-07 11:52:53.305: E/Database(289): Failed to setLocale() when constructing, closing the database10-07 11:52:53.305: E/Database(289): android.database.sqlite.SQLiteException: unable to open database file10-07 11:52:53.305: E/Database(289): at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)10-07 11:52:53.305: E/Database(289): at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1950)10-07 11:52:53.305: E/Database(289): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1818)10-07 11:52:53.305: E/Database(289): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)10-07 11:52:53.305: E/Database(289): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)10-07 11:52:53.305: E/Database(289): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844)10-07 11:52:53.305: E/Database(289): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540)10-07 11:52:53.305: E/Database(289): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)10-07 11:52:53.305: E/Database(289): at livro.android.cap14.RepositorioCarro.<init>(RepositorioCarro.java:25)10-07 11:52:53.305: E/Database(289): at livro.android.cap14.CadastroCarros.onCreate(CadastroCarros.java:26)10-07 11:52:53.305: E/Database(289): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)10-07 11:52:53.305: E/Database(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)10-07 11:52:53.305: E/Database(289): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)10-07 11:52:53.305: E/Database(289): at android.app.ActivityThread.access$2300(ActivityThread.java:125)10-07 11:52:53.305: E/Database(289): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)10-07 11:52:53.305: E/Database(289): at android.os.Handler.dispatchMessage(Handler.java:99)10-07 11:52:53.305: E/Database(289): at android.os.Looper.loop(Looper.java:123)10-07 11:52:53.305: E/Database(289): at android.app.ActivityThread.main(ActivityThread.java:4627)10-07 11:52:53.305: E/Database(289): at java.lang.reflect.Method.invokeNative(Native Method)10-07 11:52:53.305: E/Database(289): at java.lang.reflect.Method.invoke(Method.java:521)10-07 11:52:53.305: E/Database(289): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)10-07 11:52:53.305: E/Database(289): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)10-07 11:52:53.305: E/Database(289): at dalvik.system.NativeStart.main(Native Method)10-07 11:52:53.305: E/livro(289): Erro abrindo banco: android.database.sqlite.SQLiteException: unable to open database file10-07 11:52:53.324: W/dalvikvm(289): threadid=1: thread exiting with uncaught exception (group=0x4001d800)10-07 11:52:53.344: E/AndroidRuntime(289): FATAL EXCEPTION: main10-07 11:52:53.344: E/AndroidRuntime(289): java.lang.RuntimeException: Unable to start activity ComponentInfo{livro.android.cap14/livro.android.cap14.CadastroCarros}: java.lang.NullPointerException10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.ActivityThread.access$2300(ActivityThread.java:125)10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)10-07 11:52:53.344: E/AndroidRuntime(289): at android.os.Handler.dispatchMessage(Handler.java:99)10-07 11:52:53.344: E/AndroidRuntime(289): at android.os.Looper.loop(Looper.java:123)10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.ActivityThread.main(ActivityThread.java:4627)10-07 11:52:53.344: E/AndroidRuntime(289): at java.lang.reflect.Method.invokeNative(Native Method)10-07 11:52:53.344: E/AndroidRuntime(289): at java.lang.reflect.Method.invoke(Method.java:521)10-07 11:52:53.344: E/AndroidRuntime(289): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)10-07 11:52:53.344: E/AndroidRuntime(289): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)10-07 11:52:53.344: E/AndroidRuntime(289): at dalvik.system.NativeStart.main(Native Method)10-07 11:52:53.344: E/AndroidRuntime(289): Caused by: java.lang.NullPointerException10-07 11:52:53.344: E/AndroidRuntime(289): at livro.android.cap14.RepositorioCarro.getCursor(RepositorioCarro.java:98)10-07 11:52:53.344: E/AndroidRuntime(289): at livro.android.cap14.RepositorioCarro.listarCarros(RepositorioCarro.java:105)10-07 11:52:53.344: E/AndroidRuntime(289): at livro.android.cap14.CadastroCarros.atualizarLista(CadastroCarros.java:31)10-07 11:52:53.344: E/AndroidRuntime(289): at livro.android.cap14.CadastroCarros.onCreate(CadastroCarros.java:27)10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)10-07 11:52:53.344: E/AndroidRuntime(289): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)10-07 11:52:53.344: E/AndroidRuntime(289): ... 11 moreObrigado,L.To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.







0 comentários:
Postar um comentário