Главная страница
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.067 c
14-1093238065
Ega23
2004-08-23 09:14
2004.09.12
Работа


6-1087534420
atruhin
2004-06-18 08:53
2004.09.12
Сокет на Win API


1-1093620483
Anderson
2004-08-27 19:28
2004.09.12
Формы


3-1092390543
strelok-47
2004-08-13 13:49
2004.09.12
два вопроса по EhLib у и ADO компонентам


1-1093390412
массив
2004-08-25 03:33
2004.09.12
Ищу функции преобразования текста в паскалевые строчки и обратно