Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2009, 15:25   #1
Serval
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 26
Печаль Проблемы с записью данных в базу

База MSSQL Server 2000 или 2005
запросы пишу на ADO

нужно записать данные типа в поле с типом данных varbinary
Код:
  TPkt = array[0..100] of Byte;
в поле с типом данных varbinary (255)

делаю запрос
Код:
  with ADOSend do
    try
       if not Active then
        close;
          Open;
        Insert;
        FieldByName('ComputerName').AsString := MyGetComputerName;
        FieldByName('Packet').SetData(@pkt); //вот в этой строке проблема
        Post;
    except
    end;
выдает ошибку Access violation
подскажите где я тупанул - или подскажите как этот массив байтовый туда запихать.
Serval вне форума Ответить с цитированием
Старый 24.06.2009, 15:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А эта pkt она вообще как описана?
И кста может тебе так попробовать:
Код:
  FieldByName('Packet').AsString:=string(pkt)
Иногда такие приведения типов срабатывают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2009, 15:52   #3
Serval
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А эта pkt она вообще как описана?
И кста может тебе так попробовать:
Код:
  FieldByName('Packet').AsString:=string(pkt)
Иногда такие приведения типов срабатывают.
несработало - Invalid typecast

Код:
TPkt = array[0..100] of Byte;
....
pkt:TPkt
это массив байтов.
Serval вне форума Ответить с цитированием
Старый 24.06.2009, 16:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
несработало
А так:?
Код:
var s:string;
begin
 setlength(s,100);
 move(s[1],pkt,100);
  FieldByName('Packet').AsString:=s;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2009, 19:39   #5
Serval
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А так:?
Код:
var s:string;
begin
 setlength(s,100);
 move(s[1],pkt,100);
  FieldByName('Packet').AsString:=s;
end.
таким образом записывает... но как-то нетак - в базе данные уже не в том виде получаются - искажает это преобразование их - преобразовывать пакет в строку пробовал - ничего хорошего
Serval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с записью в файл ROD Общие вопросы C/C++ 9 03.04.2009 12:32
Импорт в базу данных из файла. Stalkr БД в Delphi 7 12.11.2008 15:26
Создать базу данных Master of Puppets Microsoft Office Excel 5 10.06.2008 13:34
Как создать базу данных knazty Помощь студентам 15 18.11.2007 19:49
Открыть базу данных MogilShik Помощь студентам 3 11.10.2007 17:11