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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2011, 17:50   #1
shurup
 
Регистрация: 23.05.2011
Сообщений: 4
Восклицание Подсчет разницы двух полей разных ADOTable.

Здравствуйте!
У меня возникла проблемка с расчетом разницы двух полей одинакового названия, но размещенных в двух разных Data Setах: AdoTable1 и AdoTable2 на одной форме. Таблицы имеют идентичные поля (Показатель, Состояние, Количество), но разные показатели, собственно, эту разницу я и пытаюсь рассчитать =). Меня интересуют 2 последние поля.

Работаю со столбцом "Состояние":
Код:
adotable2.First;
adotable1.First;
label28.Caption:=floattostr(strtofloat(adotable2.Fieldbyname('Состояние').AsString)-strtofloat(adotable1.fieldbyname('Состояние').AsString));// записываем значение в label
adotable2.Next;
adotable1.Next;
и т.д. до последней записи обоих столбцов.

Теперь нужно посчитать разницу столбцов "Количество" аналогичным образом, только вот тут у меня возникла загвоздка. Какой метод использовать, чтобы перейти на первую запись третьего столбца, чтобы продолжить рассчеты? кто понял что я имею ввиду отпишите пожалуйста, как звать-величать этот странный метод...

Последний раз редактировалось shurup; 25.05.2011 в 18:00.
shurup вне форума Ответить с цитированием
Старый 25.05.2011, 18:19   #2
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
А нельзя с помощью одного запроса получить те-же результаты, например
Код:
SELECT ..., ТаблицаСвязаннаяСAdoTable1.Состояние - ТаблицаСвязаннаяСAdoTable2.Состояние AS [Разница] 
FROM ТаблицаСвязаннаяСAdoTable1 INNER JOIN ТаблицаСвязаннаяСAdoTable2 ON ...=...
У Вас AdoTable1 и AdoTable2 подключены к таблицам в одной и той-же базе данных?
До свидания
OlegVE вне форума Ответить с цитированием
Старый 25.05.2011, 18:27   #3
shurup
 
Регистрация: 23.05.2011
Сообщений: 4
Печаль

Да, ADOtable1 и adotable2 подключены к одной и той же базе данных. SQL- это конечно же хорошо, но вот в этом я полный ноль. Так значит не существует такого метода? И на первую запись столбца "Количество" программно никак не попасть?
shurup вне форума Ответить с цитированием
Старый 25.05.2011, 18:40   #4
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Вам нужно совпадение записей по какому-то признаку ON ...=... это и делает.
По Вашему коду: Никто не знает результата в каком порядке будут выведены из таблиц записи, только запрос может из упорядочить. Кроме того у Вас в таблицах должно быть одинаковое количество записей.

Если Вы напишите какие поля в Ваших таблицах и по каким они связаны (можно связать), тогда можно и запрос сделать. Но учить SQL Вам всё равно придётся.
OlegVE вне форума Ответить с цитированием
Старый 25.05.2011, 18:49   #5
shurup
 
Регистрация: 23.05.2011
Сообщений: 4
По умолчанию

Таблицы связаны по полю "Показатели". Количество записей в таблицах одинаковое (22 в одной и 22 в другой). Меня же интересует каким образом перейти на первую запись столбца "Количество", если это возможно без применения запроса SQL (который, видимо, все-же придется изучить =))?
shurup вне форума Ответить с цитированием
Старый 25.05.2011, 18:53   #6
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Никто не знает результата в каком порядке будут выведены из таблиц записи, только запрос может из упорядочить.
Больше нечего добавить...
OlegVE вне форума Ответить с цитированием
Старый 27.05.2011, 22:12   #7
shurup
 
Регистрация: 23.05.2011
Сообщений: 4
По умолчанию

Все, у меня получилось, спасибо за помощь. Только вот интересно, если программно организовывать переход к первой записи последнего столбца методом adotable1.First; то курсор помещается на первую запись, а если же банально делать то же самое с помощью DBNavigator, то кнопка "First record" не хочет перемещать курсор на первую запись... =)
shurup вне форума Ответить с цитированием
Старый 27.05.2011, 22:14   #8
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
кнопка "First record" не хочет перемещать курсор на первую запись
Вот прямо так и говорит "не хочу" ?
mss вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание полей в ADOTable Spraty БД в Delphi 1 01.04.2011 18:30
Проблема добавления >52 полей в adotable AK BULLETS БД в Delphi 4 01.04.2010 13:58
Сравнение двух таблиц, с целью поиска разницы. 159258357 Microsoft Office Excel 1 29.03.2010 21:34
Триггер на подсчет разницы DaMadQuest SQL, базы данных 2 27.03.2010 13:26
Типы полей ADOTable AnnNet БД в Delphi 2 21.07.2008 16:40