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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2015, 18:35   #51
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
object DataSource2: TDataSource
DataSet = ADOQuery2
Left = 192
Top = 56
end
object ADOQuery1: TADOQuery
Active = True
Connection = ADOConnection1
CursorType = ctStatic
LockType = ltBatchOptimistic
DataSource = DataSource2
Чет я не пойму... А где описано свойство MasterSource описано?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.09.2015, 19:49   #52
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

У adoquery нет свойства mastersource,только datasource. У подчинённой таблицы в datasource я вставляются datasource главной таблицы.
Ernest027 вне форума Ответить с цитированием
Старый 04.09.2015, 20:06   #53
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
Так у меня вторая главная,а первая подчинённая таблица.
разве ?! может все же наоборот
Цитата:
У adoquery2 datasource подключаю datasource1
DataSource устанавливается у подчиненного набора данных. Что бы знать ОТКУДА брать сведения(читай значения параметров) для задания фильтра данных.
Значит все надо сделать с точностью до наоборот.
P.S. главное при этом не переусердствовать
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 04.09.2015 в 20:09.
evg_m вне форума Ответить с цитированием
Старый 04.09.2015, 21:51   #54
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Пардон. Вторая главная,первая подчинённая. У первой таблицы datasource стоит datasource 2) но все равно не работает(

Прошу вас посмотреть,а то с ума сойду. Не работает и все тут.

Последний раз редактировалось Stilet; 05.09.2015 в 13:06.
Ernest027 вне форума Ответить с цитированием
Старый 05.09.2015, 15:20   #55
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
и где здесь PointID=:PointID ??
и чтобы хоть что-то увидеть надо ОТКРЫТЬ набор данных.
А кто будет открывать набор данных?
Подчиненность обеспечивает только автоматическую смену данных в УЖЕ открытом НД, но открывать и главную, и подчиненную нужно самому.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 05.09.2015, 16:50   #56
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

подскажите что делать? Что не так? Не получается их связать. В главное таблице пишу
Код:
select * from table1
в подчинённой
Код:
select * from table2 where PointID=:PointID
связь по полю PointID
Ernest027 вне форума Ответить с цитированием
Старый 05.09.2015, 18:26   #57
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вижу у тебя и MD связь настраивать не выходит )
Все намекает: "Брось это дело...".
Ладно. Предложу еще одну заморочку:
Код:
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  adoquery2.Filter:='PointID='+DataSet.FieldByName('PointID').AsString;
end;
Для ADOQuery2 выставь после Open свойство Filtered в True.

Смысл в фильтрации по некоторому полю второго набора при переходе по первому.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.09.2015, 11:47   #58
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

не выходит. мне кажется вся проблема в представлении. Взгляните пожалуйста проект. Представление создаю так
Код:
create view Vibration2 as 
select Vibration.*, case when (select max (v) from Vibration)>999 and (select max (v) from Vibration)<999999 then v/1000 
when (select max (v) from Vibration)>999999 and (select max (v) from Vibration)<999999999 then v/1000000
when (select max (d) from Vibration)>999999999 then d/1000000000
else v end as v1,
case when (select max (d) from Vibration)>999 and (select max (d) from Vibration)<999999 then d/1000 
when (select max (d) from Vibration)>999999 and (select max (d) from Vibration)<999999999 then d/1000000
when (select max (d) from Vibration)>999999999 then d/1000000000
else d end as d1,
case when (select max (a) from Vibration)>999 and (select max (a) from Vibration)<999999 then a/1000
when (select max (a) from Vibration)>999999 and (select max (a) from Vibration)<999999999 then a/1000000
when (select max (a) from Vibration)>999999999 then a/1000000000
else a end as a1 from Vibration

Последний раз редактировалось Ernest027; 07.09.2015 в 12:00.
Ernest027 вне форума Ответить с цитированием
Старый 07.09.2015, 12:23   #59
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Код:
, case when (select max (v) from Vibration)>999 and (select max (v) from Vibration)<999999 then v/1000 
       when (select max (v) from Vibration)>999999 and (select max (v) from Vibration)<999999999 then v/1000000
       when (select max (d) from Vibration)>999999999 then d/1000000000
Код:
select v.*
v.v/mx.dv as v1,
v.d/mx.dd as d1,
v.a/mx.da as a1
form vibration as v
   , ( select case when max(v)>999999999 then 1000000000
                   when max(v)>999999    then 1000000
                   when max(v)>999       then 1000
                   else                       1 end as dv,
              case when max(d)>999999999 then 1000000000
                ....
                   else                       1 end as dd,
              case when max(a)>999999999 then 1000000000
                ....
                   else                       1 end as da
        from vivration 
    ) as mx
хотя на мой взгяд лучше в else запихивать максимальный делитель
Код:
case when max(v)<=1000 then 1 
     when max(v)<=1000000 then 1000
     when max(v)<=1000000000 then 1000000
     else 1000000000 end as dv
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 07.09.2015 в 12:41.
evg_m вне форума Ответить с цитированием
Старый 07.09.2015, 13:09   #60
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

итак все наши записи которые мы хотим увидеть были добавлены таким образом
Цитата:
Код:
          Command.CommandText:='INSERT INTO Vibration (f, a, v, d) VALUES (:f, :a, :v, :d)';
при просмотре записей хотим увидеть
Цитата:
Код:
where pointID =:PointID
но у нас просто нет записей удовлетворяющих ДАННОМУ фильтру!!!
ни одна из добавленных НЕ ИМЕЕТ значения pointID!!!
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 07.09.2015 в 13:13.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование единиц измерения Zirat Microsoft Office Excel 9 29.11.2022 21:14
дана строка состоящая из групп нулей и единиц. Подсчитать количества единиц в группах с нечетным количеством символов (на Delphi) ArturBattalov Помощь студентам 1 06.10.2013 16:16
Найти байтс наибольшим числом единиц и найти байт с наибольшим чилом нулей. Найти разность число единиц м Beren42 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.12.2010 17:44
Конвертер денежных единиц vmilyoshin Помощь студентам 6 16.04.2010 11:07
Найти сумма единиц Bayram_662 Паскаль, Turbo Pascal, PascalABC.NET 6 22.10.2009 22:11