Ir para conteúdo
  • Cadastre-se

Dúvida com SQLite


Posts Recomendados

Olá a todos!

Enfim decidi começar a usar persistência de dados no meu aplicativo. Não gostei nem um pouco de Core Data, então resolvi usar SQLite no osso mesmo, mas tenho tido problemas em acessar o banco de dados...

Eu já entendi que pra abrir a conexão eu preciso usar sqlite_stmt. Mas não tenho a menor idéia do que seja isso, e não entendo como, através do programa abre-se a conexão com o DB.

Na verdade, estou bem perdido. Qualquer ajuda seria muito bem-vinda!

Agradeço a todos!

Aah, sim, esqueci de comentar que a biblioteca do sqlite3.0 já está incluída

Link para o comentário
Compartilhar em outros sites

  • Respostas 10
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Dias Populares

Top Postadores Neste Tópico

Statement é o teu sql em si.

Voce vai ter que dar uma olhada na documentacao da Apple.

Mas voce precisa mesmo gravar em um banco de dados? Um plist ou um banco de dados "real" acessado por webservices nao serve?

Avalie bem isso ai pois usar isso e ruim demais.

Preciso. Meu app precisa ser offline, e com atualizações via web. Essa atualização e dá através de um XML. Até então estou precisando lançar uma versão nova do app na appstore toda vez que mudo informações...

Link para o comentário
Compartilhar em outros sites

Entao, se nao for nada espetacular usa um arquivo plist.

Voce pode baixar ele da web e salvar no device.

Pensei nisso, mas o Plist não me dá a possibilidade de guardar valores diferentes em rows. Eu preciso salvar 4 dados em uma só row. Será que daria pra fazer isso usando arrays na plist?

Link para o comentário
Compartilhar em outros sites

O que exatamente voce quer gravar?

Esse App é um que estou desenvolvendo pra minha escola. Tem uma seção com Os Horarios. Nela vc encontra O nome da materia, o horario, o professor que dá a materia e o livro daquela matéria. Por enquanto as informações estão escritas no proprio app, mas de vez em quando há modificações na grade de horarios da escola, e eu preciso lançar uma nova versão do app na appstore toda vez. O que quero é, quando houver atualizações, carregar os dados de um XML e salvar todos no DB SQLite, que será usado para preencher as TableViews com as matérias e seus respectivos horários.

Link para o comentário
Compartilhar em outros sites

Certo. Não precisa o SQL.

Faça assim:

O plist


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>materia</key>
		<string>MATERIA 1</string>
		<key>livro</key>
		<string>LIVRINHO</string>
		<key>professor</key>
		<string>JUREMA</string>
	</dict>
<dict>
		<key>materia</key>
		<string>MATERIA 2</string>
		<key>livro</key>
		<string>iLivro</string>
		<key>professor</key>
		<string>GERTRUDES</string>
	</dict>

</array>
</plist>

Salva esse arquivo como .plist em qualquer servidor web. Ai vc pega o arquivo dessa forma:


NSURL* url = [NSURL URLWithString:@"http://www.escolinha.com.br/materias.plist"];
NSMutableArray *arrayMaterias = [[NSMutableArray alloc] initWithContentsOfURL:url];

Aí voce já pegou o array de materias. Depois é só fazer um for e pegar uma materia especifica.

NSMutableDictionary *materia = [arrayMaterias objectAtIndex:0]; // Onde zero é o indice da posicao do array.

//aqui voce pega os valores em si

 algumaLabel.text = [materia objectForKey:@"materia"];

A key tem que estar escrita igualzinho como no .plist senao ele nao acha.

Voce pode fazer assim, mas sempre vai precisar de uma conexao com internet para baixar o plist atualizado, ou salvar o plist no seu device para usar quando estiver offline. Voce poderia inclusive fazer um plist a parte só para colocar a data da ultima atualizacao e comparar com o que está no seu device.

Dá para colocar as capinhas dos livros da mesma forma. Coloca as imagens na web e cria mais uma key no plist para salvar a url da mesma.

Fica aí o desafio para voce pesquisar e implementar essas idéias. Sempre que possível, evite usar o SQL.

Link para o comentário
Compartilhar em outros sites

Certo. Não precisa o SQL.

Faça assim:

O plist


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>materia</key>
		<string>MATERIA 1</string>
		<key>livro</key>
		<string>LIVRINHO</string>
		<key>professor</key>
		<string>JUREMA</string>
	</dict>
<dict>
		<key>materia</key>
		<string>MATERIA 2</string>
		<key>livro</key>
		<string>iLivro</string>
		<key>professor</key>
		<string>GERTRUDES</string>
	</dict>

</array>
</plist>

Salva esse arquivo como .plist em qualquer servidor web. Ai vc pega o arquivo dessa forma:


NSURL* url = [NSURL URLWithString:@"http://www.escolinha.com.br/materias.plist"];
NSMutableArray *arrayMaterias = [[NSMutableArray alloc] initWithContentsOfURL:url];

Aí voce já pegou o array de materias. Depois é só fazer um for e pegar uma materia especifica.

NSMutableDictionary *materia = [arrayMaterias objectAtIndex:0]; // Onde zero é o indice da posicao do array.

//aqui voce pega os valores em si

 algumaLabel.text = [materia objectForKey:@"materia"];

A key tem que estar escrita igualzinho como no .plist senao ele nao acha.

Voce pode fazer assim, mas sempre vai precisar de uma conexao com internet para baixar o plist atualizado, ou salvar o plist no seu device para usar quando estiver offline. Voce poderia inclusive fazer um plist a parte só para colocar a data da ultima atualizacao e comparar com o que está no seu device.

Dá para colocar as capinhas dos livros da mesma forma. Coloca as imagens na web e cria mais uma key no plist para salvar a url da mesma.

Fica aí o desafio para voce pesquisar e implementar essas idéias. Sempre que possível, evite usar o SQL.

Muito obrigado! Vou tentar isso aí. Mas tenho uma dúvida... Como faço pra salvar essas informações em uma plist? Ou então baixar diretamente a plist? Pq o app precisa ser Offline...

E pq sempre evitar SQL?

Link para o comentário
Compartilhar em outros sites

A plist vc faz na mão mesmo. É um xml como outro qualquer.

Depois que voce ler o arquivo da web, voce já tem o plist na memoria e pode salvar ele no seu device.

Procura por writetofile na documentação ou coisa assim.

Evita usar o SQl, pq é chato e trabalhoso de usar e é um processamento desnecessário. Só vale a pena quando você tem muita coisa estruturada para guardar. Quando o xml fica muito grande, com muitos nos e sub nos ele acaba ficando mais lento de ler, aí vale a pena usar o SQLite.

Link para o comentário
Compartilhar em outros sites

A plist vc faz na mão mesmo. É um xml como outro qualquer.

Depois que voce ler o arquivo da web, voce já tem o plist na memoria e pode salvar ele no seu device.

Procura por writetofile na documentação ou coisa assim.

Evita usar o SQl, pq é chato e trabalhoso de usar e é um processamento desnecessário. Só vale a pena quando você tem muita coisa estruturada para guardar. Quando o xml fica muito grande, com muitos nos e sub nos ele acaba ficando mais lento de ler, aí vale a pena usar o SQLite.

Entendi! Já consegui com writeToFile! Muito obrigado mesmo!

Link para o comentário
Compartilhar em outros sites

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.



  • Estatísticas do Fórum

    • Total de Tópicos
      56k
    • Total de Posts
      465.6k
×
×
  • Criar Novo...