Хранение массива в базе данных SQLite

Вопрос:

У меня есть 2 столбца типа VARCHAR (1000) и тип TEXT в SQLite db. Мое требование – хранить значения в массиве в db. Я попытался сохранить значения в массиве в строку, используя цикл for, но как только элемент управления выходит из цикла for, значения, отображаемые для строки, являются только последним элементом в массиве…

Есть ли способ, с помощью которого я могу напрямую хранить массив в DB??

Ниже мой код:

NSString *tempVal=0, *tempFlag=0;
NSString *temp[256], *Flag[256];

for(int i=0; i<256; i++)
{
NSLog(@"HELLO %d", tempVal);
temp[i] = (NSString*)valMines[i];
Flag[i] = (NSString*)openFlag[i];

NSLog(@"ValMines is %d", temp[i]);
NSLog(@"OpenFlag is %d", Flag[i]);

tempVal = temp[i];
tempFlag == Flag[i];

NSLog(@"ValMines is %d %d", temp[i], tempVal);
}

NSLog(@"Inside Save Data func");
NSLog(@"ValMines is %d", tempVal);
NSLog(@"OpenFlag is %d", tempFlag);

Будет ли над ним работать? Как?

Ответ №1

В соответствии с этим другим сообщением SQLite не поддерживает массивы напрямую. Он только делает ints, text и floats.

Как сохранить массив в одном столбце в Sqlite3?

Ответ №2

Попробуйте следующее:

NSMutableString *tempVal = [NSMutableString stringWithCapacity:1000];
NSMutableString *tempFlag = [NSMutableString stringWithCapacity:256];

for (int i = 0; i < 256; i++)
{
NSLog(@"ValMines is %@", valMines[i]);
NSLog(@"OpenFlag is %@", openFlag[i]);

// adding a space between each string
[tempVal appendFormat:@" %@", valMines[i]];
[tempFlag appendFormat:@" %@", openFlag[i]];
}

NSLog(@"Inside Save Data func");
NSLog(@"ValMines is %@", tempVal);
NSLog(@"OpenFlag is %@", tempFlag);

Оцените статью
TechArks.Ru
Добавить комментарий