![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Blob и SQL [D7, DB2]
konstr © (2006-11-07 11:09:00)Не могу прочитать Blob-поле через адо-кверю, ошибка invalid argument... как лечить подскажите плз?
try
QueryRTF.SQL.Text:='select REMARK from ALLDATA where INUM=16';
QueryRTF.Open;
BlobStream:=TADOBlobStream.Create(TBlobField(QueryRTF.FieldByName('REMARK')), bmRead);
BlobStream.Free;
except
end;
Anatoly Podgoretsky (2006-11-08 00:47:00) [1]> Плохиш (08.11.2006 0:42:19) [19]
Та и я про тоже.
Дело не в бобине
Плохиш (2006-11-08 00:42:00) [2]
> Anatoly Podgoretsky © (07.11.06 19:32) [18]
> > Плохиш (07.11.2006 17:24:17) [17]
>
> Value это значение поля, без преобразования AS
Я знаю, но какое это отношение имеет к теме ветки?
Я вот гарантирую, что строкаstreamBlob := TADOBlobStream.Create(TBlobField(tblMSSQL.Fields[lField]), bmRead);будет прекрасно работать даже если Fields[lField] заменить на FieldByName('superfield'), а у автора почему-то его творение не работает, а так как отладчиком он пользоваться не умеет, то и помочь ему не представляется возможным, всё равно, что разговаривать со слепым глухонемым.
Anatoly Podgoretsky (2006-11-07 19:32:00) [3]> Плохиш (07.11.2006 17:24:17) [17]
Value это значение поля, без преобразования AS
Плохиш (2006-11-07 17:24:00) [4]
> Anatoly Podgoretsky © (07.11.06 16:50) [16]
Может я и слепой, но в ветке Value пока не упоминалось.
Anatoly Podgoretsky (2006-11-07 16:50:00) [5]> Плохиш (07.11.2006 16:05:14) [14]
TField.Value: Variant
В остальные типы превращается через AS свойства
Anatoly Podgoretsky (2006-11-07 16:49:00) [6]> Плохиш (07.11.2006 16:05:14) [14]
У которого тип данных variant
Плохиш (2006-11-07 16:05:00) [7]
> Anatoly Podgoretsky © (07.11.06 14:28) [12]
> > konstr (07.11.2006 13:35:10) [10]
>
> TBlobField(QueryRTF.FieldByName('REMARK')): variant
FieldByName TField возвращает.
konstr (2006-11-07 15:25:00) [8]Видимо программа тоже очень сомневается в этом, так в чем вопрос и состоит что никак не могу победить... Хоть в какую сторону копать-то?
Anatoly Podgoretsky (2006-11-07 14:28:00) [9]> konstr (07.11.2006 13:35:10) [10]
TBlobField(QueryRTF.FieldByName('REMARK')): variant
Сомневаюсь, что его можно преоразовать в Stream
Gloomer (2006-11-07 13:38:00) [10]
> Johnmen © (07.11.06 13:11) [9]
> Create;Это зачем?
Согласен - оставил по инерции...
Но у konstr'а и так не работает - инвалид тайп каст
konstr (2006-11-07 13:35:00) [11]2 Anatoly Podgoretsky а поподробней плз? Вот это
TBlobField(QueryRTF.FieldByName('REMARK'))
не помогает разве?
Johnmen (2006-11-07 13:11:00) [12]
> Gloomer © (07.11.06 12:59) [8]
> BlobStream:=TStream.Create;
Это зачем?
Gloomer (2006-11-07 12:59:00) [13]А так ли принципиально, чтобы BlobStream был типа TBlobStream?
Как этот поток используется?
Может так?
var BlobStream:TStream;
...
try
QueryRTF.SQL.Text:='select REMARK from ALLDATA where INUM=16';
QueryRTF.Open;
BlobStream:=TStream.Create;
BlobStream:=QueryRTF.CreateBlobStream(QueryRTF.FieldByName('REMARK'), bmRead);
...
BlobStream.Free;
except
end;
Anatoly Podgoretsky (2006-11-07 11:49:00) [14]Потому что в таком виде тип поля Variant
Desdechado (2006-11-07 11:39:00) [15]QueryRTF.CreateBlobStream
?
Percent (2006-11-07 11:32:00) [16]Ошибка возникает во время выполнения
На какой строке?
konstr (2006-11-07 11:29:00) [17]Уверен, писал туда потому что :) вот таким образом :
QueryRTF.SQL.text:='insert into ALLDATA REMARK values (16,:b)';
QueryRTF.parameters.parseSQL(QueryRTF.sql.text, true);
Richedit1.Lines.SaveToFile('fxprtf.rtf');
QueryRTF.parameters[0].LoadFromFile('fxprtf.rtf',ftBlob);
QueryRTF.ExecSQL;
Ошибка возникает во время выполнения
Percent (2006-11-07 11:20:00) [18]ошибка invalid argument...
Ошибки, они бывают времени выполнения или компилятора/линковщика.
Эта когда проявляется?
sniknik (2006-11-07 11:18:00) [19]> ошибка invalid argument... как лечить подскажите плз?
легко! надо лиш вместо неправильного аргумента ...вставить правильный .... все, проблема решена!
Плохиш (2006-11-07 11:13:00) [20]Уверен, что поле REMARK существует и было интерпретировано как blob?