2012-02-13 4 views
-1

J'utilise SQLite 3.0 et iOS5.Stocker des images dans la base de données SQLite et récupérer dans ios5

Maintenant, je veux stocker des images dans le type de données vrchar2 dans la base de données et le récupérer dans la vue de mon iPhone.

J'ai utilisé des images stockées dans le type de données BLOB et par NSData je l'ai récupéré it..Nut maintenant je veux le récupérer dans ImageView ..

Comment puis-je utiliser?

+0

Une idée? Je suis un peu confus.Aide-moi !! –

+1

En passant, il existe une divergence d'opinion dans certains cercles sur les images et les DB. Dans un camp vous avez le "Stocker l'image dans la BD", et dans l'autre camp, "Gardez l'image dans le système de fichiers et stockez le chemin vers l'image dans la BD". Il y a des compromis avec chaque méthode. –

+0

Ce lien vous aide. http://stackoverflow.com/questions/10811437/store-images-in-to-sqlite-database –

Répondre

0

Vous devez créer un DAO afin de pouvoir récupérer les informations du fichier sqlite. Appelez ensuite ce fichier pour obtenir toutes les informations dont vous avez besoin. Ensuite, récupérer le blob comme ceci:

const char * myData = sqlite3_column_blob(statement, 1(this number is different according to your database)); 
int myDataSize = sqlite3_column_bytes(statement, 1); 
NSData *data = [NSData dataWithBytes:myData length:myDataSize]; 

initialisez

myPhoto.thePhoto = [[UIImage alloc] initWithData:data]; 
+0

Merci ... Cela fonctionne –

+0

vous êtes les bienvenus – alecnash

1

Vous devez d'abord créer un UIImage de NSData en utilisant:

UIImage *img = [[UIImage alloc] initWithData:theData]; 

Ensuite, vous pouvez utiliser cette image dans votre vue de l'image:

UIImageView *imgView = [[UIImageView alloc] initWithImage: img]; 

Ne pas oublier de faire la gestion de la mémoire appropriée si !

+0

Mais comment puis-je récupérer l'image de la ligne perticluar de la base de données? –

+0

qu'est-ce que la donnée indique? –

+0

Pour cela, vous devez avoir une certaine logique quant à l'image que vous allez chercher. Qu'est-ce que vous voulez exactement réaliser? theData indique le NSDATA que vous avez mentionné dans votre question que vous avez récupéré. –

1

Y at-il une raison particulière d'utiliser l'image entière dans la base de données?

La raison de poser cette question est simplement parce que je pense que stocker NSData dans la base de données stocke beaucoup de données dans la base de données, ce qui à plus long terme peut rendre votre base de données très lourde.

Une meilleure option consiste à enregistrer l'image dans le répertoire Documents ou peut-être le répertoire de la bibliothèque d'ailleurs, puis simplement enregistrer le chemin d'image complet de l'image dans votre base de données.

Ensuite, il suffit que la récupération dans un imageView vous devez appeler

UIImageView *imgView = [UIImageView setImage:[[UIImage alloc] initWithContentsOfFile:filePath]]; 

Voici tout ce que vous devez passer est « filePath » que vous avez récupéré à partir de la base de données.

J'espère que cela vous aide.

+0

Ouais ... Meilleure option ... Je vais essayer .. Merci –

Questions connexes