Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Вниз

поле типа 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
3-1092755538
eXXX
2004-08-17 19:12
2004.09.12
Кто нить юзал DevExpress Grid4


10-1019023143
Vlad.nojabrsk
2002-04-17 09:59
2004.09.12
Visibroker console не запускается под XP


1-1093515851
slart
2004-08-26 14:24
2004.09.12
Длительность видео-роликов


1-1093375510
VZup
2004-08-24 23:25
2004.09.12
Круглые SpeedButton


14-1093227671
Думкин
2004-08-23 06:21
2004.09.12
С днем рождения! 23 августа.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский