将视频上传到SQLite
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];
}
将大文件存储在SQL数据库(特别是SQLite)听起来不太好。 如果您确实需要这样做,请确保使用BLOB列并正确地转义您的数据。
我使用blob类型,它也将网址转换为..base64字符串,但数据不保存在表....如果你有代码PLZ发送给我... – parvind 2010-10-23 14:19:25
http://thedailywtf.com/Articles/ plz-email-me-teh-codez.aspx – 2010-10-23 14:27:16
尝试将大型二进制数据存储在数据库中是一种非常糟糕的做法,您最好将视频存储在手机上并将视频的位置存储在数据库中。这将显着提高打开文件的速度,因为在iPhone上查找文件比从数据库中提取所有这些字节快得多。
我想构建独立的应用程序,以便用户可以在没有任何网络连接的情况下使用它,所以我需要将手机内存中的视频保存到它自己... – parvind 2010-10-23 14:28:39
Liam不是在谈论一个网络位置,但是一个文件系统文件夹。 – vikingosegundo 2010-10-23 20:19:54
这不是这个问题的确切答案。但我想解决。您可以将视频作为文件格式保存在文档目录中。并将文件名插入到SQLITE数据库中。
只要你想访问视频,你可以通过查询文件名轻松完成。
由于SQLITE是一个低重量数据库&,因此不建议在它上面增加重负载。
你有什么要求?你的代码是什么样的,你会得到什么样的错误信息? – 2010-10-23 14:13:37