Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2013, 16:24   #1
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию sqlite delphi 7

Код:
sqldb := TSQLiteDatabase.Create('input_records.db');
    if not sqldb.TableExists('record_list') then
      sqldb.ExecSQL('CREATE TABLE record_list (id INTEGER PRIMARY KEY, record TEXT)');
            for i := 1 to N do
                begin
                  temp := '######';
                  sqldb.ExecSQL('INSERT INTO record_list (record) VALUES("' + temp
                    +
                    '")');
                end;
вот таки образом пытаюсь добавлять записи в sqlite.
все бы хорошо, но выбивает не закончив цикл с сообщением

Цитата:
Project Project1 raised exception class ESQLiteException with message 'Error exexution SQL statement "INSERT INTO record_list (record) VALUES("######")"SQL logic error or missing database'.Process stopped. Use Step or Run to continue.
в чем проблема? что я не так делаю?
unbanned вне форума Ответить с цитированием
Старый 09.12.2013, 16:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в SQLLite строки оковычиваются двойной ковычкой разве?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2013, 16:45   #3
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

все равно выбивает) разницы не заметил... записывает и с двойными и с одинарными ковычками.

Последний раз редактировалось unbanned; 09.12.2013 в 16:48.
unbanned вне форума Ответить с цитированием
Старый 09.12.2013, 17:06   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А не смущает record, как название поля? Запросто может быть зарезервированным словом. И ошибка выcкакивает при каком значении i?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2013, 20:52   #5
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

при разном в том то и дело... может на 15м выбить, может на 200м... заменил "record" итог тот же.
unbanned вне форума Ответить с цитированием
Старый 09.12.2013, 21:14   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

1 зачем создавать таблицу?
2 коммитить не надо после создания?
eval вне форума Ответить с цитированием
Старый 09.12.2013, 21:18   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
CREATE TABLE record_list (id INTEGER PRIMARY KEY, record TEXT)
Ну создается таблица, есть примари кей, а значения кто будет обеспечивать? Автоинкрементного ключа не вижу, следовательно в инсерте id тоже нужно вставлять, уникальность програмно обеспечивать. Это из общих рассуждений, с такой СУБД ни когда не работал. Примеры подглядел, вроде после создания не коммитят, но думаю беда все таки в ключе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2013, 21:31   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

и я не работал, тоже вот рассуждаю..
странно что автор говорит мол выбивает не с первого раза, хотя может ему так кажется.
eval вне форума Ответить с цитированием
Старый 09.12.2013, 21:32   #9
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

формируется то таблица правильно, если открыть БД потом таблица будет составлена верно... но не до конца. сейчас попробовал запустить demo пример который шел "в комплекте" такая же ситуация...
unbanned вне форума Ответить с цитированием
Старый 09.12.2013, 21:37   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну все таки попробовать
Код:
INSERT INTO record_list (id,record) VALUES(1,'######')
INSERT INTO record_list (id,record) VALUES(2,'######')
INSERT INTO record_list (id,record) VALUES(3,'######')
...
Ну и коммит не забыть по концу. И как транзакции начинается узнать - на автомате или принудительно

или при создании описать id INTEGER PRIMARY KEY AUTOINCREMENT, тогда в инсерте id не нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.12.2013 в 21:51.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi XE3 + SQLite + Data Explorer - External Exception Xardas БД в Delphi 2 02.10.2014 00:14
SQLite ТипичныйСтудент Помощь студентам 5 13.05.2013 16:29
Delphi XE + SQLite 3.7.5 + шифрование KiL0z БД в Delphi 2 27.04.2011 18:34
SQLite Dr.Badnezz БД в Delphi 2 24.03.2010 09:46
Вопрос по использованию SQLite в delphi ROFF Помощь студентам 1 06.05.2009 09:26