![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Варианты оперирования полями [D7]
Laguna © (2011-11-15 22:39:00)Подскажите , почему два варианта не одинаково работают? Если выполняю так, все нормально.
DM1.BalansQueryDomFoto2.SaveToFile(TempDir + 'vid2.bmp');
Чтобы объеденить десять одинаковых операций в один блок, выполняю следующую замену:
for i := 1 to 10 do
DM1.BalansQuery.FieldByName(Field_A[i]).SaveToFile(TempDir + 'vid2.bmp');
Во втором варианте ошибка, мол SaveToFile - неизвестно что такое. Field_A[]- строковый массив названий полей.
Аналогичная ситуация
1) if BalansQuery.FieldByName(Field_A[i]).BlobSize <> 0 then ...
пришлось заменить на
2) if not BalansQuery.FieldByName(Field_A[Tag]).IsNull then ...
В чем ошибка ?
Laguna (2011-11-16 12:42:00) [1]
> RWolf © (16.11.11 11:14) [8]
Спасибо, взял на заметку.
RWolf (2011-11-16 11:14:00) [2]
> [4]
это пишется по-другому:
(BalansQuery.FieldByName(Field_A[i]) as TBlobField).SaveToFile(TempDir + 'vid2.bmp');
по крайней мере, будет внятная диагностика вместо AV, когда подвернётся поле не того типа.
Anatoly Podgoretsky (2011-11-16 10:31:00) [3]
> Наверное в качестве хорошего тона это нужно делать, но в
> данном случае я оперирую с конкретным типом.
У тебя еще все впереди.
Laguna (2011-11-16 09:59:00) [4]Наверное в качестве хорошего тона это нужно делать, но в данном случае я оперирую с конкретным типом.
Германн (2011-11-16 00:51:00) [5]
> Laguna © (16.11.11 00:46) [4]
>
> Кажется я понял. Нужно просто приведение выполнить:
А проверку на тип поля будет Пушкин делать? Или Гоголь? :)
Laguna (2011-11-16 00:46:00) [6]Кажется я понял. Нужно просто приведение выполнить:
TBlobField(BalansQuery.FieldByName(Field_A[i])).SaveToFile(TempDir + 'vid2.bmp');
Laguna (2011-11-16 00:29:00) [7]
> У TField нет метода SaveToFile. Он есть только у некоторых
> его наследников.
Я это у же понял. А как мне сделать правильно, чтобы получить задуманное?
Германн (2011-11-16 00:03:00) [8]
> Во втором варианте ошибка, мол SaveToFile - неизвестно что
> такое.
У TField нет метода SaveToFile. Он есть только у некоторых его наследников.
Jeer (2011-11-15 22:42:00) [9]Ты продолжай, рассказывай..
Иногда в процессе вопросов, задаваемых в зенит, находится самостоятельно ответ.