[DUVIDA] SQLite[resolvido]

Digamos que eu crie duas app

ambas tem acesso ao banco x

e trabalham com os dados do banco x.

E se eu desinstalar a app 1, o banco x vai embora certo?

e como a app numero 2 vai trabalhar?

Boa pergunta. Tenta adicionar o banco externo ao app (cartao sd). Imagino que assim ele não apague.

Oi,

Realmente… Se você desinstalar a app 1 o banco será deletado. Porém, “teoricamente” se existir uma outra app utilizando o serviço do banco, o mesmo não poderá ser deletado. Não é? :twisted:

Tchauzin!

mas e entao? rs oque acontece?
deveria ficar neh mas é deletado…

pensamentos malignos e tristes ao mesmo tempo :frowning: kkkkk

Bom dia, depende. Você cria a base de dados por uma dessas app’s ? Se sim, se você apagar a app que criou o banco irá apagar a base também, pois o banco será criado na pasta definido por você no seu manifast ex: br.com.exemplo.

Abraços

e como eu criaria fora?

isso eu ja não sei rsrs e pq vc teria que excluir essa aplicação com a base de dados ?

Oi,

Pesquise por SQLite Expert Personal.

Tchauzin!

No Android:
Não desista-lo a aplicação, instalo normalmente “por cima” e aparece um dialogo avisando que os dados serão mantidos.
Se mudar a versão do banco de dados, ai dependendo da sua classe de conexão pode apagar os dados, por exemplo:

class DatabaseHelper extends SQLiteOpenHelper {
[....]
@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			Log.w(TAG, "Atualizando o banco de dados da versão " + oldVersion+ " para " + newVersion+ ", todos os dados serão perdidos!");
			
			db.execSQL("DROP TABLE IF EXISTS " + TAB_USUARIOS);
			db.execSQL("DROP TABLE IF EXISTS " + TAB_BORDEROS);
			db.execSQL("DROP TABLE IF EXISTS " + TAB_COBRANCA);
			
			onCreate(db);
		}
[....]

Faço o mesmo que o BTO disse.

Oi,

Sim. Acho que todos fazem isso. Mas a questão problema é: “E se desinstalarmos a aplicação?”

Tchauzin!

[quote]
Valeio Bezerra wrote:
Faço o mesmo que o BTO disse.

Oi,

Sim. Acho que todos fazem isso. Mas a questão problema é: “E se desinstalarmos a aplicação?”

Tchauzin![/quote]

Outra questão é: “Pra que desinstalar a aplicação?”

eu vi o mesmo exemplo na Caelum, mas isso nao da um droptable caso o banco exista?

como ele guarda os dados dando um droptable?

[quote=Valeio Bezerra][quote]
Valeio Bezerra wrote:
Faço o mesmo que o BTO disse.

Oi,

Sim. Acho que todos fazem isso. Mas a questão problema é: “E se desinstalarmos a aplicação?”

Tchauzin![/quote]

Outra questão é: “Pra que desinstalar a aplicação?”[/quote]

Oi,

Pra retira-la do celular?!

Tchauzin!

Não sei se da pra atualizar dando deploy pelo eclipse. Ao inves de desinstalar e instalar novamente, Pois um app que eu quero fazer e vender nao sei vamos colocar no google play pois é mto especifico.

Precisa colocar no Google play?

ficaria assim?

@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		String ddl = "CREATE TABLE" + TABELA + " (id INTEGER PRIMARY KEY, "
				+ " produto TEXT, codigo INTEGER, preco REAL, foto TEXT);";
		db.execSQL(ddl);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		String sql = "DROP TABLE IF EXISTS " + TABELA;
		db.execSQL(sql);
		onCreate(db);
	}

[quote=lina][quote=Valeio Bezerra][quote]
Valeio Bezerra wrote:
Faço o mesmo que o BTO disse.

Oi,

Sim. Acho que todos fazem isso. Mas a questão problema é: “E se desinstalarmos a aplicação?”

Tchauzin![/quote]

Outra questão é: “Pra que desinstalar a aplicação?”[/quote]

Oi,

Pra retira-la do celular?!

Tchauzin![/quote]
Complementando oque a Lina disse, eu posso ter duas app que usam o mesmo banco… se eu tirar uma… hehe ja era certo?

Então não precisa desinstalar e instalar a aplicação, é só atualizar e isso irá manter os dados.

mas dai tem que atualizar pelo google play certo?

Algumas respostas foram para o lado da atualização de modelo, de aplicativo, mas acho que a pergunta é sobre compartilhamento do banco de dados entre aplicações diferentes, certo?

Veja o que diz a documentação oficial:

http://developer.android.com/guide/topics/data/data-storage.html#db

E aqui [ http://stackoverflow.com/questions/13067585/what-happens-if-an-android-app-which-creates-database-is-then-uninstalled ] fala sobre o que acontece com o banco quando a aplicação é desinstalada.

Então, a resposta mais direta para a pergunta é que não dá para fazer o que você quer…

Algumas alternativas:

  • Dar uma hackeada, tentar achar alguma opção secreta do SQLite para criar o banco no storage externo e não no privado da aplicação.
  • Guardar os dados em um servidor externo, integrado ao aplicativo pela rede (serviços sobre http)
  • Criar uma outra aplicação, que teria o papel de dona da base de dados. Seus dois programas atuais fariam solicitações de persistência para a essa terceira.