Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: Dúvida SQLiteOpenHelper

poe um ponto e virgula dentro da string e depois do parentesis..
COLETA (" +
                       "IDAUXCOLETA INTEGER PRIMARY KEY NOT NULL, " +
                       "IDAUXPROCESSO INTEGER," +
                       "IDCOLETA VARCHAR(250)," +
                       "DTPREVISTA DATETIME," +
                       "DTAGENDA DATETIME, " +
                       "OBSCOLETA TEXT)   (AQUI)   ";




2012/1/27 Fabiano - Carioca <fabianobalmeida@gmail.com>
Segue


package br.com.mylims.auxiliares;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class GerenciaBanco extends SQLiteOpenHelper{

       private static final int DATABASE_VERSION = 1;

       private static final String DATABASE_NAME = "mylimsColeta";

       private static final String CATEGORIA = "coleta";

       private static final String COLETA = "CREATE TABLE IF NOT EXISTS
COLETA (" +
                       "IDAUXCOLETA INTEGER PRIMARY KEY NOT NULL, " +
                       "IDAUXPROCESSO INTEGER," +
                       "IDCOLETA VARCHAR(250)," +
                       "DTPREVISTA DATETIME," +
                       "DTAGENDA DATETIME, " +
                       "OBSCOLETA TEXT)";



       private static final String EMPRESA = "CREATE TABLE IF NOT EXISTS
EMPRESA (" +
                       "IDAUXEMPRESA INTEGER PRIMARY KEY NOT NULL," +
                       "NMFANTASIA VARCHAR(250) NOT NULL," +
                       "NMCONTATO VARCHAR(250) NOT NULL, " +
                       "SOBRENOME VARCHAR(255), " +
                       "NMAREACONTATO VARCHAR(255)," +
                       "DDD VARCHAR(250), " +
                       "FONE VARCHAR(250), " +
                       "RAMAL VARCHAR(250), " +
                       "DDDCELULAR VARCHAR(250)," +
                       "CELULAR VARCHAR(250))";



       private static final String CFGFTP = "CREATE TABLE IF NOT EXISTS
CFGFTP (" +
                       "CDFTP INTEGER PRIMARY KEY NOT NULL, " +
                       "IPFTP VARCHAR(250) NOT NULL," +
                       "LOGINFTP VARCHAR(250) NOT NULL," +
                       "SENHAFTP VARCHAR(250) NOT NULL)";



       private static final String USUARIO = "CREATE TABLEIF NOT EXISTS
USUARIO (" +
                       "CDUSUARIO INTEGER PRIMARY KEY NOT NULL," +
                       "NMUSUARIO VARCHAR(250) NOT NULL," +
                       "LOGIN VARCHAR(250) NOT NULL, " +
                       "SENHA VARCHAR(250) NOT NULL,  " +
                       "CDFTP INTEGER NOT NULL,  " +
                       "CONSTRAINT [PK_USUARIO] PRIMARY KEY (CDUSUARIO))";



       private static final String AMOSTRA ="CREATE TABLE IF NOT EXISTS
AMOSTRA (" +
                       "CDAMOSTRA INTEGER PRIMARY KEY NOT NULL," +
                       "IDAMOSTRA VARCHAR(250), " +
                       "IDPROCESSO VARCHAR(250), " +
                       "IDAUXPROCESSO INTEGER, " +
                       "DTPREVISTA DATETIME, " +
                       "DTCOLETA DATETIME, " +
                       "FLCOLETADA CHAR(1) NOT NULL," +
                       "DTDOWNLOAD DATETIME, " +
                       "DTUPLOAD DATETIME, " +
                       "ENDERECOCOLETA VARCHAR(250)," +
                       "OBSERVACAO VARCHAR(250)," +
                       "CDUSUARIO INTEGER NOT NULL," +
                       "IDAUXCOLETA INTEGER NULL," +
                       "IDAUXEMPRESA INTEGER NOT NULL," +
                       "CONSTRAINT [PK_AMOSTRA] PRIMARY KEY (CDAMOSTRA)," +
                       "FOREIGN KEY (CDUSUARIO) REFERENCES USUARIO(CDUSUARIO) ON UPDATE
CASCADE ON DELETE CASCADE," +
                       "FOREIGN KEY (IDAUXCOLETA) REFERENCES COLETA(IDAUXCOLETA) ON UPDATE
CASCADE ON DELETE CASCADE)";


       private static final String GRPINFO ="CREATE TABLE IF NOT EXISTS
GRPINFO(" +
                       "CDGRPINFO INTEGER PRIMARY KEY NOT NULL," +
                       "NMGRPINFO VARCHAR(250))";



       private static final String INFO ="CREATE TABLE IF NOT EXISTS INFO("
+
                       "CDINFO INTEGER PRIMARY KEY NOT NULL," +
                       "NMINFO VARCHAR(250) NOT NULL, " +
                       "CDTIPODADO INTTEGER NOT NULL))";



       private static final String INFOSAMOSTRA = "CREATE TABLE IF NOT
EXISTS INFOSAMOSTRA(" +
                       "CDAMOSTRA INTEGER KEY NOT NULL, " +
                       "CDINFO INTEGER NOT NULL,  " +
                       "CDGRPINFO INTEGER NOT NULL," +
                       "VLINFO VARCHAR(250), " +
                       "FLOBRIGATORIO CHAR(1) NOT NULL, " +
                       "FOREIGN KEY (CDINFO) REFERENCES INFO(CDINFO) ON DELETE CASCADE ON
UPDATE CASCADE, " +
                       "FOREIGN KEY (CDGRPINFO) REFERENCES GRPINFO(CDGRPINFO) ON DELETE
CASCADE ON UPDATE CASCADE, " +
                       "FOREIGN KEY (CDAMOSTRA) REFERENCES AMOSTRA(CDAMOSTRA) ON DELETE
CASCADE ON UPDATE CASCADE)";


       private static final String OPCOESINFO = "CREATE TABLE IF NOT EXISTS
OPCOESINFO (" +
                       "CDINFO INTEGER PRIMARY KEY NOT NULL, " +
                       "CDOPCAO INTEGER NOT NULL, " +
                       "NMOPCAO VARCHAR(250), " +
                       "DESCOPCAO VARCHAR(250))";






       public GerenciaBanco(Context context) {

               super(context, DATABASE_NAME, null, DATABASE_VERSION);


       }

       @Override
       public void onCreate(SQLiteDatabase db) {

               try {

                       db.execSQL(CFGFTP);
                       //db.execSQL(USUARIO);
                       //db.execSQL(EMPRESA);
                       //db.execSQL(GRPINFO);
                       //db.execSQL(INFO);
                       //db.execSQL(OPCOESINFO);
                       //db.execSQL(COLETA);
                       //db.execSQL(AMOSTRA);
                       //db.execSQL(INFOSAMOSTRA);

               } catch (Exception e) {

                       Log.i(CATEGORIA, "ERRADO: " + e);
               }



       }

       @Override
       public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {




       }

}

On 27 jan, 13:23, Clebão - EcoCentauro <cleba...@gmail.com> wrote:
> Cola para mim a classe GerenciaBanco por favor.
>
> Em 27 de janeiro de 2012 13:16, Fabiano - Carioca <fabianobalme...@gmail.com
>
>
>
>
>
>
>
> > escreveu:
> > Corrigindo pergunta: Clebão você acha que o erro está na criação dos
> > campos?
>
> > On 27 jan, 13:15, Fabiano - Carioca <fabianobalme...@gmail.com> wrote:
> > > Clebão você acha que o erro está na dos campos?
>
> > > On 27 jan, 13:10, Fabiano - Carioca <fabianobalme...@gmail.com> wrote:
>
> > > > não foi irmão
>
> > > > On 27 jan, 12:52, Clebão - EcoCentauro <cleba...@gmail.com> wrote:
>
> > > > > tenta alterar a criação da  PRIMARY KEY
>
> > > > > campa  INTEGER PRIMARY KEY,
>
> > > > > Em 27 de janeiro de 2012 11:54, Renato Porto Puccini <
> > > > > renatoppucc...@gmail.com> escreveu:
>
> > > > > > Maravilha!!!
>
> > > > > > legal que meu posto ajudou. E que mundo pequeno mesmo!!!
> > > > > > abraços e sucesso ae Fabiano!!
>
> > > > > > ------------------------------------------
> > > > > > Renato Porto Puccini<
> >http://www.linkedin.com/profile/view?id=58956239&trk>
> > > > > > renatopuccinipt.com
> > > > > > @renatoporto <http://twitter.com/renatoporto>
> > > > > > renatoppucc...@gmail.com
> > > > > > ------------------------------------------
>
> > > > > > 2012/1/27 Fabiano - Carioca <fabianobalme...@gmail.com>
>
> > > > > >> alterei e deu o mesmo resultado cara.
>
> > > > > >> On 27 jan, 11:35, Renato Porto Puccini <renatoppucc...@gmail.com>
> > > > > >> wrote:
> > > > > >> > cara, pelo que eu vi, é um erro no sql.
> > > > > >> > você colocou o ponto e virgula dentro do seu create.
>
> > > > > >> > CREATE TABLE IF NOT EXISTS GRPINFO
> > > > > >> > (" +
> > > > > >> >             "CDGRPINFO INTEGER NOT NULL," +
> > > > > >> >             "NMGRPINFO VARCHAR(250), " +
> > > > > >> >             "CONSTRAINT [PK_GRPINFO] PRIMARY KEY (CDGRPINFO*);*)
>
> > > > > >> > tem que colocar depois do parentesis.
>
> > > > > >> > CREATE TABLE IF NOT EXISTS GRPINFO
> > > > > >> > (" +
> > > > > >> >             "CDGRPINFO INTEGER NOT NULL," +
> > > > > >> >             "NMGRPINFO VARCHAR(250), " +
> > > > > >> >             "CONSTRAINT [PK_GRPINFO] PRIMARY KEY (CDGRPINFO*)*);
>
> > > > > >> > Então ele não  consegue criar o banco, e dae o objeto que vc
> > recebe é
> > > > > >> null.
>
> > > > > >> > ------------------------------------------
> > > > > >> > Renato Porto Puccini <
> > > > > >>http://www.linkedin.com/profile/view?id=58956239&trk>
> > > > > >> > renatopuccinipt.com
> > > > > >> > @renatoporto <http://twitter.com/renatoporto>
> > > > > >> > renatoppucc...@gmail.com
> > > > > >> > ------------------------------------------
>
> > > > > >> > 2012/1/27 Fabiano - Carioca <fabianobalme...@gmail.com>
>
> > > > > >> > > Faltou o log irmão.
>
> > > > > >> > > Segue ele
>
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766): FATAL EXCEPTION:
> > main
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):
> > > > > >> > > java.lang.NullPointerException
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
>
> > android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:
> > > > > >> > > 203)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
>
> > android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelp
> > > > > >> er.java:
> > > > > >> > > 98)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
>
> > br.com.mylims.model.ConfigFTPDao.salvaFTP(ConfigFTPDao.java:30)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > br.com.mylims.controller.TelaCadastroFTPController
> > > > > >> > > $2.onClick(TelaCadastroFTPController.java:190)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > android.view.View.performClick(View.java:2408)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > android.view.View
> > > > > >> > > $PerformClick.run(View.java:8816)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > android.os.Handler.handleCallback(Handler.java:587)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > android.os.Handler.dispatchMessage(Handler.java:92)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > android.os.Looper.loop(Looper.java:123)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > android.app.ActivityThread.main(ActivityThread.java:4627)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > java.lang.reflect.Method.invokeNative(Native Method)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > java.lang.reflect.Method.invoke(Method.java:521)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > com.android.internal.os.ZygoteInit
> > > > > >> > > $MethodAndArgsCaller.run(ZygoteInit.java:868)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
> > > > > >> > > 01-27 12:22:30.224: E/AndroidRuntime(4766):     at
> > > > > >> > > dalvik.system.NativeStart.main(Native Method)
>
> > > > > >> > > On 27 jan, 11:07, Fabiano - Carioca <
> > fabianobalme...@gmail.com>
> > > > > >> wrote:
> > > > > >> > > > kkk, tudo bem cara?.
>
> > > > > >> > > > Este mundo é pequeno mesmo. Post bacana, parabéns.
>
> > > > > >> > > > Segue o link com a minha dúvida. O final do post estão com
> > os
> > > > > >> códigos
> > > > > >> > > > atualizados.
>
> >http://www.portalandroid.org/comunidade/viewtopic.php?f=26&t=17030&p=...
>
> > > > > >> > > > Valeu pela força irmão
>
> > > > > >> > > > On 27 jan, 10:52, Renato Porto Puccini <
> > renatoppucc...@gmail.com>
> > > > > >> > > > wrote:
>
> > > > > >> > > > > Fabiano,
>
> > > > > >> > > > > vc seguiu meu post, haha.
>
> > > > > >> > > > > O motivo de estar vindo null, é porque ele não acha o
> > banco ou não
> > > > > >> > > consegue
> > > > > >> > > > > criar o mesmo.
> > > > > >> > > > > manda o logcat pra gente ver.
> > > > > >> > > > > E como está sua classe que cria o banco?
> > > > > >> > > > > abs
>
> > > > > >> > > > > ------------------------------------------
> > > > > >> > > > > Renato Porto Puccini <
> > > > > >> > >http://www.linkedin.com/profile/view?id=58956239&trk>
> > > > > >> > > > > renatopuccinipt.com
> > > > > >> > > > > @renatoporto <http://twitter.com/renatoporto>
> > > > > >> > > > > renatoppucc...@gmail.com
> > > > > >> > > > > ------------------------------------------
>
> > > > > >> > > > > 2012/1/27 Fabiano - Carioca <fabianobalme...@gmail.com>
>
> > > > > >> > > > > > Irmão,
>
> > > > > >> > > > > > Estou testando testar as minhas alterações e está dando
> > > > > >> > > > > > NullPointerException por causa desta linha:
> > > > > >> > > > > > SQLiteDatabase db =
> > gerenciaDataBase.getWritableDatabase();
>
> > > > > >> > > > > > Estou utilizando este tutorial com base
> > > > > >> > > > > >http://renatopuccinipt.com/tag/android-sqlite/
>
> > > > > >> > > > > > Segue o meu método do erro
>
> > > > > >> > > > > > private GerenciaBanco gerenciaDataBase = new
> > > > > >> GerenciaBanco(this);
>
> > > > > >> > > > > >        public boolean salvaFTP(ConfigFTP ftpBean){
>
> > > > > >> > > > > >                try {
>
> > > > > >> > > > > >                        SQLiteDatabase db =
> > > > > >> > > > > > gerenciaDataBase.getWritableDatabase();
>
> > > > > >> > > > > >                        ContentValues valores = new
> > > > > >> ContentValues();
>
> > > > > >> > > > > >                        valores.put("IPFTP",
> > ftpBean.getIpFtp());
> > > > > >> > > > > >                        valores.put("LOGINFTP",
> > > > > >> > > ftpBean.getLoginFtp());
> > > > > >> > > > > >                        valores.put("SENHAFTP",
> > > > > >> > > ftpBean.getSenhaFtp());
>
> > > > > >> > > > > >                        long sql = db.insert("CFGFTP",
> > null,
> > > > > >> valores);
>
> > > > > >> > > > > >                        if (sql > 0) {
>
> > > > > >> > > > > >                                Log.i(CATEGORIA, "Dados
> > FTP
> > > > > >> salvos com
> > > > > >> > > > > > sucesso!");
> > > > > >> > > > > >                                return true;
>
> > > > > >> > > > > >                        } else {
>
> > > > > >> > > > > >                                Log.i(CATEGORIA, "ERRO:
> > Dados
> > > > > >> FTP  não
> > > > > >> > > > > > foram salvos!");
> > > > > >> > > > > >                                return false;
> > > > > >> > > > > >                        }
>
> > > > > >> > > > > >                } catch (SQLException e) {
>
> > > > > >> > > > > >                        Log.i(CATEGORIA, "ERRO:
> > SQLException
> > > > > >> > > salvaFTP: " +
> > > > > >> > > > > > e);
> > > > > >> > > > > >                        return false;
> > > > > >> > > > > >                }
>
> > > > > >> > > > > >        }
>
> > > > > >> > > > > > O que devo fazer para arrumar isto?
>
> > > > > >> > > > > > Att
>
> > > > > >> > > > > > On 27 jan, 09:20, Fabiano - Carioca <
> > fabianobalme...@gmail.com>
> > > > > >> > > wrote:
> > > > > >> > > > > > > Bom dia!
>
> > > > > >> > > > > > > Pessoal, eu estava utilizando uma base de dados que
> > criei
> > > > > >> fora e
> > > > > >> > > > > > > jogava no emulador. Mas seguindo conselhos de
> > programadores
> > > > > >> mas
> > > > > >> > > > > > > experientes, resolvi criar este banco na mão
> > utilizando
> > > > > >> > > > > > > SQLiteOpenHelper.
>
> > > > > >> > > > > > > Em fim, fiz a classe que cria o banco e joguei para
> > um DAO que
> > > > > >> > > tinha
> > > > > >> > > > > > > pronto para testar.
>
> > > > > >> > > > > > > Não se está certo o que fiz e também estou com algumas
> > > > > >> dúvidas.
>
> > > > > >> > > > > > > Dúvidas:
>
> > > > > >> > > > > > > Como consigo criar este banco assim que acesso o meu
> > sistema?
> > > > > >> (OBS:
> > > > > >> > > > > > > sem a necessidade de botões para iniciar o processo de
> > > > > >> instalação).
>
> > > > > >> > > > > > > (A primeira tela do sistema é uma tela de cadastro e
>
> ...
>
> mais »

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário