2010-10-23 3 views
1

Est-il possible de télécharger une vidéo dans une base de données SQLite (pas seulement l'URL)? Je l'ai essayé mais n'ai pas trouvé le succès; Si quelqu'un connaît la solution, veuillez poster la réponse.Envoyer la vidéo dans SQLite

+0

Qu'avez-vous fait? À quoi ressemble votre code et quel message d'erreur obtenez-vous? –

Répondre

0
NSData *imgData; 
imgData = [[NSData alloc] initWithContentsOfURL: 
        [NSURL URLWithString:[aDict objectForKey:@"Icon"]]]; 
if (sqlite3_prepare_v2(database, sqlStatement1, -1, 
         &compiledStatement1, NULL) == SQLITE_OK) 
{ 
    sqlite3_bind_blob(compiledStatement1, 1, [imgData bytes], 
         [imgData length], SQLITE_TRANSIENT); 
} 

if ([[aDict objectForKey:@"Icon"] length] > 0) 
{ 
    [imgData release]; 
} 
0

Cela semble être une mauvaise idée de stocker de gros fichiers dans une base de données SQL, en particulier SQLite. Si vous avez vraiment besoin de le faire, assurez-vous d'utiliser une colonne BLOB et d'échapper vos données correctement.

+0

J'utilise le type de blob et convertit également l'URL dans la chaîne de ..base64 mais les données ne sont pas enregistrées dans la table .... si vous avez le code plz m'envoyer ... – parvind

+5

http://thedailywtf.com/Articles/ plz-email-me-teh-codez.aspx –

0

C'est une très mauvaise pratique d'essayer de stocker de grandes données binaires dans une base de données, il vaut mieux stocker la vidéo sur le téléphone et l'emplacement de la vidéo dans la base de données. Cela va considérablement améliorer votre vitesse d'ouverture du fichier, car une recherche de fichiers sur l'iPhone est beaucoup plus rapide que de tirer tous ces octets de la base de données.

+0

Je veux construire une application autonome de sorte que l'utilisateur peut l'utiliser sans aucune connexion réseau, donc j'ai besoin de sauvegarder le vedio dans la mémoire du téléphone lui-même ... – parvind

+0

Liam ne parle pas un emplacement réseau, mais un dossier de système de fichiers. – vikingosegundo

2

Ce ne sera pas la réponse exacte à cette question. Mais je voudrais donner une solution. Vous pouvez enregistrer la vidéo dans le répertoire de documents en tant que format de fichier. Et insérez le nom du fichier dans votre base de données SQLITE.

Et chaque fois que vous voulez accéder à la vidéo, vous pouvez facilement faire en interrogeant le nom du fichier. Comme SQLITE est une base de données de faible poids &, il ne sera donc pas recommandé d'ajouter une charge importante sur celle-ci.

Questions connexes