Sqlite: создать таблицу и заполнить информацией только один раз - PullRequest
0 голосов
/ 19 августа 2011

У меня есть проект appcelerator titanium (вам не нужно знать платформу, чтобы помочь мне), который я использую для создания приложения для iOS. Я хочу иметь базу данных с таблицей, которая в первый раз будет заполнена несколькими строками, а затем останется одна после первого раза.

Я знаю, что вы можете создать таблицу, если она не существует. Есть ли что-то похожее для вставки данных?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 20 августа 2011

Расширяя ответ MPelletier с помощью некоторого специфичного для Titanium кода, вы можете сделать следующее в своем проекте:

var my_db = Ti.Database.open('nameofdb');
var my_result_set = my_db.execute('SELECT * FROM MyTable');
var records = my_result_set.rowCount;

Переменная records будет указывать, есть ли у вас данные в вашей таблице, и тогда вы сможете действовать соответственно.

Для Titanium есть несколько хороших утилит ORM-ish: TiStore и Joli - две, которые я использовал. Оба вдохновлены ActiveRecord и могут быть полезны для сокращения вашего кода, связанного с БД. Они на Github, если вы хотите узнать о них больше!

0 голосов
/ 30 августа 2011

Вы можете создать свою БД и вставить в нее данные с помощью SQLLiteManager или любого другого инструмента, который вам нужен, а затем сбросить его.

Возьмите файл, который вы сбросили, поместите его в папку проекта Titanium (где-то в папке Resources).

Затем эта строка кода возьмет содержимое файла .sqlite и вставит его в iOS db:

var db = Ti.Database.install('../your-db.sqlite', 'your-db-name');

Только не забудьте в вашем SQL-файле оператор CREATE IF NOT EXISTS.

Или используйте REPLACE вместо INSERT, как сказал MPelletier.

0 голосов
/ 19 августа 2011

Если хотите, есть INSERT ИЛИ ЗАМЕНА, но вы можете просто проверить количество строк в таблице:

SELECT COUNT(*) FROM MyTable;

Тогда решите ввести их на этом.

...