Хорошо, поэтому я делаю успехи с момента моего последнего вопроса. Мой вопрос теперь намного проще, или, по крайней мере, я чётче понимаю, каков мой вопрос. В моем AppDelegate у меня есть этот код для чтения данных из моей базы данных:
-(void) readFromDatabase {
// Setup the database object
sqlite3 *database;
// Init the Array
sections = [[NSMutableArray alloc] init];
// Open the database from the users filessytem
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement = "select * from books";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
// Loop through the results and add them to the feeds array
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
// Read the data from the result row
NSString *aChapter = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
NSString *aSection = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
// Create a new object with the data from the database
Text *text = [[Text alloc] initWithChapter:aChapter verse:aSection];
// Add the object to the Array
[sections addObject:text];
[text release];
}
}
// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
И это работает нормально. Он считывает из таблицы книг значения, полученные из двух столбцов после моего столбца идентификатора (который является первичным ключом). Таким образом, в приложении первое значение заполняет uitableview, и нажатие строки приводит вас к подробному представлению, где значение находится в следующем столбце в БД. Это все нормально, но мой вопрос о том, как импортировать несколько записей одновременно. Так что в моем подробном представлении мне нужно, чтобы было uitextview, и мне нужно как-то изменить свой SQL-запрос на что-то вроде
"select * from books WHERE column = X"
где X будет номером набора, который я буду применять к пакету записей, которые я хочу отобразить все вместе в uitextview. Разве я не могу это сделать? Рисовать из столбца, который не обязательно уникален, или из первичного ключа? Эта партия записей, конечно, будет связана с исходным значением в uitableviewcell. Я знаю, что это очень просто и легко сделать, я просто не могу понять, как это сделать! Так что, если кто-то может понять это и помочь мне, это будет очень признательно! Спасибо
Редактировать: Дополнение
Хорошо, поэтому проблема, с которой я сталкиваюсь (и это может быть просто структура моей базы данных или что-то в этом роде) состоит в том, что этот один запрос подходит для всех подходов, просто не делая это для меня. В моем приложении мне нужно иметь 1 uitableview, который заполняется данными из таблицы в моей базе данных, а затем еще одно представление таблицы, которое детализируется оттуда, которое представляет номера глав, относящиеся к разделу, на который щелкнули в первом uitablevew, и это также из другая таблица в базе данных, а затем, наконец, подробный вид, который показывает несколько записей одновременно в uitextview, все, что касается главы, выбранной во втором uitableview, снова из другой таблицы в базе данных. Так что моя проблема в том, что мне не нравится этот подход, я попал в то место, где я делаю запрос, говорящий «выбрать * и просто получить следующие два значения, которые вы найдете». Я должен быть в состоянии сделать свои запросы более конкретными, и не только в одной таблице, но и в нескольких. Означает ли это, что я могу настроить несколько операторов const char *sqlStatement =
и привязать их конкретно к нужному выводу, который мне нужен? Если бы вы могли просто показать, как эти части сочетаются друг с другом, это было бы очень ценно. Спасибо