Главная страница
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.01 c
15-1320674537
mvconf
2011-11-07 17:02
2012.02.26
Разработка системы видеоконференцсвязи


6-1252422429
WinCap
2009-09-08 19:07
2012.02.26
Сетевой принтер


2-1321534792
upc
2011-11-17 16:59
2012.02.26
Не дать показаться форме


15-1320784202
Юрий
2011-11-08 23:30
2012.02.26
С днем рождения ! 9 ноября 2011 среда


15-1319805286
Who_are_you
2011-10-28 16:34
2012.02.26
Защита, патент