この非常に単純なiPad アプリケーションでは、データベース内のテーブルにレコードを挿入してから取得しようとしています。挿入操作は完了しましたが、データベースに変更はなく、どこに問題があるのかわかりません。
これがデータベースを使用したプロジェクトです。 http://www.4shared.com/zip/qTmrrpcc/gadeer1.html
ありがとうございました。
この非常に単純なiPad アプリケーションでは、データベース内のテーブルにレコードを挿入してから取得しようとしています。挿入操作は完了しましたが、データベースに変更はなく、どこに問題があるのかわかりません。
これがデータベースを使用したプロジェクトです。 http://www.4shared.com/zip/qTmrrpcc/gadeer1.html
ありがとうございました。
フォルダー内のデータベースを開くコマンドと、バンドル内sqlite3_open
のデータベースを開くコマンドの2 つのコマンドが表示されます。Documents
前者は、Documents
そこからデータベースを開く前に、バンドルからデータベースを正しくコピーしています。ただし、そのデータベースで行った挿入は、後でバンドル内のコピーを開いたときに反映されないことは明らかです。どちらsqlite3_open
のコマンドも同じプロセスに従う必要があります。バンドルからDocuments
にまだコピーしていない場合はコピーし、データベースを で開きますDocuments
。
あなたのgetschools
方法にもバグがあります。それは言います:
- (IBAction)getschools:(id)sender {
static NSInteger currentIndex = 0;
if (++currentIndex == [self.schools count]) {
currentIndex=0;
} else {
school *aschool = (school *) [self.schools objectAtIndex: currentIndex];
[self.idview setText:aschool.schoolid];
[self.nameview setText:aschool.schoolname];
}
}
おそらく次のように言うべきです:
- (IBAction)getschools:(id)sender {
static NSInteger currentIndex = 0;
if (++currentIndex == [self.schools count]) {
currentIndex=0;
}
school *aschool = (school *) [self.schools objectAtIndex: currentIndex];
[self.idview setText:aschool.schoolid];
[self.nameview setText:aschool.schoolname];
}
バグが原因で、挿入したばかりのレコードが表示されなくなる可能性があるため、これについてのみ言及します。これは、他の場所で本物のデータベースのバグを診断しているときに混乱を招きます。