Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
rebel91
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 91
1

Где ошибка в sql-запросе?

06.05.2014, 21:17. Просмотров 314. Ответов 4
Метки нет (Все метки)

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

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

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

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

Вот такой запрос:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
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;
Добавлено через 10 минут
Дополню: если ставлю в квадратные скобки имена полей перед словом VALUES, пишет, что не хватает знака ";"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 21:17
Ответы с готовыми решениями:

Где ошибка в запросе?
Делаю запрос в AdoQuery select data_zap ,familiy, imy, otchestvo from pak...

Где ошибка в запросе?
И так ADOQuery2.SQL.Text:='Select * From SprRabot Where...

Где ошибка в запросе?
Insert Into Cartridgi (IDModelCartridga, Articul, IDKlienta, IDMestaRabot,...

Ошибка в SQL запросе
Выдает две ошибки: Первая ошибка: не удается совершить объединение procedure...

Ошибка в запросе SQL
Всем привет! Есть база страхователей. Мне нужно вывести список тех людей,...

4
teleprog
176 / 148 / 43
Регистрация: 14.08.2008
Сообщений: 1,220
06.05.2014, 21:50 2
QuotedStr обрамляет значение кавычками, это надо только для текстовых полей.
Скорее всего несоответствие типов.

Возможно надо сделать так
Delphi
1
2
3
4
5
6
memo1.Text:='INSERT INTO Export (IDE, Date, Client) VALUES (:IDE, :Date, :Client)';
adoquery.sql.Add(Memo1.text);
adoquery.Parameters.parambyname('IDE').value :=  ADOQueryExcel.FieldByName('IDE').AsInteger;
adoquery.Parameters.parambyname('Date').value :=  ADOQueryExcel.FieldByName('Date').AsDate;
adoquery.Parameters.parambyname('Client').value :=  ADOQueryExcel.FieldByName('Client').AsString;
AdoQuery.ExecSQL;
0
rebel91
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 91
06.05.2014, 21:56  [ТС] 3
Скорее всего несоответствие типов.
Все поля текстовые, как в Экселе, так и в БД.
Тем не менее, попробовал, как Вы написали - ошибка синтаксиса инструкции Инсерт Инто
0
teleprog
176 / 148 / 43
Регистрация: 14.08.2008
Сообщений: 1,220
06.05.2014, 22:25 4
Текст ошибки какой?
0
rebel91
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 91
06.05.2014, 23:45  [ТС] 5
Текст ошибки какой?
Ошибка синтаксиса инструкции INSERT INTO
0
06.05.2014, 23:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2014, 23:45

Ошибка в Sql запросе
Всем доброго времени суток! Нужно написать процедуру для вывода данных в...

Ошибка в SQL запросе
Всем доброго дня. Столкнулся с проблемой - из Delphi запрос выполняется...

Ошибка в SQL запросе
Доброго времени суток! Народ, у меня такая проблема. Написал код для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru