Показать сообщение отдельно
  #1  
Старый 12.09.2012, 04:08
ArtIntellAnd ArtIntellAnd вне форума
Прохожий
 
Регистрация: 23.09.2011
Сообщения: 11
Репутация: 10
По умолчанию Записать в базу данных шестнадцатеричную переменную

Привет всем. Вопрос. Записываю в базу данных SQL Server в поле типа binary(50) переменную равную r.intv2 := $FFFF;. В базу значение записывается равное 0x8E0014000000FFFF00000000...., от куда берутся первые шесть байт и как мне их убрать. Код программы:
Код:
var
  Form1: TForm1;

 type
  TTest = packed record
    intv2 : integer;

end;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var dp : TParameter;
    ms : TMemoryStream;
    r : TTest;
begin
    r.intv2 := $FFFF;

    ADOQuery1.SQL.Text := 'INSERT INTO qwe(qwe) VALUES (:qwe)';
    dp := ADOQuery1.Parameters.ParamByName('qwe');

    ms := TMemoryStream.Create();
    ms.Write(r, sizeof(r));
    dp.LoadFromStream(ms, ftBlob);

    ADOQuery1.ExecSQL();
end;

Может кто подскажет более правильное решение....
Ответить с цитированием