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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2011, 09:18   #1
Volodq
Пользователь
 
Регистрация: 12.05.2011
Сообщений: 14
По умолчанию Не могу найти ошибку в INSERT

Добрый день.
Делаю приложение хочу что бы по нажатию кнопки происходило добавление данных в таблицу БД.
На форму добавил ADOQuery связал с БД
добавил кнопку в нее на нажатие прописал следующий код
Dolhniki_Query.close;
Dolhniki_Query.SQL.Text:= 'INSERT INTO [Dolhniki] ([Nomer_Dok], [Dolhnik], [datarohd], [Adress], [Summa])'+
'VALUES ('23564', 'Петренко Николай Васильевич', '21.01.1974', 'г. Москва', '2500')';
Dolhniki_Query.Open;
На стадии компиляции выдает ошибку
[Error] Sekr1.pas(197): Missing operator or semicolon
[Error] Sekr1.pas(197): Illegal character in input file: 'т' ($F2)
[Error] Sekr1.pas(197): Illegal character in input file: 'л' ($EB)
[Error] Sekr1.pas(197): Illegal character in input file: 'в' ($E2)
[Error] Sekr1.pas(197): Record, object or class type required
[Error] Sekr1.pas(197): Illegal character in input file: 'М' ($CC)
[Error] Sekr1.pas(197): Missing operator or semicolon
[Fatal Error] Project1.dpr(9): Could not compile used unit 'Sekr1.pas'

Подскажите где ошибаюсь.
Volodq вне форума Ответить с цитированием
Старый 26.05.2011, 10:03   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
Dolhniki_Query.SQL.Text:= 'INSERT INTO Dolhniki (Nomer_Dok, Dolhnik, datarohd, Adress, Summa) VALUES (23564, "Петренко Николай Васильевич", "21.01.1974", "г. Москва", 2500)';
это если поле Nomer_Dok и Summa числовые
SERG1980 вне форума Ответить с цитированием
Старый 26.05.2011, 10:27   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Volodq Посмотреть сообщение
Missing operator or semicolon
Кавычки вида " могут и не сработать, тогда заменить их на ''
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 26.05.2011 в 12:03.
Аватар вне форума Ответить с цитированием
Старый 26.05.2011, 12:27   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Почему то многие авторы вопросов ни в какую не хотят раскрывать секрет с какой СУБД работают.

Ну ладно, здесь не так важно, потому как строка запроса составлена лишь бы как:
Одинарные кавычки в одинарных кавычках без соблюдения правил - это круто.
Как тут ошибкам не быть даже на этапе компиляции.

Уважаемый автор, в Дельфи есть правило формирования константных строк с применением стандартных (для Дельфи) кавычек. Сделайте милость, прочтите.
Если не хочется, то используйте функцию QuotedStr. Поможет.

_Query.Open; при запросе INSERT - это еще круче.
Прик вне форума Ответить с цитированием
Старый 26.05.2011, 12:30   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Апострофы которые должны быть включены в строку УДВАИВАЮТСЯ. (пример записи выделен красным).
Код:
Dolhniki_Query.SQL.Text:= 'INSERT INTO [Dolhniki] ([Nomer_Dok], [Dolhnik], [datarohd], [Adress], [Summa])'+
'VALUES (''23564', 'Петренко Николай Васильевич', '21.01.1974', 'г. Москва', '2500')';
Для выполнения запроса невозвращающего результат (Insert Delete) используется
Код:
Dolhniki_Query.ExecSQL;
Оформляйте в сообщении код правильно. Используйте кнопочку #.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 26.05.2011, 15:14   #6
Volodq
Пользователь
 
Регистрация: 12.05.2011
Сообщений: 14
По умолчанию Спасибо

Цитата:
Сообщение от evg_m Посмотреть сообщение
Апострофы которые должны быть включены в строку УДВАИВАЮТСЯ. (пример записи выделен красным).
Код:
Dolhniki_Query.SQL.Text:= 'INSERT INTO [Dolhniki] ([Nomer_Dok], [Dolhnik], [datarohd], [Adress], [Summa])'+
'VALUES (''23564', 'Петренко Николай Васильевич', '21.01.1974', 'г. Москва', '2500')';
Для выполнения запроса невозвращающего результат (Insert Delete) используется
Код:
Dolhniki_Query.ExecSQL;
Оформляйте в сообщении код правильно. Используйте кнопочку #.
Занес все в кавычки вид '' и заработало. Спасибо за подсказку.
Volodq вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НЕ могу найти ошибку T.A.T.A.R.I.N Паскаль, Turbo Pascal, PascalABC.NET 2 06.03.2011 10:45
Не могу найти ошибку... pufystyj PHP 7 03.03.2011 08:36
Не могу найти ошибку в БД Bilargo Помощь студентам 0 26.11.2009 14:00
Не могу найти ошибку. Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 17:05
Не могу найти ошибку . KVANTOM Общие вопросы Delphi 2 08.01.2009 17:15