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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2012, 17:26   #1
AJIuCaRD
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 16
Вопрос Ошибка синтаксиса в предложении FROM

Создал запрос на вывод определенного столбца из таблицы и выдает ошибку при нажатии на Кнопку. Вот код:
DataModule2.ADOQuery1.Active:=false ;
DataModule2.ADOQuery1.SQL.Add('sele ct Name') ;
DataModule2.ADOQuery1.SQL.Add('From Students');
DataModule2.ADOQuery1.Active:=true;

Подскажите может что в коде не верно или что нужно добавить? Пожалуйста
AJIuCaRD вне форума Ответить с цитированием
Старый 20.01.2012, 17:45   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
DataModule2.ADOQuery1.Active:=false ;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('sele ct Name') ;
DataModule2.ADOQuery1.SQL.Add('From Students');
DataModule2.ADOQuery1.Active:=true;
99% на то что в DataModule2.ADOQuery1.SQL хранится текст предыдущего запроса.
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 17:58   #3
AJIuCaRD
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 16
По умолчанию

Теперь выдает ошибку ADOQuery1: Field 'ID' not found. Это что значит?
AJIuCaRD вне форума Ответить с цитированием
Старый 20.01.2012, 18:06   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Значит что где то после открытия датасета ( DataModule2.ADOQuery1), на обработчике какого то события, есть обращение к полю ID вашего датасета (DataModule2.ADOQuery1), а после открытия вашего запроса поля ID в нём нет.

Заметили сколько красного?
Чтоб сказать конкретно где не так, надобно код видеть))
Или сами поставьте точку останова на момент открытия датасета и запускаете пошагово.
Ну или просто скопируйте код который предшествует ошибке.
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 18:35   #5
AJIuCaRD
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 16
По умолчанию

Вот весь код:
Код:
procedure TForm1.btn4Click(Sender: TObject);
begin

DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('select Name') ;
DataModule2.ADOQuery1.SQL.Add('From Students');
//DataModule2.ADOQuery1.sql.add('WHERE Name LIKE '+#39+'%'+Edit1.Text+'%'+#39);

//DataModule2.ADOQuery1.SQL.Add('UNION');
//DataModule2.ADOQuery1.SQL.Add('Select Имя');
//DataModule2.ADOQuery1.SQL.Add('From RoduteJiu');
//DataModule2.ADOQuery1.FieldByName('ID').AsInteger;
DataModule2.ADOQuery1.Active:=true;




end;

end.
Ошибку выдает почему то на end;

и как видно из кода, обращения к ID нет. только почему он все ровно к нему обращается

Последний раз редактировалось AJIuCaRD; 20.01.2012 в 18:41.
AJIuCaRD вне форума Ответить с цитированием
Старый 20.01.2012, 18:44   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

С этой процедурой всё в порядке, смотрите дальше, возможно есть обработчик события afteropen на DataModule2.ADOQuery1, возможно чтото на обрабатывается в событиях привязанного DataSource.

В общем ищите в модулях примерно следующее
Код:
ADOQuery1.FieldByName('id')
или возможно этот датасет участвует в связи master - detail?
Всё устал телепатить, либо весь проект выкладываете, либо запускайте пошагово, и ищите где вылетает.
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 18:47   #7
AJIuCaRD
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 16
По умолчанию

а как пошагово запустить? ))
AJIuCaRD вне форума Ответить с цитированием
Старый 20.01.2012, 18:56   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

F8, но лучше поставте бряк (break) на
Код:
DataModule2.ADOQuery1.Active:=true;
и дальше уже жмите F8 пока не уткнётесь в ошибку,
или попробуйте в окошке сообщения об ошибке нажать не ignore, а break.
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 19:00   #9
AJIuCaRD
Новичок
Джуниор
 
Регистрация: 20.01.2012
Сообщений: 16
По умолчанию

Сделал как Вы сказали..теперь ошибку не выдает а просто DBGrid очищает полностью(ну так как ADOQuery1 то не включен)
AJIuCaRD вне форума Ответить с цитированием
Старый 20.01.2012, 19:05   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Почему не включен?
Как вы поставили break?
vovk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка синтаксиса MetR Общие вопросы Delphi 11 13.01.2012 12:40
ошибка синтаксиса в предложении from MetR Помощь студентам 7 13.01.2012 11:04
Ошибка синтаксиса Santosh Microsoft Office Access 2 18.08.2010 00:15
Ошибка синтаксиса в предложении FROM general_krasnov БД в Delphi 7 04.06.2010 17:39
EOleException 'Ошибка синтаксиса в предложении FROM' XATAB БД в Delphi 5 24.11.2008 05:43