Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо