![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Доступ к данным через TDBGrid и TADODataSet
leklerk © (2012-03-16 19:11:00)Добрый день! Я видел примеры, когда к данным в гриде обращаются так:
DBGrid1.DataSource.DataSet.FieldByName('sum').AsFloat.
Сам же я использую
ADODataSet1.FieldByName('sum').Value.
Это одно и то же?
CRLF (2012-03-16 23:04:00) [1]шо ви такое в "начинающих" советуете... полную уверенность может дать только страховой полис. и оператор is...
sniknik (2012-03-16 22:53:00) [2]> обращаясь к DBGrid1.DataSource.DataSet -- только к методам и свойствам TDataSet.
при уверенности использования ADODataSet-а привидение типа -
TADODataSet(DBGrid1.DataSource.DataSet)
позволит все.
CRLF (2012-03-16 22:38:00) [3]
> AsFloat я и не заметил, ну да по контексту вопрос о другом
> был.
А я не с тобой разговаривал. :-) Просто пока я писал ответ на [2], ответил ты.
Inovet (2012-03-16 21:31:00) [4]> [4] CRLF (16.03.12 19:49)
AsFloat я и не заметил, ну да по контексту вопрос о другом был.
Мдя (2012-03-16 21:14:00) [5]http://www.sql.ru/forum/actualthread.aspx?tid=927024
CRLF (2012-03-16 19:49:00) [6]От того, что ты подразумеваешь под "одно и то же". Первое выражение даёт значение типа Double, второе -- типа Variant. Если ADODataSet1.FieldByName('sum').Value = Null, то var D: Double; D := ADODataSet1.FieldByName('sum').Value приведёт к возбуждению исключения. D := ADODataSet1.FieldByName('sum').AsFloat даст 0.
Обращаясь к ADODataSet1 ты можешь пользоваться свойствами и методами TAdoDataSet, обращаясь к DBGrid1.DataSource.DataSet -- только к методам и свойствам TDataSet.
Обращаясь к DBGrid1.DataSource.DataSet неплохо бы проверять Assigned(DBGrid.DataSource) and Assigned(DBGrid.DataSource.DataSet) -- во избежание.
Inovet (2012-03-16 19:45:00) [7]> [2] leklerk © (16.03.12 19:35)
> И от чего же оно depends?
Например, сейчас у тебя назначен ADODataSet1, а через минуту ADODataSet2. Или заранее ты не ничего не знаешь о ADODataSet и требуется найти. Ну и кроме того первое несколько дольше.
leklerk (2012-03-16 19:35:00) [8]
> И да, и нет. It depends.
>
>
И от чего же оно depends?
CRLF (2012-03-16 19:28:00) [9]Лучше используй ADODataSet1sum.AsFloat
> Это одно и то же?
И да, и нет. It depends.