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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2014, 21:50   #1
rebel91
 
Регистрация: 28.05.2013
Сообщений: 9
Вопрос Где ошибка в sql-запросе?

Исходные данные:
1) Форма 2: таблица Excel (Export.xls, лист sheet), подключенная по технологии ADO как БД
2) Форма 1: таблица Export базы данных medb.mdb, подключенная по технологии ADO

Задача:
Данные из файла Ексель добавить в базу данных в таблицу Export.xls

Проблема: пишу sql-запрос, по синтаксису 100 раз проверял на правильность. Мозг сломал, но хз где ошибка.

Просьба помочь в правке sql-запроса, а идеально было бы выложить код, как можно реализовать импорт.

Вот такой запрос:
Код:
adoqueryExcel.open;
adoqueryExcel.First;
while not adoqueryExcel.eof do
begin
adoquery.close;
memo1.Text:='INSERT INTO Export (IDE, Date, Client) VALUES ('
   +QuotedStr(ADOQueryExcel.FieldByName('IDE').AsString)+
','+QuotedStr(ADOQueryExcel.FieldByName('Date').AsString)+
','+QuotedStr(ADOQueryExcel.FieldByName('Client').AsString)+')';
adoquery.sql.Add(Memo1.text);
AdoQuery.ExecSQL;
ADOQueryExcel.Next;
Если ставлю в квадратные скобки имена полей перед словом VALUES, пишет, что не хватает знака ";"

Последний раз редактировалось Stilet; 07.05.2014 в 15:35.
rebel91 вне форума Ответить с цитированием
Старый 06.05.2014, 22:00   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А на прямую поместить запрос в adoquery.sql, минуя Memo.Text?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.05.2014, 22:05   #3
rebel91
 
Регистрация: 28.05.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А на прямую поместить запрос в adoquery.sql, минуя Memo.Text?
а разница в чем? ну помещу я запрос в adoquery.sql.text. Выдаст ту же ошибку
rebel91 вне форума Ответить с цитированием
Старый 06.05.2014, 22:05   #4
rebel91
 
Регистрация: 28.05.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А на прямую поместить запрос в adoquery.sql, минуя Memo.Text?
а разница в чем? ну помещу я запрос в adoquery.sql.text. Выдаст ту же ошибку. пробовал
rebel91 вне форума Ответить с цитированием
Старый 06.05.2014, 22:14   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Разница есть - присвоение в мemo.text в конец помещает символы #13#10 и они потом попадут в adoquery.sql, не хорошо что методом ADD. Далеко не уверен, что в этом дело, но вдруг. Не получится - попробуй параметризованный запрос сделать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 06.05.2014 в 22:22.
Аватар вне форума Ответить с цитированием
Старый 06.05.2014, 22:16   #6
rebel91
 
Регистрация: 28.05.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Разница есть - присвоение в мemo.text в конец помещает символы #13#10 и они потом попадут в adoquery.sql. Далеко не уверен, что в этом дело, но вдруг. Не получится - попробуй параметризированный запрос сделать
Ето как? я нуб)
все поля кстати текстового типа как в БД так и в экселе
rebel91 вне форума Ответить с цитированием
Старый 06.05.2014, 22:21   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Могу еще добавить, что как минимум Date зарезервированное слово ACCESS, его в квадратные скобки нужно брать. Что касается параметризованных запросов ищи на форуме, таких полно тем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.05.2014, 09:19   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

во первых непонятно зачем тут делфи
во вторых непонятно зачем тут мемо
в третьих поменять adoquery.sql.Add на adoquery.sql.Text
в четвертых параметры!
eval вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в SQL запросе. onliner PHP 2 12.02.2013 03:30
Где ошибка в запросе? Bendebej SQL, базы данных 1 03.02.2010 17:09
Ошибка в SQL запросе program123 БД в Delphi 11 06.12.2009 17:12
Ошибка в SQL запросе eremin БД в Delphi 2 23.06.2007 07:13
Ошибка в SQL запросе...!? KeyDok БД в Delphi 5 21.06.2007 09:19