sqlite - insert Topic is solved
sqlite - insert
здравствуйте. у меня такой вопрос:
я работаю с wxARG с SQLite, все замечательно, вещь очень полезная, но при занесении информации в БД из каталога (~200 файлов, от 10 до 100 записей в каждом) у меня отрабатывается очень медленно (часа полтора), хотя без вставок отрабатывается меньше минуты). Делаю как в примерах: New, заполнение, Save для каждой записи. Но наверняка ведь можно как-то соптимизировать. А как это сделать? и насколько это будет быстрее?
Заранее спасибо
я работаю с wxARG с SQLite, все замечательно, вещь очень полезная, но при занесении информации в БД из каталога (~200 файлов, от 10 до 100 записей в каждом) у меня отрабатывается очень медленно (часа полтора), хотя без вставок отрабатывается меньше минуты). Делаю как в примерах: New, заполнение, Save для каждой записи. Но наверняка ведь можно как-то соптимизировать. А как это сделать? и насколько это будет быстрее?
Заранее спасибо
Visual Studio 2008 Express
wxWidgets 2.8.10
Windows XP sp2
wxWidgets 2.8.10
Windows XP sp2
)))) нет, это грабятся в базу 200 файлов, sqlite файл - один)~200 файлов c SQLite? это как? в документах к SQLite пишут мол только один файл.....
вот в этом и вопрос. в сгенерированных ARG файлах есть только Table::New, Row::Save, RowSet::SaveAll,Сделай через тарзакции. Перед началом - начало транзакции (есть метод в DatabaseLayer), в конце - коммит. При ошибке - роллбек.
А вобще сейв там надо делать ну допустим каждые 100 записей было б нормально.
и если создавать запись-сохранять запись логично, то мне кажется создавать таблицей, сохранять rowset'ом(который не знает о созданных записях) - это не логично.
каким образом создавать-сохранять несколько записей?
Visual Studio 2008 Express
wxWidgets 2.8.10
Windows XP sp2
wxWidgets 2.8.10
Windows XP sp2
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Напужал однако )) я уж думал, что я что-то новое упустил в SQLite....sergiokey wrote: )))) нет, это грабятся в базу 200 файлов, sqlite файл - один)
Имеется в виду добавить новый столбец в таблицу? если так, то можно, но это уже дело не SQLite а чисто SQL, если я не ошибаюсь в SQL есть оператор ALTER TABLE он вроде как добавляет новый столбец, типа: ALTER TABLE moya_tablitsa ADD noviy_stolbets CHAR(100);sergiokey wrote: и еще: можно ли в sqlite дописывать какие то свои переменные(значения), или нужно создавать таблицу?
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Ежель в таблице, есть специальный столбец внесения даты обновления с типом данных "дата" то отчего же нельзя?? есть INSERT вот им и нужно вставлять...sergiokey wrote:нет, имеется в виду, например записать дату обновления, а заводить под это дело целую!!! таблицу не хочется
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Боюсь, что нельзя, только создать таблицу и больше никак.sergiokey wrote:нет, я имею в виду, что нужно сделать пометку в базе данных - например дату обновления, одну на всю базу, а таблицу под одну запись выделять не хочется - жаба душит
Ти-Рекс ответил совершенно верно, через транзакции... если чисто через SQLite то в начале "припер" в середине "степ" в конце "коммит", в wxSQLite в начале "Begin" в конце "Commit" в ДатаБейсЛейере не знаю... но догадываюсь, что в начале должен быть "Бегин" а в конце "Коммит".sergiokey wrote: а насчет первоначального вопроса не знаешь?
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Насколько я помню в SQLite есть одно поле на всю базу данных где можно хранить свое произвольное значение, стоит посмотрить документацию к ориганальному API SQLite.
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets