Главная страница
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.021 c
1-1093489221
SNV-Soft
2004-08-26 07:00
2004.09.12
Компонент "Линейка"


10-1036136259
kostik78ua
2002-11-01 10:37
2004.09.12
Коннекты остаются :(


1-1091431276
dima
2004-08-02 11:21
2004.09.12
тест на delphi


3-1092729157
Beethoven
2004-08-17 11:52
2004.09.12
Вычисляемые поля


14-1093290195
Vasya.ru
2004-08-23 23:43
2004.09.12
Инсталлятор