Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Не срабатывает позиционирование в таблице !!!   Найти похожие ветки 

 
kyn66 ©   (2006-02-09 10:56) [0]

Уважаемые мастера,работаю с базой MSSql. Есть две таблицы (Tab и ListTab), вторая таблица по ключу зависимая от первой через MasterSource. Вот кусок кода:

.....
Tab.First;
while not Tab.Eof do
 begin
   ListTab.First;
   if (ListTab.RecordCount <> 0) and ListTab.Locate("UslKod", UslTblKod.Value, []) then
    begin
      K1 := K1 + ListTab.FieldByName("Kol1").Value;
      K2 := K2 + ListTab.FieldByName("Kol2").Value;
      K3 := K3 + ListTab.FieldByName("Kol3").Value;
      K4 := K4 + ListTab.FieldByName("Kol4").Value;
      S1 := S1 + ListTab.FieldByName("Sum1").Value;
      S2 := S2 + ListTab.FieldByName("Sum2").Value;
    end;
   Tab.Next;
 end;


Проблема в том, что подсчет K1..S2 выполняется, якобы правильно срабатывает Locate, однако в действительности позиционирование не выполняется, таблица ListTab остается на первойзаписи и ессно данные считываются не верные. В чем дело? Locate не работает?


 
Sergey13 ©   (2006-02-09 11:02) [1]

И зачем в названии сервера SQL поставили? Нафик он не нужен. 8-)


 
stone ©   (2006-02-09 11:07) [2]


> UslTblKod.Value

Это что такое? Мне так кажется, что ты постоянно одну и ту же запись ищешь...


 
paul_k ©   (2006-02-09 11:24) [3]

Настоятельно рекомендую воспользоватся для вычислений запросом вида
select sum(kol1),.... from Table where UslKod = :UslTblKod.Value
на что, собственно, и намекает

> [1] Sergey13 ©   (09.02.06 11:02)

для этого читать AdoDataSet, обратив внимание на CommandText и Parametrs
в хелпе Дельфи и про агрегатные функции (sum, avg,...) в хелпе МсСкл (точнее в хелпе к Квери Аналайзеру.)


 
kyn66 ©   (2006-02-09 11:26) [4]

UslTblKod.Value это значение таблицы, которая тоже проходит в цикле, я ее просто не описывал. Это значение меняется.


 
vovnuke ©   (2006-02-09 11:31) [5]

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


 
paul_k ©   (2006-02-09 11:32) [6]

что же происходит у тебя.
 перешли к первой записи в TAB
1.Перешли к первой записи в ListTab
 проверили что в ListTab есть записи, проверили что есть запись с   UslKod=UslTblKod.Value и переходим к ней
 суммируем эту строку
 смещаемся в TAB на одну строку
 переходим к 1
кауова настроенная сруктура данных? Таb и ListTab связаны как master-detile?


 
paul_k ©   (2006-02-09 11:33) [7]

> [4] kyn66 ©   (09.02.06 11:26)

Все-таки напиши один запрос. Будет намного понятнее и быстрее


 
kyn66 ©   (2006-02-09 14:29) [8]

Вся беда из-за того, что таблицы были связаны через MasterSource. Пришлось делать через SQL-запросы, это и помогло.


 
paul_k ©   (2006-02-09 14:43) [9]

> [8] kyn66 ©   (09.02.06 14:29)
> Пришлось делать через SQL-запросы,


а почему не в один запрос?


 
Виталий Панасенко   (2006-02-09 16:11) [10]

select Table1.UslKod, sum(Table1.kol1),.... from Table1, Table2 where Table1.UslKod = Table2.UslTblKod
group by 1



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.039 c
11-1124045938
UFO
2005-08-14 22:58
2006.04.02
TBitmap в kol + asm


1-1141215732
Radix
2006-03-01 15:22
2006.04.02
Форма сворачивается в левый нижний угол


15-1142180329
Piter
2006-03-12 19:18
2006.04.02
Программа для "замедления" mp3


15-1142062536
zac
2006-03-11 10:35
2006.04.02
микрофон


2-1142880657
olejik
2006-03-20 21:50
2006.04.02
Форма





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский