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

Вниз

поле типа varbinary   Найти похожие ветки 

 
Vitalik ©   (2004-08-14 07:11) [0]

Привет!

Я пытаюсь прочитать значения из таблички sysusers из поля roles. Для этого делаю следующее:

var
 Blob      : TStream;
 F         : TField;
begin
 with DataSet1 do
   begin
     Close;
     commandText := "SELECT uid, name, roles, createdate, updatedate FROM sysusers WHERE uid >=16384";
     Open;

     while not Eof do
       begin
         f := FieldByName("roles");

         if F.IsBlob then showMessage("It is BLOB!");

         Blob := CreateBlobStream(f, bmRead);
         Blob.Position := 0;
         Blob.Read(Temp, blob.Size);
         blob.Free;

         Next;
       end;
     close;

   end;
end;

колонка roles в БД описана как varbinary(2048)...
Условия if F.IsBlob then showMessage("It is BLOB!") не срабатывает.

На строчке Blob := CreateBlobStream(f, bmRead); происходит ошибка ("invalid class typecast")
Отсюда вопросы:
1. что такое BLOB? И разве varbinary(2048) не является BLOB-полем?
2. как мне считать значение из этого столбца?

Спасибо!


 
tERRORist   (2004-08-14 13:20) [1]

К BLOB типам в MSSQL относятся: ntext, text, and image.
А в Делфи типу varbinary будет соотвествовать поле типа TVarBytesField - что-то вроде вариантного массива переменной длины.


 
sniknik ©   (2004-08-14 13:37) [2]

часть программы (показывает варбинари в виде строки в 16значном преставлении)

ftVarBytes:
       Size:= TADODataSet(DBGrid.DataSource.DataSet).FieldByname(TitName).DataSize;
         SetLength(Buf, Size);
       try
         TADODataSet(DBGrid.DataSource.DataSet).FieldByname(TitName).GetData(Buf);
         Size:= Buf[1] shl 8 + Buf[0];

         ChBuf:= "";
         for i:= 0 to Size - 1 do
           ChBuf:= ChBuf + IntToHex(Buf[i+2], 2) + " ";
         Delete(ChBuf, Length(ChBuf), 1);

         BlobEdit.Memo1.Text:= ChBuf;
       finally
         SetLength(Buf, 0);
       end;



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

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

Наверх




Память: 0.47 MB
Время: 0.034 c
14-1093395757
SPeller
2004-08-25 05:02
2004.09.12
Опрос для тех, у кого выделенка


14-1093278061
Гость...
2004-08-23 20:21
2004.09.12
примеры использования fftw.dll


6-1087974793
ИМХО
2004-06-23 11:13
2004.09.12
Спецам по TWebBrowser у


14-1093393635
Alex Konshin
2004-08-25 04:27
2004.09.12
Объем оптического диска достиг 1 терабайта


1-1093517944
aleks-ran
2004-08-26 14:59
2004.09.12
Возврат значения (ий) в вызывающую форму