Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > работа с sqlite3_blob_write запись картинки в БД


Автор: VasRip 5.6.2013, 09:59
На этапе записи sqlite3_blob_write выдает постоянно ошибку "1";
Картинка 100% сохранена в MS_ima проверял уже 10 раз картинку;

может пример у кого работающий есть. 

Код

TMemoryStream *MS_ima = new  TMemoryStream;
IdHTTP1->Get("http://www.**********/****0.jpg",MS_ima);

sqlite3 *ppDb;
int rc;

sqlite3_blob *ppBlob;

// открытие (создание) БД
 rc =sqlite3_open("Pattern_Recognition_SQLite.db", &ppDb);
Memo1->Lines->Add("подключен к БД= "+IntToStr(rc));



    rc = sqlite3_blob_open(ppDb,"main","ima","ima", 1 , 1, &ppBlob );
    Memo1->Lines->Add("подключен к Blob= "+IntToStr(rc));

    if( rc == SQLITE_OK )
    {

        rc = sqlite3_blob_write(ppBlob,MS_ima,MS_ima->Size, 1);
        Memo1->Lines->Add("Запись в бд"+IntToStr(rc));

        rc =sqlite3_blob_close( ppBlob ); // закрытие Blob
        Memo1->Lines->Add("Blob закрыт"+IntToStr(rc));
    }
   rc =    sqlite3_close(ppDb);//закрытие БД
   Memo1->Lines->Add("БД закрыта"+IntToStr(rc));


за рание спс

Автор: VasRip 6.6.2013, 15:48
порывшись по ковырявшись. пришел в выводу что самый просто и самый быстрый способ это использование Embedded Firebird

нашел статью http://www.fancydev.ru/content/embedded-firebird-vstraivaemaya-baza-dannyh-chast-2 
и собственно с решаю задачу.


не требует установки только DLL. И самое важное очень просто механизм использование SQL

мой выбор  Embedded Firebird

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)