Главная страница
    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.034 c
1-1093590736
asphix
2004-08-27 11:12
2004.09.12
плавное перемещение


3-1092750216
Jey
2004-08-17 17:43
2004.09.12
Резервное копирование баз данных


3-1092751996
Вика
2004-08-17 18:13
2004.09.12
Помогите с SQL 2


3-1092745686
MadGhost
2004-08-17 16:28
2004.09.12
DBGrid multiselect как узнать список который выбрали?


9-1084564663
stud2
2004-05-14 23:57
2004.09.12
Подскажете пожалуйста, где можно найти описание игр шашки и шахма





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский