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

Вниз

Пощитать сумму.   Найти похожие ветки 

 
Bogdan1024 ©   (2006-02-22 02:22) [0]

В зависимости от того какая запись выбрана в DBGrid1 нужно пощитать сумму заказов из другой таблицы, которая будет отображаться в метке или в TDBEdit. Я пытаюсь использовать TADOQuery. В справке написано что нужно использовать связку TADOQuery+TDataSource+TADOTable. Всё вроде слинковал, добавил ещё TDBGrid чтобі можно было видеть изменения; запрос посылается, но ничего не возвращается. Почему?
ADOQuery1.SQL.Add("SELECT sum(Orders.[Order Amount]) FROM Orders WHERE Orders.[Employee ID] = " + inttostr(p^));


 
ЮЮ ©   (2006-02-22 03:29) [1]

Где находится этот код, как формируется p^. Почему не используется просто целая переменная, а указатель на неё?

qEmployeeOrderAmountSum.SQL.Text :=
 "SELECT sum([Order Amount]) FROM Orders WHERE [Employee ID] = :EmployeeId";
// можно забить в Design-е

в qEmployes.AfterScroll:
 qEmployeeOrderAmountSum.Close;
 qEmployeeOrderAmountSum.Parameters[0].Value :=
    qEmployes.Fields[0].Value;
 qEmployeeOrderAmountSum.Open;


 
Bogdan1024 ©   (2006-02-22 03:59) [2]

Спасибо, уже разобрался - я случайно использовал ExecSQL вместо Open.
А какая разница что использовать - указатель на переменную или саму переменную? Памяти ведь одинаково выделяется и программа обращается с ними одинаково...


 
evvcom ©   (2006-02-22 08:53) [3]


> Памяти ведь одинаково выделяется

Как же одинаково? В 1 случае 4 байта на переменную-указатель + 4 байта на данные Integer, во 2-ом только 4 байта под данные.

> и программа обращается с ними одинаково...

с указателем и с самими данными одинаково? Книжку б какую почитал что ли?


 
msguns ©   (2006-02-22 09:40) [4]

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

Если же надо актуальное значение, которое получается отдельным запросом "по требованию", то зачем возвращаемую этим запросом единственную запись пихать в какие-то датасорсы и тем более DB-aware контролы ?
Почему нельзя "вытащить" "пощщитанный" агрегат, обратвшись непосредственно к датасету через Fields/FieldByName ?


 
Bogdan1024 ©   (2006-02-22 13:49) [5]

с указателем и с самими данными одинаково?
Спасибо, теперь понял разницу.
Почему нельзя "вытащить" "пощщитанный" агрегат, обратвшись непосредственно к датасету через Fields/FieldByName ?
потому что эта таблица не присутствует в других датасорсах.
Я пытался вернуть нужную таблицу и соответствующую записям таблицы сумму в один датасорс, но он выдаёт "неопознанную ошибку".


 
evvcom ©   (2006-02-22 14:09) [6]


> Я пытался вернуть нужную таблицу и соответствующую записям
> таблицы сумму в один датасорс, но он выдаёт "неопознанную
> ошибку".

Повторю msguns ©   (22.02.06 09:40) [4]:

> Лес темный.

И мухи, и котлеты все в одно слепил и выплюнул. А вы, господа, тут разбирайте состав моего произведения.


 
msguns ©   (2006-02-22 17:46) [7]

>Bogdan1024 ©   (22.02.06 13:49) [5]
>потому что эта таблица не присутствует в других датасорсах

"Датасорсы" предназначены в первую очередь для визуализации датасетов или их фрагметов (полей, записей), полученных, в свою очередь объектами доступа к БД. Такими, как TADOQuery, TADODataSet, TADOTable (сие чудище обло, озороно, стозевно и лайяй). Жмем на квадратике с датасорсом F1 и внимательно читаем.

Для того же, чтобы обратиться непосредственно к самому датасету, ничего, окромя него не нужно. Почитай о "дедушке" всех датасетов TDataSet (в частности об упомянутых в [4] свойствах и "мигом прояснится на доске" (с)

Мухи, котлеты, волосы поварихи в одной тарелке..
Ассорти, короче ;)



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

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

Наверх




Память: 0.49 MB
Время: 0.043 c
2-1140688805
Wolferio
2006-02-23 13:00
2006.03.12
Rave Reports


15-1139896062
Ega23
2006-02-14 08:47
2006.03.12
С Днём рождения! 14 февраля


2-1140729327
49 Cent
2006-02-24 00:15
2006.03.12
Сумма ячеек в DBgrid?


15-1140039582
Petr V. Abramov
2006-02-16 00:39
2006.03.12
UPS APC от 1КВт 19U стойкомонтируемые


11-1121177748
kukuks
2005-07-12 18:15
2006.03.12
Пример программы с unicode