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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2018, 09:38   #1
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию не работает запрос

Доброго утра! подскажите, пишу запрос:
Код:
procedure TMainForm.DetalDBGridEhTitleClick(Column: TColumnEh);
begin
//if not DetalDBGridEh.DataSource.DataSet.IsEmpty then begin
With StandQuery do
  begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT Stand.*,');
  SQL.Add('Gost.Gost_ID AS GostID, Gost.Name AS GostName,');
  SQL.Add('Okp.Okp_ID AS OkpID,Okp.Klass,Okp.Naim');
  SQL.Add('FROM Stand,');
  SQL.Add('Gost,');
  SQL.Add('Okp');
  SQL.Add('WHERE Stand.Gost_Id=Gost.Gost_Id AND Stand.Okp_Id=Okp.Okp_Id');
  SQL.Add('ORDER BY Len(Mark)');
  Open;
  DataSource.DataSet:= StandQuery;
  DetalDBGridEh.DataSource:=DataSource;
  end;
//end;
end;
но он не работает. Ошибка. DataSource и DataSet не nil. что не так?
ругается на строку DetalDBGridEh.DataSource:=DataSourc e;
Изображения
Тип файла: png Безымянный.png (23.7 Кб, 85 просмотров)
Etsareva вне форума Ответить с цитированием
Старый 28.03.2018, 09:54   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не с тем DataSource работаешь. В твоем коде это свойство StandQuery. Вынеси из-под With
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.03.2018, 10:05   #3
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

ошибки нет, но запрос не отрабатывает delphi.
Etsareva вне форума Ответить с цитированием
Старый 28.03.2018, 10:13   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если ошибки нет, значит отрабатывает)) Может вернул ноль строк, а может проблема с отображением. А в чем смысл этих действий при клике по титулу грида, да еще с обновлением источника данных?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.03.2018, 10:17   #5
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А в чем смысл этих действий при клике по титулу грида, да еще с обновлением источника данных?
это был как вариант.

Цитата:
Сообщение от Аватар Посмотреть сообщение
Может вернул ноль строк, а может проблема с отображением.
данные отображаются из бд, но при нажатии на title грида ничего не происходит.
Etsareva вне форума Ответить с цитированием
Старый 28.03.2018, 10:19   #6
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

может, с подключением конечно что-то не так, но вроде все связала
Etsareva вне форума Ответить с цитированием
Старый 28.03.2018, 10:47   #7
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

вот в чем причина: dbgrid и DataSource подключены к ClientDataset, естественно никакие Sql-запросы не отрабатывает. Если я подключаю query, то в таблице данные не отображаются. как это обойти? В ClientDataset реализовывать? хотелось бы в sql-запросе. там меньше гемора...

Последний раз редактировалось Etsareva; 28.03.2018 в 10:54.
Etsareva вне форума Ответить с цитированием
Старый 28.03.2018, 12:47   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Если я подключаю query, то в таблице данные не отображаются. как это обойти?
колонки отображения DBgrid прописаны вручную(заранее)?
имена полей ClientDataSet и SQLQuery НЕ совпадают?
(в этом случае при не пустом НД Grid будет иметь незаполненные строки)

1) настроить правильный список полей отображения
Dbgrid1.Columns.Item[...].DataField:=SQLQuery.Fields.Field[...].FieldName;
2) использовать "автоподстройку" DBGrid
DBGrid1.Columns.Clear; //ДО открытия НД

а может просто DBgrid1.DataSource.Dataset ведет не туда
DBGrid1.DataSource !!= DataSource1 ([хотя и DataSource1.DataSet =SQLQuery)
DBGrid1.DataSource.DataSet !!!=SQLQuery
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 28.03.2018, 13:22   #9
Etsareva
Форумчанин
 
Регистрация: 26.01.2018
Сообщений: 180
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
имена полей ClientDataSet и SQLQuery НЕ совпадают?
имена полей разные.
Цитата:
Сообщение от evg_m Посмотреть сообщение
колонки отображения DBgrid прописаны вручную(заранее)?
колонки прописаны заранее
Etsareva вне форума Ответить с цитированием
Старый 28.03.2018, 13:37   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Поэтому и не отображает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает запрос Moonlite Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 12.06.2016 22:18
не работает запрос((((((( VIka_90 Microsoft Office Access 10 27.03.2013 20:41
Не работает запрос pa1n БД в Delphi 10 02.05.2010 15:14
Не работает запрос Dantark PHP 2 10.11.2009 19:02
Не работает запрос Prisian БД в Delphi 1 30.08.2007 17:33