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

Вниз

Как прочитать в Array поле Binary ?   Найти похожие ветки 

 
Sasha_M ©   (2004-02-19 17:59) [0]

Вот текст программы:

     Var
        Ar : Array [0..1000] of Byte;
        f  : TField;
        i  : Cardinal;
begin
    For i:=0 to 1000 do Ar[i]:=0;
    f:=ADOQuery1.FieldByName("Reg_vBinary");
    ADOQuery1.GetFieldData(f,Addr(Ar));

  Если смотреть утилитой SQL Server Query Analyzer - она дает результат 0x93B2000038B0090003000100760000... , а в Delphi в Array [17,32,0,0,0,0,0,0,160,61,23,0,0,0,0,0,0,0,0,0,0,...].
  Если массив сначало заполнять чем-то отличным от нуля, то при обращении к .GetFieldData( вылазит ошибка "Invalid variant operation".
  При чтении других полей (не "Reg_vBinary", других типов) все Ок!
  P.S.: С базами на Делфи работаю в первый раз! Базу создавал не я!


 
ZrenBy ©   (2004-02-19 18:07) [1]

procedure TForm1.Button3Click(Sender: TObject);
var V:Variant; S:String; i:Integer;
begin
 ADODataSet1.CommandText := "select * from TBL_B where ID=1";
 ADODataSet1.Open;
 V := ADODataSet1.Fields[1].Value;
 ADODataSet1.Close;
 S := "0x";
 for i:=0 to(VarArrayHighBound(V,1))do S:=S+IntToHex(V[i],2);
 Memo1.Lines.Text := S;
end;


 
Sasha_M ©   (2004-02-19 18:56) [2]

Попытался проверить - лезет ошибка "List index out of bounds (1)" на строке V:=....
  А что я делал не правильно ? (или все правильно, но там Hex, а там Dec)?


 
ZrenBy ©   (2004-02-19 19:04) [3]

V := ADODataSet1.FieldByName("Reg_vBinary").Value;


 
Sasha_M ©   (2004-02-19 19:24) [4]

Теперь на строке for i:=0 .... - ошибка "Variant is not an array". ЗАСАДА! Никогда не любил тип Variant!



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
14-1078398952
juiceman
2004-03-04 14:15
2004.03.28
кодовая страница


3-1077630058
UnMi
2004-02-24 16:40
2004.03.28
Как сортировать...?


14-1077894095
menart
2004-02-27 18:01
2004.03.28
С 8 марта!


7-1073270354
Babay
2004-01-05 05:39
2004.03.28
Очередь печати принтера


6-1074255192
Behemoth
2004-01-16 15:13
2004.03.28
TIdTCPServer - как узнать кол-во подключенных клиентов?