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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2013, 01:21   #1
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию blob данные из Sqlite

вообщем мне надо прочитать данные типа BLOB в массив байт...

текстовые поля читаю так...

Код:
var
  Query: TDISQLite3UniDirQuery;
begin
  query := TDISQLite3UniDirQuery.Create(nil);
  try
    Query.Database := sqlitedb;
    Query.SelectSQL := 'select * from ...';
    Query.Open;
    while not Query.EOF do
    begin
      <?>:=Query.FieldByName('имя_поля').AsString;
      Query.Next;
    end;

  finally Query.Free;
  end;
а как быть с blob?

P.S. компонент DISQlite3
unbanned вне форума Ответить с цитированием
Старый 09.08.2013, 08:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что там есть кроме AsString?
Что-то типа такого: http://delphiworld.narod.ru/base/blo...ead_files.html
может подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.08.2013, 10:18   #3
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

да. спасибо) это было то. но мне нужно было немного по-другому ...

Код:
var
  query:TDISQLite3UniDirQuery;
  blob:TBlobByteData;
begin
  query:=TDISQLite3UniDirQuery.Create(nil);
   query.Database:=sqldb;
   query.SelectSQL:='SELECT * FROM ...';
   query.Open;
   while not query.Eof do
   begin
       {query.CreateBlobStream(query.FieldByName('имя_поля'),bmRead);}
    query.GetFieldData(query.FieldByName('имя_поля'),@blob);
    query.next;
   end;

end;
Код:
Delphi syntax:

type TBlobByteData = array of Byte;

мне вообще вот такую структуру надо получить)

Код:
DATA_BLOB = record
    cbData: DWORD;
    pbData: PByte;
  end;
Цитата:
cbData
A DWORD variable that contains the count, in bytes, of data.
pbData
A pointer to the data buffer.
с указателем на массив то понятно... а как получить кол-во байт?

Последний раз редактировалось unbanned; 09.08.2013 в 15:26.
unbanned вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sqlite blob wmm C++ Builder 2 11.11.2012 18:37
Отображать данные поля blob в DBImage C2H5OH Помощь студентам 24 17.08.2012 14:03
Добавление изображения в blob через sql. Blob пустой. athleet БД в Delphi 3 01.05.2012 06:41
Как вывести значения поля MySQL в DBLabel, если данные в BLOB... tim21701 Компоненты Delphi 6 20.01.2012 20:39