Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 426
от 02.12.2007, 00:05

Администратор:Gh0stik
В рассылке:Подписчиков: 303, Экспертов: 32
В номере:Вопросов: 1, Ответов: 2


Вопрос № 111150: Уважаемые программисты, у меня к Вам вопрос: Я пишу на Delphi с использованием SQL (базы в Access), так вот, при попытке добавить запись в таблицу возникает ошибка - ошибка синтексиса в конструкции insert into! В чем моя ошибка? ...

Вопрос № 111.150
Уважаемые программисты, у меня к Вам вопрос:
Я пишу на Delphi с использованием SQL (базы в Access), так вот, при попытке добавить запись в таблицу возникает ошибка - ошибка синтексиса в конструкции insert into!
В чем моя ошибка?

Приложение:

Отправлен: 27.11.2007, 00:02
Вопрос задал: PPPPPP
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Gh0stik
Здравствуйте, !

По всей видимости вы просто не верно "собирате" строку запроса (обратим внимание натакие ошибки):
1) ADOQuery2.SQL.Add('insert into Zakazi (Kod_с, Articul, kol, Date)');
верная запись выглядит так:
ADOQuery2.SQL.Add('insert into Zakazi (Kod_с, Articul, kol, Date)');

2) Во второй строке также подобные ошибки, помимо тогоесли Вы вносите поле типа-дата, то необходимо сделать некоторые преобразование (привести к нужному формату), а также дял заполнения и постороения сложных запросов рекомендую Вам использовать функицю format():

ADOQuery2.SQL.Add(format('values (%s, ''%s'', %s, #%s#);',
[edit1.text,edit2.text,edit3.text,DateToStr(Date,tFrm)]));

в переменной tFrm - определяем надлежащий вид для форматирования даты
var tFrm:TFormatSettings;
begin
tFrm.DateSeparator:='/';
tFrm.ShortDateFormat:='mm/dd/yyyy';
...


Также обращаю Ваше внимание на то, если Вам необходимо внести через запрос ТЕКСТОВОЕ значение, то его необходимо окаймлять ОДИНОЧНЫМИ кавычками (при записи ее необходимо напписать ДВЕ одиночные кавычки вмете):

ADOQuery2.SQL.Add(format('values (%s,''%s'', %s, #%s#);',
[edit1.text,edit2.text,edit3.text,DateToStr(Date,tFrm)]));

Числовые значения НЕ ограничиваются кавычками:
ADOQuery2.SQL.Add(format('values (%s, ''%s'', %s, #%s#);',
[edit1.text,edit2.text,edit3.text,DateToStr(Date,tFrm)]));

В приложении полный измененныйкод процедуры (возможно гне-нибудь и допустил опечатку, поскольку переделовал запрос из своей базы).

Good Luck!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 27.11.2007, 01:05

Отвечает: Mishell
Здравствуйте, PPPPPP!
ваш запрос должен выглядить примерно так
ADOQuery2.SQL.Text:='into Zakazi (Kod_с, Articul, kol, Date) values ('+edit1.text+','+QuotedStr(edit2.text)+','+edit3.text+',GetDate())';
т.е. обратите внимание на то что строки должны быть обрамлены апострофами,
функция даты выглядит как GetDate() (хотя на счет Access'а надо уточнить есть ли вообще у него такая ф-ция)
если будете вставлять дату из самой Дельфи то для Access'овского запроса она должна выглядеть так: '#'+FormatDateTime('yyyy"/"mm"/"dd',Date)+'#'
Ответ отправил: Mishell (статус: 8-ой класс)
Ответ отправлен: 27.11.2007, 10:13


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.64 от 24.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное