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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2013, 23:22   #1
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию Не выполняется запрос на добавление в ACCESS

Здравствуйте! Проблема такова. Есть 2 проекта с одинаковыми модулями на добавление, но разными БД MS Access. Таблицы в Access идентичны по типам. Так вот, в одном проекте в таблицу все прекрасно добавляется, а в другом - нет.
Вылетает ошибка "Ошибка синтаксиса в инструкции INSERT INTO".

Поля в таблице "user"
USER -текстовый формат
PASS -текстовый формат
ACCESS - логический формат

Вот код:
Код:
procedure TForm3.Button1Click(Sender: TObject);
var s1:string;
    i:integer;
begin
  Form1.T_usr_pass.first;
  while not Form1.T_usr_pass.EOF do
  begin
    s1:=Form1.T_usr_pass.FieldByName('user').value;
    if (Edit1.Text=s1) then
    begin
      Edit1.SetFocus;
      ShowMessage('Такой пользователь уже существует');
      exit;
    end;
    Form1.T_usr_pass.next;
  end;
  ins_del_query.SQL.Clear;
  ins_del_query.SQL.Text:='INSERT INTO USER_PASS (USER,'+
  'PASS,ACCESS) VALUES ("'+Edit1.Text+'","'+Edit2.Text+'",'+
  BoolToStr(CheckBox1.checked)+');';
  ins_del_query.ExecSQL;
end;
Файл БД сохранен в формате Access 2003. Монопольный режим убран, разрешение на чтение и запись стоят. Что ещё может быть не так?
Спасибо за внимание, и всем ответившим отдельное спасибо.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 25.04.2013 в 23:57.
Rin вне форума Ответить с цитированием
Старый 25.04.2013, 23:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

значит, таблицы не такие уж одинаковые...
как вариант, навскидку, проверьте наличие ключевого поля и его свойств (похоже, что там, где запрос работает, ID имеет autoincrement == счётчик)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.04.2013, 00:11   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

тут больше удивляет, почему
Цитата:
в одном проекте в таблицу все прекрасно добавляется
eval вне форума Ответить с цитированием
Старый 26.04.2013, 08:34   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Начать с того, что как минимум слово user зарезервировано в ACCESS. Для этого квадратные скобки существуют

ADD

Еще BoolToStr(CheckBox1.checked) внушает подозрение. ACCESS съест '-1' или '0'?
Может BoolToStr(CheckBox1.checked,True)?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 26.04.2013 в 10:15.
Аватар вне форума Ответить с цитированием
Старый 27.04.2013, 00:12   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Цитата:
Начать с того, что как минимум слово user зарезервировано в ACCESS.
Цитата:
значит, таблицы не такие уж одинаковые...
Именно в этом была проблема. В старом проекте было поле "usr", а в новом "user".
А BoolToStr Access съедает нормально.
Спасибо Вам за ответы.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 27.04.2013 в 00:16.
Rin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется запрос REztor SQL, базы данных 2 26.11.2012 17:56
Не выполняется запрос по параметру КВВ Microsoft Office Access 4 20.06.2012 16:47
Запрос не выполняется GreenShuller SQL, базы данных 5 17.06.2012 12:27
не выполняется запрос Deeller БД в Delphi 4 25.04.2011 09:14
Не выполняется запрос к БД в Joomla Arassir WordPress и другие CMS 3 14.04.2011 16:03