Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 13:18   #1
ANsy
Пользователь
 
Аватар для ANsy
 
Регистрация: 30.09.2010
Сообщений: 19
Вопрос CreateBlobStream - error read stream

код написан изначально в делфе 6ой...

Код:
procedure TDsnGrid.ReadDS_Columns(dsdb: TADOConnection; chFld, blFld, tableNm,
  chVal: shortString; clms: TDBGridColumns);
var
  dq:TADOQuery;
  bs:tstream;
begin
dq:=TADOQuery.Create(nil);
dq.Connection:=dsdb;
dq.SQL.Text:=format('SELECT %s,%s FROM %s WHERE %0:s LIKE ''%3:s''',[chFld,blFld,tableNm,chVal]);
dq.Open;
dq.First;
clms.State:=csCustomized;
if (dq.RecordCount>0) then begin
 bs:=dq.CreateBlobStream(dq.FieldByName(blFld) as TBlobField,bmRead);
 if (bs.Size>0) then clms.LoadFromStream(bs) else ShowMessage('ÎØÈÁÊÀ: çàãðóçêè â ïîòîêå ñòèëÿ');
end;
bs.Free;
dq.Close;
dq.Free;
end;
после перекомпиляции в 7ой делфе стал выдавать ошибку "error read stream", конкретно на clms.LoadFromStream строку
ANsy вне форума Ответить с цитированием
Старый 30.09.2010, 14:33   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Попробуй использовать TADOBlobStream
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 04.10.2010, 08:27   #3
ANsy
Пользователь
 
Аватар для ANsy
 
Регистрация: 30.09.2010
Сообщений: 19
По умолчанию

попробовал так вот, не сработало (та же ошибка). Может я не так делаю?
Код:
procedure TDsnGrid.ReadDS_Columns(dsdb: TADOConnection; chFld, blFld, tableNm,
  chVal: shortString; clms: TDBGridColumns);
var
  dq:TADOQuery;
  bs:TADOBlobStream;
begin
dq:=TADOQuery.Create(nil);
dq.Connection:=dsdb;
dq.SQL.Text:=format('SELECT %s,%s FROM %s WHERE %0:s LIKE ''%3:s''',[chFld,blFld,tableNm,chVal]);
dq.Open;
dq.First;
clms.State:=csCustomized;
if (dq.RecordCount>0) then begin
 //TADOBlobStream
 bs:=TADOBlobStream.Create((dq.FieldByName(blFld) as TBlobField),bmRead);
 //bs:=dq.CreateBlobStream(dq.FieldByName(blFld),bmRead);
 if (bs.Size>0) then clms.LoadFromStream(bs) else ShowMessage('ÎØÈÁÊÀ: ïîòîê ñòèëÿ ïóñòîé');
end;
bs.Free;
dq.Close;
dq.Free;
end;

Последний раз редактировалось ANsy; 04.10.2010 в 08:29. Причина: некажет код (тэг [CODE]) в стиле "delphi"
ANsy вне форума Ответить с цитированием
Старый 04.10.2010, 09:23   #4
ANsy
Пользователь
 
Аватар для ANsy
 
Регистрация: 30.09.2010
Сообщений: 19
По умолчанию

в таблице "slots_grids" берет из CB (сервер mssql2000 sp4)
CD int
CN nvarchar(64)
CB ntext
upsize_ts timestamp
ANsy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
stream inifile dmitriegorovih Общие вопросы Delphi 9 27.07.2010 23:14
Ошибка: Disk read error freewix Паскаль, Turbo Pascal, PascalABC.NET 0 06.06.2010 09:23
Ищу причину ошибки: Error in loading DLL, она же Error 48. hozpraktik Microsoft Office Excel 1 19.11.2009 12:39
Variant to Stream & Variant from Stream Oreol Общие вопросы Delphi 1 24.03.2009 13:14
Socket vs Stream JoanM Работа с сетью в Delphi 1 01.04.2008 10:10