Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
2-1142416375
Russ
2006-03-15 12:52
2006.04.02
Сервис после запуска сразу останавливается


15-1141545075
Ученик чародея
2006-03-05 10:51
2006.04.02
Служба поиска в Интернет.


11-1123421854
EVILDeath
2005-08-07 17:37
2006.04.02
Unit xxxxx was compiled with another version of yyyyy


1-1141040367
serguar
2006-02-27 14:39
2006.04.02
отладка сервисов NT


2-1142574309
Мух
2006-03-17 08:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский