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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 21:39   #1
mmihan
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 30
По умолчанию Ошибка с sql запросом

Здравствуйте
Подскажите (помогите) разобраться с ошибкой

В DBgrid отображается содержимое таблицы.

Кликая Двойным щелчком.. открывается форма подставляя значения в Edit,ы

Код:
procedure TMform.DBGrid1DblClick(Sender: TObject);

begin

Showform.EDIT1.Text := DBGrid1.DataSource.DataSet.FieldByName('КЛ').AsString;
Showform.EDIT2.Text := DBGrid1.DataSource.DataSet.FieldByName('ФИО').AsString;
Showform.EDIT3.Text := DBGrid1.DataSource.DataSet.FieldByName('Адрес').AsString;
.........
    showForm.ShowModal;

end;
Если произвести отбор (Поиск) DBgrid
и клинуть по строке

Код:
procedure TMform.SearchDoc(Sender: TObject);
var
   dt1,dt2:Tdate;
begin
  dt1:=DateTimePicker1.DateTime;
  dt2:=DateTimePicker2.DateTime;

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear; 
  ADOQuery1.SQL.Add('select КЛ as Номер, ФИО,Адрес ') ;
  ADOQuery1.SQL.Add('from Клиент');
  ADOQuery1.SQL.Add('where ((КЛ  LIKE ''%'+Edit1.Text+'%'') AND (ФИО  LIKE   ''%'
 +Edit2.Text+'%'' OR ФИО IS NULL ) ANd  (Адрес LIKE   ''%'+Edit3.Text+'%'' OR Адрес IS NULL   )    )');

  ADOQuery1.Open; {выполняем запрос}
  ADOQuery1.Active:=true;
  DataSource1.DataSet:=ADOQuery1;
  DbGrid1.DataSource:=DataSource1;

  end;

То вылетает ошибка ADOQuery1: Field 'Поле1' не найдено
выделя Showform.EDIT1.Text := DBGrid1.DataSource.DataSet.FieldByN ame('КЛ').AsString;

Последний раз редактировалось mmihan; 29.11.2011 в 22:00.
mmihan вне форума Ответить с цитированием
Старый 29.11.2011, 21:54   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
select КЛ as Номер, ФИО,Адрес,
Запятую в конце уберите

add

Надо же , почти в один секунд ответили
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 29.11.2011 в 21:56.
Аватар вне форума Ответить с цитированием
Старый 29.11.2011, 21:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
select КЛ as Номер, ФИО,Адрес,
Запятая после поле адреса предполагает указание поля, а у тебя сразу from идет.
Уберай запятую или вноси в список еще поле, какое нужно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2011, 21:59   #4
mmihan
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 30
По умолчанию

Извените...забыл стереть ее.. Я не стал весь запрос.. со всеми полями вставлять... Запятую стер...
mmihan вне форума Ответить с цитированием
Старый 29.11.2011, 22:00   #5
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Ну еще, в порядке возможной проблемы:
В фильтрующем запросе применяется алиас поля КЛ (Номер)
Код:
ADOQuery1.SQL.Add('select КЛ as Номер, ФИО,Адрес, ') ;
но далее, тем не менее, происходит обращение к значению поля не по псевдониму:
Код:
Showform.EDIT1.Text := DBGrid1.DataSource.DataSet.FieldByName('КЛ').AsString;
Прик вне форума Ответить с цитированием
Старый 29.11.2011, 22:07   #6
mmihan
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 30
По умолчанию

Спасибо помогло..
Тогда не подскажите как поле в BDgrid по другому переОБозвать?

Последний раз редактировалось mmihan; 29.11.2011 в 22:10.
mmihan вне форума Ответить с цитированием
Старый 29.11.2011, 22:12   #7
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

В DBGrid есть возможность составить список полей таблицы, которые должны отображаться (свойство Columns). У каждой колонки есть свойство Title, где, в свою очередь, в свойстве Caption заголовок колонки сделать каким угодно.
Если не создавать такой список самостоятельно, то DBGrid создает его сам, используя данные из подключенного датасета.
Прик вне форума Ответить с цитированием
Старый 29.11.2011, 22:25   #8
mmihan
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 30
По умолчанию

Спасибо большое .

DbGrid1.Fields[0].DisplayLabel:='Номер'
Решило проблему..

может это и быдло кодерство... но я только учусь)
mmihan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с запросом SQL lyle_200490 SQL, базы данных 2 20.11.2010 08:09
Помогите с запросом SQL. Ошибка синтаксиса в выражении запроса. ZiG24RUS Microsoft Office Access 1 19.05.2009 06:29
Ошибка c SQL-запросом Сергей089 БД в Delphi 13 08.12.2008 18:02
Помогите с SQL запросом. Monoflextor БД в Delphi 12 29.04.2007 16:53