Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизПощитать сумму. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c