Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 12.09.2012, 13:18
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от ArtIntellAnd
Привет всем. Вопрос. Записываю в базу данных 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;
У меня этот код вылетает на ExecSQL с ошибкой "String or binary data would be truncated."

Если же я заменяю ftBlob на ftBytes, то всё нормально сохраняет:

Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025