【问题标题】:Iphone Sqlite problemiphone Sqlite 问题
【发布时间】:2012-11-30 23:43:28
【问题描述】:

我必须使用 sqlite 制作项目,我宁愿使用简单的 plist、xml 甚至核心数据,因为我没有任何使用 sql 的经验。但是它必须能够从 sqlite 数据库中读取。我下载了 FMDB 包装器并快速设置它,但是当我尝试从我的数据库中读取它时,它没有显示在 tableview 中,这是我的代码:

TermsArray = [[NSMutableArray alloc] init];

NSString *path  = [[NSBundle mainBundle] pathForResource:@"Database" ofType:@"sql"];
FMDatabase *db  = [[FMDatabase alloc] initWithPath:path];
[db open];

FMResultSet *fResult= [db executeQuery:@"SELECT * FROM country WHERE id=1"];

while([fResult next])
{

    CountryString = [fResult stringForColumn:@"name"];

    [CountryArray addObject:CountryString];

    NSLog(@"The data is %@=",CountryString);
}
[db close];
  }

我使用这个在我的表格视图中显示它:

NSString *Text = [CountryArray objectAtIndex:indexPath.row];
cell.textLabel.text = Text;

现在我没有收到任何错误,但数组始终为空,在控制台中我也没有收到任何警告等,但我注意到 NSLOG 从未出现,所以我不认为那部分是在职的。 这是我在文本编辑器中的 sql 文件:

 CREATE TABLE country ( id INTEGER PRIMARY KEY, name VARCHAR(250),location TEXT,number INTERGER);
  INSERT INTO country (name,location,number) VALUES('UK','country location here',1);

另外,sqlite 文件应该是什么样的?我使用 sqlite 编辑器创建了一个,它生成了一个 sql 文件,当我在文本编辑器中打开它时,我只看到 sql 语句?

如果有人能帮我解决这个问题,那就太好了,

谢谢!

【问题讨论】:

  • 文件扩展名是否正确?大多数时候,SQLite DB 的文件扩展名是.sqlite,而不是.sql
  • @DarkDust SQLite 数据库文件的扩展名无关紧要。
  • 嘿,谢谢,但我都试过了,他们没有改变。
  • @WTP:pathForResource:ofType: 必须与他在包中的文件名匹配。如果文件不存在并且 SQLite 没有明确地 被告知以只读方式打开文件,则 SQLite 只需创建一个空数据库即可完全解释问题。
  • 谢谢,但它绝对是正确的文件名。

标签: iphone sqlite


【解决方案1】:

只需复制 sql 语句并在 sql 控制台中运行即可 之后你必须备份数据库 使用 .backup

【讨论】:

  • 您好,感谢您的回答,我认为这可能是问题所在,因为 .sql 文件只是一个命令列表。我该怎么做呢?谢谢!
【解决方案2】:

我已经修复了,我的 sql 文件有问题,现在效果很好!感谢您的所有 cmets!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多