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

Вниз

Варианты оперирования полями   Найти похожие ветки 

 
Laguna ©   (2011-11-15 22:39) [0]

Подскажите , почему два варианта не одинаково работают? Если выполняю так, все нормально.

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 ...

В чем ошибка ?


 
Jeer ©   (2011-11-15 22:42) [1]

Ты продолжай, рассказывай..
Иногда в процессе вопросов, задаваемых в зенит, находится самостоятельно ответ.


 
Германн ©   (2011-11-16 00:03) [2]


> Во втором варианте ошибка, мол SaveToFile - неизвестно что
> такое.

У TField  нет метода SaveToFile. Он есть только у некоторых его наследников.


 
Laguna ©   (2011-11-16 00:29) [3]


> У TField  нет метода SaveToFile. Он есть только у некоторых
> его наследников.

Я это у же понял. А как мне сделать правильно, чтобы получить задуманное?


 
Laguna ©   (2011-11-16 00:46) [4]

Кажется я понял. Нужно просто приведение выполнить:

TBlobField(BalansQuery.FieldByName(Field_A[i])).SaveToFile(TempDir + "vid2.bmp");


 
Германн ©   (2011-11-16 00:51) [5]


> Laguna ©   (16.11.11 00:46) [4]
>
> Кажется я понял. Нужно просто приведение выполнить:

А проверку на тип поля будет Пушкин делать? Или Гоголь? :)


 
Laguna ©   (2011-11-16 09:59) [6]

Наверное в качестве хорошего тона это нужно делать, но в данном случае я оперирую с конкретным типом.


 
Anatoly Podgoretsky ©   (2011-11-16 10:31) [7]


> Наверное в качестве хорошего тона это нужно делать, но в
> данном случае я оперирую с конкретным типом.

У тебя еще все впереди.


 
RWolf ©   (2011-11-16 11:14) [8]


> [4]

это пишется по-другому:
(BalansQuery.FieldByName(Field_A[i]) as TBlobField).SaveToFile(TempDir + "vid2.bmp");
по крайней мере, будет внятная диагностика вместо AV, когда подвернётся поле не того типа.


 
Laguna ©   (2011-11-16 12:42) [9]


> RWolf ©   (16.11.11 11:14) [8]

Спасибо, взял на заметку.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
15-1320795621
d.
2011-11-09 03:40
2012.02.26
Текстовый редактор


2-1321451267
Scott Storch
2011-11-16 17:47
2012.02.26
Библиотека типов (COM)


2-1321645351
dimsar
2011-11-18 23:42
2012.02.26
установка дополнительных компонентов


15-1317792690
Наиль2011
2011-10-05 09:31
2012.02.26
вывод на монитор с частотой 30Гц и больше


1-1287040846
vasia
2010-10-14 11:20
2012.02.26
SQL запрос с датой в Delphi