![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO MAX(....)
sashakamap © (2005-02-11 13:25:00)Здравствуйте!
Есть Акцесс табоица(работаю через ADO компоненты). Есть ДБГрид, нужно сделать так, чтобы в ДБгриде отобразилось только максимально значение определенного поля, например money.
Пробовал через ADOcommand, делал так:
ADOCommand.CommandText:='select max(money) from table';
ADOCommand.Execute;
Но это не работает, запрос выполняется, но ничего не происходит, как это можно сделать?
Danilka (2005-02-11 14:30:00) [1]хотя, возвращает он _RecodeSet, а в справке по Д5 про него ничего не написано.. незнаю, есть-ли в справке от более поздних версий, вобщем, _Recordset это ОЛЕ-объект, обратиться к значению поля текущей записи можно вот-так:
maxValue := ADOCommand.Execute.Fields(0).Value;
Danilka (2005-02-11 14:23:00) [2]Читай справку, что именно возвращает ADOCommand.Execute
Danilka (2005-02-11 14:23:00) [3]Удалено модератором
sashkamap (2005-02-11 14:20:00) [4]Удалено модератором
Примечание: дубль
sashkamap (2005-02-11 14:19:00) [5]Блин я понял :)
Извените я недавно начал разбираться в БД :)
Такой вопрос: как получить результат запроса?
ADOCommand.CommandText:='select max(money) from table';
ADOCommand.Execute;
?? Как получить значение?
sniknik (2005-02-11 14:10:00) [6]а что должно происходить?
Execute возвращает рекордсет, если его не обрабатывать то результат "канет в лету", как и любое необработаное значение функции впрочем.
> 1. Нет не выводится
а как ты ADOCommand к гриду подключил? вот тут и ответ.
Danilka (2005-02-11 14:06:00) [7]Извини, но, такое ощущение, что ты потомственный партизан. :)
Можешь поподробнее написать, предложений 5 хотя-бы, что там у тебя происходит?
Как я понимаю, есть грид, в который выводится 1 запись с максимальной суммой.
Максимальную сумму ты получаешь вышеприведенным запросом, пишешь ее в условии фильтра того запроса, результат которого отображается в гриде, и переоткрываешь его, так?
И, в результате у тебя отображается запись не с максимальной суммой, а та, которая отображалась ранее. Так?
sashkamap (2005-02-11 13:45:00) [8]1. Нет не выводится
2. В дбгриде должна остаться лишь одна запись - максимальное значение поля money, а меняться должно сразу после запроса
Danilka (2005-02-11 13:39:00) [9][2] sashkamap (11.02.05 13:37)
1. Результат этого запроса (одна запись, одно поле) у тебя в грид выводится?
2. Что и в какой момент должно меняться?
:)
sashkamap (2005-02-11 13:37:00) [10]Запрос выполняется корректно, но в дбгриде ничего не меняется :( Почему?
Danilka (2005-02-11 13:30:00) [11]
> Но это не работает, запрос выполняется, но ничего не происходит,
> как это можно сделать?
что значит "ничего не происходит"? запрос либо выполняется корректно, либо не выполняется и выдает ошибку.