Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение списка полей запроса, как? 
:(
    Опции темы
pshik
Дата 16.12.2008, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



Есть запрос, который используется в ADOQuery
Код

TRANSFORM Sum(PostupMaterProf.Kolvo) AS [Sum-Kolvo]
SELECT PostupMaterProf.CodMesta, PostupMaterProf.CodUchr, Sum(PostupMaterProf.Kolvo) AS Itog
FROM (select * from PostupMaterProf where DataPost>=:Data1 and DataPost<=:Data2)
GROUP BY PostupMaterProf.CodMesta, PostupMaterProf.CodUchr
PIVOT Format([PostupMaterProf.DataPost], "dd");

В зависимости от параметров Data1 и Data2 поля в запросе могут быть различными, но все от 1 до 31. Например в результате иогут быть поля CodMesta, CodUchr, 01, 02, 03, 04, 05, Itog. А могут быть и CodMesta, CodUchr, 11, 12, 13, 14, 15, Itog. Возникает вопрос: как узнать эти поля и как их добавить в ADOQuery.Fields в режиме run-time, чтобы все это дело корректно отобразилось в DBGrid-e?
PM MAIL   Вверх
Rodman
Дата 16.12.2008, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



ну вот то чтобы я юзал... 
я не пробовал. но думаю туда капать нада
Код

ADOQuery1.FieldCount;
//or
ADOQuery1.FieldList;
//or
ADOQuery1.Fields.FieldByNumber()

PM MAIL WWW Skype GTalk YIM MSN   Вверх
pshik
Дата 16.12.2008, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



Найти-нашел, но вот как их добавить в FieldList? Делаю так: 
Код

var
    NameMesto, NameUchr: TStringField;
...

With NameMesto.Create(self) do
  begin
    FieldName:='NameMesto';
    SetFieldType(ftString);
    DisplayLabel:='Место';
    DisplayWidth:=25;
    FieldKind:=fkLookUp;
    LookupDataSet:=DataModule1.TabMesta;
    KeyFields:='CodMesta';
    LookupKeyFields:='Cod_Kl';
    LookupResultField:='Name_mesto';
    ADOQuery1.Fields.Add(NameMesto);
    Free;
end;

Может конечно местами чушь написана... В итоге ошибка!
PM MAIL   Вверх
pshik
Дата 16.12.2008, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



так что, никто не подскажет, как поле добавить в FieldList? 
smile  smile  smile 
PM MAIL   Вверх
Frees
Дата 16.12.2008, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Код

var
    NameMesto, NameUchr: TStringField;
...
NameUchr := TStringField.Create(self);
NameMesto := TStringField.Create(self);
With NameMesto do
  begin
    FieldName:='NameMesto';
    SetFieldType(ftString);
    DisplayLabel:='Место';
    DisplayWidth:=25;
    FieldKind:=fkLookUp;
    LookupDataSet:=DataModule1.TabMesta;
    KeyFields:='CodMesta';
    LookupKeyFields:='Cod_Kl';
    LookupResultField:='Name_mesto';
end;
ADOQuery1.Fields.Add(NameMesto);


Это сообщение отредактировал(а) Frees - 16.12.2008, 10:53


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
pshik
Дата 16.12.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



ошибка "invalid variant type"
PM MAIL   Вверх
pshik
Дата 16.12.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.12.2008

Репутация: нет
Всего: нет



правильная очередность?
Код

ADOQuery1.SQL.Append('добавляю сюда запрос');
ADOQuery1.Active:=true;
ADOQuery1.Fields.Add(NameMesto);


Это сообщение отредактировал(а) pshik - 16.12.2008, 12:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.