Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно сложить несколько полей? [D6, dBase, FoxPro, Paradox]


DimonS ©   (2005-09-19 05:43:00) 

Добрый день всем. Имеем: Query. Нужно при открытии БД в одно поле записать сумму нескольких других полей этой же таблицы. Как правильно составить запрос?


ANB   (2005-09-19 10:32:00) [1]


> DimonS ©   (19.09.05 10:15) [9]

Смотреть описание UPDATE в справке


DimonS   (2005-09-19 10:15:00) [2]

Здесь как раз второе. Поле нужно для выгрузки значений его в 1с. Так что значения действительно должны храниться в этой бд.

>отдельным запросом вычислять и записывать (да еще при открытии таблицы)

Не обязательно при открытии, нужно еще во время работы приложения, а сразу вычислить нельзя по другим причинам.


msguns   (2005-09-19 09:49:00) [3]

Я все же вообще не понял, что надо-то ?
Что значит
Нужно при открытии БД в одно поле записать сумму нескольких других полей этой же таблицы.
вместе с
Да, поле должно существовать.

?

Поле должно существовать в полученом на клиенте (приложении) наборе данных ? Или непосредственно в таблице БД ?

Если 1-е, то в [5] ответ, только, разумеется, вместо ExecSQL (применяется для записи в БД) надо Open (применяентся при извлечениях данных из БД)

Если 2-е, то [7], хотя у меня сильное подозрение, что это мура какая-то: отдельным запросом вычислять и записывать (да еще при открытии таблицы) сумму, если ее можно расчитать сразу же при модификации (вставке) записи. Не говоря уже о том, зачем вообще хранить в БД поля, получаемые как результат из других полей этой же записи.

ЗЫ. ИМХО, вопрос надо формулировать яснее, тогда и не будет длинных гаданий.


ЮЮ   (2005-09-19 09:21:00) [4]

QZ.Open.

Или с текстом в запросе

UPDATE Table
SET Usl = Us+SMRS+SMR
WHERE ...

QZ.ExecSQL;

если поле реально существует в таблице. Надеюсь, что это все-таки не так :)


Ильш   (2005-09-19 08:53:00) [5]

может в where ? ;)


DimonS   (2005-09-19 08:37:00) [6]

Пишу такой код:

QZ.Close;
QZ.SQL.Clear;
QZ.SQL.Add('select Us+SMRS+SMR as Usl from '+Zarq+' where (P="'+MaskEdit1.Text+'")');
QZ.ExecSQL;

И ничего не происходит. Где ошибка зарылась?


Ильш   (2005-09-19 07:18:00) [7]

select pole1+pole2 as pole_summ from table1


DimonS   (2005-09-19 06:40:00) [8]

>Fedia
Да, поле должно существовать.

>Ильш
А кусок кода можно?


Ильш   (2005-09-19 06:10:00) [9]

pole1+pole2


Fedia   (2005-09-19 06:10:00) [10]

А поле, содержащее сумму других полей обязательно должно находиться в таблице в БД? Может быть, просто сделать вычисляемое поле при запросе?


Наверх

Титульная страница Поиск, карта сайта Написать письмо