Проблема с синтаксисом INSERT INTO
От: Kate Lyskovsky Россия  
Дата: 23.03.04 11:30
Оценка:
База данных Access, ADO, CBuilder6.

Не могу вставить запись в таблицу при помощи запроса:
  ADOQuery->SQL->Clear();
  ADOQuery->SQL->Add("INSERT INTO MyTable (Year, Month, Day) VALUES(2004, 3, 23)");
  ADOQuery->ExecSQL();

...и тут вылетает "Syntax error in INSERT INTO statment".
Такие поля в таблице есть, в SQL Explorer'е все работает. А в чем дело?
Re: Проблема с синтаксисом INSERT INTO
От: FruT Германия www.bevip.ru
Дата: 23.03.04 11:47
Оценка:
если на MQ SQL
попробуй так:
KL>
KL>  ADOQuery->SQL->Clear();
KL>  ADOQuery->SQL->Add("INSERT INTO dbo.MyTable(Year, Month, Day) VALUES(2004, 3, 23)");
KL>  ADOQuery->ExecSQL();
KL>
Лучше умереть сидя чем жить стоя
Искусственный интеллект — ничто по сравнению с естественной глупостью
http://www.bevip.ru
Re: Проблема с синтаксисом INSERT INTO
От: algol Россия about:blank
Дата: 23.03.04 11:49
Оценка:
Здравствуйте, Kate Lyskovsky, Вы писали:

KL>
KL>  ADOQuery->SQL->Add("INSERT INTO MyTable (Year, Month, Day) VALUES(2004, 3, 23)");
KL>

KL>...и тут вылетает "Syntax error in INSERT INTO statment".
KL>Такие поля в таблице есть, в SQL Explorer'е все работает. А в чем дело?

Может в отсутствии пробела после VALUES?
Re[2]: Проблема с синтаксисом INSERT INTO
От: Elena_ Россия  
Дата: 23.03.04 13:08
Оценка: 12 (3)
Здравствуйте, algol, Вы писали:

KL>>
KL>>  ADOQuery->SQL->Add("INSERT INTO MyTable (Year, Month, Day) VALUES(2004, 3, 23)");
KL>>

KL>>...и тут вылетает "Syntax error in INSERT INTO statment".
KL>>Такие поля в таблице есть, в SQL Explorer'е все работает. А в чем дело?

A>Может в отсутствии пробела после VALUES?


Скорее всего дело в том, что в Access и в Jet — Year, Month, Day — зарезервированные слова

см.MSDN

ACC2002: Microsoft Jet 4.0 Reserved Words

— здесь все 3 указаны

ACC2002: Reserved Words in Microsoft Access

— здесь только Year

В 2000 — тоже соответствующая статья есть
Пользователь — друг программиста!
Re: Проблема с синтаксисом INSERT INTO
От: Forint Украина  
Дата: 23.03.04 13:17
Оценка:
А типы у полей какие собственно?..
... << RSDN@Home 1.1.0 stable >>
Re[3]: Проблема с синтаксисом INSERT INTO
От: ilya_ny  
Дата: 23.03.04 15:25
Оценка: 3 (1)
Здравствуйте, Elena_, Вы писали:

E_>Здравствуйте, algol, Вы писали:


KL>>>
KL>>>  ADOQuery->SQL->Add("INSERT INTO MyTable (Year, Month, Day) VALUES(2004, 3, 23)");
KL>>>

KL>>>...и тут вылетает "Syntax error in INSERT INTO statment".
KL>>>Такие поля в таблице есть, в SQL Explorer'е все работает. А в чем дело?

A>>Может в отсутствии пробела после VALUES?


E_>Скорее всего дело в том, что в Access и в Jet — Year, Month, Day — зарезервированные слова


а как же Access разрешмл создать таблицу с такими полями?

может тогда так :

  ADOQuery->SQL->Add("INSERT INTO MyTable ([Year], [Month], [Day]) VALUES(2004, 3, 23)");


?
Re[4]: Проблема с синтаксисом INSERT INTO
От: Elena_ Россия  
Дата: 23.03.04 22:41
Оценка:
Здравствуйте, ilya_ny, Вы писали:

E_>>Скорее всего дело в том, что в Access и в Jet — Year, Month, Day — зарезервированные слова


_>а как же Access разрешмл создать таблицу с такими полями?


Честно говоря, я не разбиралась досконально, но вот такая цитата из INFO: Microsoft Jet 4.0 Reserved Words

The Microsoft Jet database engine runs in several different modes depending on whether it is called from Microsoft Access, Data Access Objects, the Microsoft OLE DB Provider for Microsoft Jet, or the Microsoft Access ODBC driver. It can be run in either ANSI mode or non-ANSI (traditional) mode.

Each of these modes results in a slightly different set of reserved words. Queries written in one mode may use a reserved word as an identifier and fail in another mode because of this.


Вполне вероятно, что со скобками отработает нормально.
Пользователь — друг программиста!
Re[5]: Проблема с синтаксисом INSERT INTO
От: Callisto  
Дата: 24.03.04 04:20
Оценка: 2 (1)
E_>Вполне вероятно, что со скобками отработает нормально.

Именно со скобками !!!
Re[6]: Проблема с синтаксисом INSERT INTO
От: Kate Lyskovsky Россия  
Дата: 24.03.04 06:20
Оценка:
Да, действительно, со скобками все заработало.
Удивляюсь, только, как это я раньше на такое не натыкалась, ведь в других запросах это поле тоже участвует

Большое спасибо всем, кто ответил .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.