Showing posts with label SQLite library. Show all posts
Showing posts with label SQLite library. Show all posts
2013/01/30
SQLite Memory DB 속도 테스트
SQLite 를 이용하여 데이터를 저장하는데 속도 문제가 고민이 되어 Memory DB를 테스트 해 보았다.
SQLite 를 이용하여 10만개 레코드를 Insert하고 Update 해 보았다.
테스트를 한 시스템은 Intel Core2Quad CPU Q9550 2.83GHz 이다.
결과는 Update는 차이가 없었지만 Memory DB가 SSD에 비해 15배, HDD에 비해 19배 빠른 결과가 나왔다.
SSD
HDD
Memory DB를 활용하면 좀 더 빠르게 데이터를 저장할 수 있을 것 같다.
Memory DB에 올려진 데이터는 백업 함수를 이용하면 쉽고 빠르게 파일로 저장할 수 있다.
Memory DB와 File DB를 연 상태에서 아래 코드를 수행하면 된다.
<
Original Post : http://neodreamer-dev.tistory.com/695
SQLite 를 이용하여 10만개 레코드를 Insert하고 Update 해 보았다.
테스트를 한 시스템은 Intel Core2Quad CPU Q9550 2.83GHz 이다.
결과는 Update는 차이가 없었지만 Memory DB가 SSD에 비해 15배, HDD에 비해 19배 빠른 결과가 나왔다.
MemoryDB
MemoryDB Insert: 276.685ms
MemoryDB Update: 4.503ms
SSD
SDD 100000 Insert: 4268.289ms
SDD 100000 Update: 4.685ms
HDD
HDD 100000 Insert: 5302.730ms
HDD 100000 Update: 5.745ms
Memory DB를 활용하면 좀 더 빠르게 데이터를 저장할 수 있을 것 같다.
Memory DB에 올려진 데이터는 백업 함수를 이용하면 쉽고 빠르게 파일로 저장할 수 있다.
Memory DB와 File DB를 연 상태에서 아래 코드를 수행하면 된다.
sqlite3_backup* pBackup = NULL;
watch.Begin();
pBackup = sqlite3_backup_init( pFileDB, "main", pMemDB, "main" );
if ( pBackup )
{
sqlite3_backup_step( pBackup, -1 );
sqlite3_backup_finish( pBackup );
}
<
Original Post : http://neodreamer-dev.tistory.com/695
Labels:
SQLite
,
SQLite Backup
,
SQLite library
,
SQLite MemoryDB
,
TistoryOldPost
2011/11/02
SQLite 3.7.9 Release (include Library)
SQLite Release 3.7.9 On 2011 November 1 (3.7.9)
SQLITE_SOURCE_ID: "2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e"
SHA1 for sqlite3.c: becd16877f4f9b281b91c97e106089497d71bb47
SQLite website
<
Original Post : http://neodreamer-dev.tistory.com/610
- If a search token (on the right-hand side of the MATCH operator) in FTS4 begins with "^" then that token must be the first in its field of the document. ** Potentially Incompatible Change **
- Added options SQLITE_DBSTATUS_CACHE_HIT and SQLITE_DBSTATUS_CACHE_MISS to the sqlite3_db_status() interface.
- Removed support for SQLITE_ENABLE_STAT2, replacing it with the much more capable SQLITE_ENABLE_STAT3 option.
- Enhancements to the sqlite3_analyzer utility program, including the --pageinfo and --stats options and support for multiplexed databases.
- Enhance the sqlite3_data_count() interface so that it can be used to determine if SQLITE_DONE has been seen on the prepared statement.
- Added the SQLITE_FCNTL_OVERWRITE file-control by which the SQLite core indicates to the VFS that the current transaction will overwrite the entire database file.
- Increase the default lookaside memory allocator allocation size from 100 to 128 bytes.
- Enhanced the query planner so that it can factor terms in and out of OR expressions in the WHERE clause in an effort to find better indices.
- Added the SQLITE_DIRECT_OVERFLOW_READ compile-time option, causing overflow pages to be read directly from the database file, bypassing the page cache.
- Remove limits on the magnitude of precision and width value in the format specifiers of the sqlite3_mprintf() family of string rendering routines.
- Fix a bug that prevent ALTER TABLE ... RENAME from working on some virtual tables in a database with a UTF16 encoding.
- Fix a bug in ASCII-to-float conversion that causes slow performance and incorrect results when converting numbers with ridiculously large exponents.
- Fix a bug that causes incorrect results in aggregate queries that use multiple aggregate functions whose arguments contain complicated expressions that differ only in the case of string literals contained within those expressions.
- Fix a bug that prevented the page_count and quick_check pragmas from working correctly if their names were capitalized.
- Fix a bug that caused VACUUM to fail if the count_changes pragma was engaged.
- Fix a bug in virtual table implementation that causes a crash if an FTS4 table is dropped inside a transaction and a SAVEPOINT occurs afterwards.
SQLITE_SOURCE_ID: "2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e"
SHA1 for sqlite3.c: becd16877f4f9b281b91c97e106089497d71bb47
SQLite website
<
Original Post : http://neodreamer-dev.tistory.com/610
Labels:
Free Database
,
Local Database
,
SQLite
,
SQLite library
,
TistoryOldPost
2011/10/12
C++ Builder 를 위한 SQLite3 라이브러리 만들기
C++ Builder를 위한 SQLite3 라이브러리 생성은 그리 어렵지 않다. 이전에 올린 글에서도 언급을 하였는데 amalgamation 소스를 이용하면 작업이 쉽다.
2011/10/12 - [Dev Story] - SQLite3 dll 과 정적 라이브러리(Static Library) 만들기
동적 라이브러리는 SQLite 사이트에서 배포하는 DLL을 사용하면 되며 필요한 .lib 파일은 아래 명령을 통해서 만들 수 있다.
정적 라이브러리의 경우 amalgamation 소스를 이용하여 만든다.
먼저 Static Library 프로젝트를 만든다.

적당한 이름으로 프로젝트를 정리하고 프로젝트에 amalgamation 소스파일 3개(sqlite3.c, sqlite3.h, sqlite3ext.h)을 추가 한다.
그리고 프로젝트의 Conditional defines의 Base에 아래와 같이 3개의 Conditional을 추가한다.

이제 빌드만 하면 정적 라이브러리를 얻을 수 있다.
기존의 전체 소스로 컴파일 하는 것에 비하면 상당히 단순화 된 작업이다.
이렇게 만들어진 라이브러리에 대해서는 이전에 올린 테스트 코드에서 이상없이 동작을 하였다. <
Original Post : http://neodreamer-dev.tistory.com/592
2011/10/12 - [Dev Story] - SQLite3 dll 과 정적 라이브러리(Static Library) 만들기
동적 라이브러리는 SQLite 사이트에서 배포하는 DLL을 사용하면 되며 필요한 .lib 파일은 아래 명령을 통해서 만들 수 있다.
implib -a sqlite3.lib sqlite3.dll
정적 라이브러리의 경우 amalgamation 소스를 이용하여 만든다.
먼저 Static Library 프로젝트를 만든다.
적당한 이름으로 프로젝트를 정리하고 프로젝트에 amalgamation 소스파일 3개(sqlite3.c, sqlite3.h, sqlite3ext.h)을 추가 한다.
그리고 프로젝트의 Conditional defines의 Base에 아래와 같이 3개의 Conditional을 추가한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
이제 빌드만 하면 정적 라이브러리를 얻을 수 있다.
기존의 전체 소스로 컴파일 하는 것에 비하면 상당히 단순화 된 작업이다.
이렇게 만들어진 라이브러리에 대해서는 이전에 올린 테스트 코드에서 이상없이 동작을 하였다. <
Original Post : http://neodreamer-dev.tistory.com/592
Labels:
SQLite
,
SQLite library
,
SQLite3
,
SQLite3 Static Library
,
TistoryOldPost
SQLite3 dll 과 정적 라이브러리(Static Library) 만들기
예전 글에서는 Dll 은 amalgamation 소스를 이용하고 정적 라이브러리는 전체 소스를 가지고 만드는 방법을 기록하였는데 이번에는 두가지 모두 amalgamation 소스를 이용하는 방법으로 하여 보았다. 이 방법을 이용할 경우 작업이 무척 간단하고 ICU 모듈 없이도 라이브러리를 만들 수 있다.
일단 Dll 을 만드는 방법은 예전 글(2009/12/09 - [Dev Story/Tips] - SQLite3.dll 만들기 (Win32 & x64 with VC++ 2005))에도 설명을 하였지만 다시금 간단하게 요약을 하면 Win32 Application 을 "SQLite3"란 이름으로 만들고 Wizard 화면에서 아래와 같이 Type을 DLL, Additional options에서 Empty project를 체크하고 프로젝트를 만든다.

프로젝트에 sqlite-amalgamation-xxxxxxxx.zip 파일에 있는 sqlite3.c, sqlite3.h, sqlite3ext.h 파일을 프로젝트에 포함시켜 준다. 그리고 Preprocessor Definitions에 아래 세가지를 입력한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA


마지막으로 sqlite-dll-win32-x86-
xxxxxxxx.zip 파일에 포함되어 있는 sqlite3.def 파일을 프로젝트에 속성에 추가 시켜준다.

이제 빌드만 해 주면 .dll 파일과 .lib 파일을 얻을 수 있다. 필요에 따라 x64 platform 을 추가 구성하면 64비트용 파일들을 얻을 수 있다.
다음으로 정적 라이브러리를 만드는 방법이다. 기존 방법과는 다르고 DLL 파일을 만드는 것과 유사하다.
우선 Win32 Application을 SQLite3Static 이란 이름으로 type을 Static library, Additional options에서 Precompiled header를 선택 해제하고 프로젝트를 생성한다.

DLL 만드는 경우와 같이 프로젝트에 sqlite-amalgamation-xxxxxxxx.zip 파일에 있는 sqlite3.c, sqlite3.h, sqlite3ext.h 파일을 프로젝트에 포함시켜 준다. 그리고 Preprocessor Definitions에 아래 세가지를 입력한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA

이제 빌드만 하면 정적 라이브러리를 만들 수 있다. 역시 x64 platform 을 추가 구성하면 64비트용 파일들을 얻을 수 있다. 그리고 각각의
x64 platform 과 Configuration에 맞게 정적 라이브러리 이름을 지정하면 쉽게 구분할 수 있다.
본인의 경우 아래와 같이 이름을 지정하였다.
x86용
Debug: SQLite3Static32D.lib
Release: SQLite3Static32.lib
x64용
Debug: SQLite3Static64D.lib
Release: SQLite3Static64.lib
위의 작업은 Visual Studio 2005에서 작업을 하였으며 정적 라이브러리의 경우 Visual Studio 2010 버전으로 테스트해
Original Post : http://neodreamer-dev.tistory.com/591
일단 Dll 을 만드는 방법은 예전 글(2009/12/09 - [Dev Story/Tips] - SQLite3.dll 만들기 (Win32 & x64 with VC++ 2005))에도 설명을 하였지만 다시금 간단하게 요약을 하면 Win32 Application 을 "SQLite3"란 이름으로 만들고 Wizard 화면에서 아래와 같이 Type을 DLL, Additional options에서 Empty project를 체크하고 프로젝트를 만든다.
SQLite3.dll 프로젝트 속성
프로젝트에 sqlite-amalgamation-xxxxxxxx.zip 파일에 있는 sqlite3.c, sqlite3.h, sqlite3ext.h 파일을 프로젝트에 포함시켜 준다. 그리고 Preprocessor Definitions에 아래 세가지를 입력한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
마지막으로 sqlite-dll-win32-x86-
xxxxxxxx.zip 파일에 포함되어 있는 sqlite3.def 파일을 프로젝트에 속성에 추가 시켜준다.
sqlite3.def 지정 화면
이제 빌드만 해 주면 .dll 파일과 .lib 파일을 얻을 수 있다. 필요에 따라 x64 platform 을 추가 구성하면 64비트용 파일들을 얻을 수 있다.
다음으로 정적 라이브러리를 만드는 방법이다. 기존 방법과는 다르고 DLL 파일을 만드는 것과 유사하다.
우선 Win32 Application을 SQLite3Static 이란 이름으로 type을 Static library, Additional options에서 Precompiled header를 선택 해제하고 프로젝트를 생성한다.
DLL 만드는 경우와 같이 프로젝트에 sqlite-amalgamation-xxxxxxxx.zip 파일에 있는 sqlite3.c, sqlite3.h, sqlite3ext.h 파일을 프로젝트에 포함시켜 준다. 그리고 Preprocessor Definitions에 아래 세가지를 입력한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
이제 빌드만 하면 정적 라이브러리를 만들 수 있다. 역시 x64 platform 을 추가 구성하면 64비트용 파일들을 얻을 수 있다. 그리고 각각의
x64 platform 과 Configuration에 맞게 정적 라이브러리 이름을 지정하면 쉽게 구분할 수 있다.
본인의 경우 아래와 같이 이름을 지정하였다.
x86용
Debug: SQLite3Static32D.lib
Release: SQLite3Static32.lib
x64용
Debug: SQLite3Static64D.lib
Release: SQLite3Static64.lib
위의 작업은 Visual Studio 2005에서 작업을 하였으며 정적 라이브러리의 경우 Visual Studio 2010 버전으로 테스트해
Original Post : http://neodreamer-dev.tistory.com/591
Labels:
SQLite
,
SQLite Dll
,
SQLite library
,
SQLite Static Library
,
SQLite3
,
TistoryOldPost
2011/04/25
Library for SQLite 3.7.6.2 (Static & Dynamic)
2011/04/14 - [Dev Story/Tips] - SQLite 정적라이브러리(Static Library) 만들기 (C++ Builder)
2011/04/14 - [Dev Story/Tips] - SQLite 정적라이브러리(Static Library) 만들기 (Visual C++)
SQLite 3.7.6.2 Library for C++ Builder
SQLite 3.7.6.2 Library for Visual C++
&
Original Post : http://neodreamer-dev.tistory.com/541
2011/04/14 - [Dev Story/Tips] - SQLite 정적라이브러리(Static Library) 만들기 (Visual C++)
SQLite 3.7.6.2 Library for C++ Builder
SQLite 3.7.6.2 Library for Visual C++
&
Original Post : http://neodreamer-dev.tistory.com/541
Labels:
SQLite
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
2011/02/08
SQLite 3.7.5.0 Library (정적/동적) for C++ Builder and Visual C++
2009/12/09 - [Dev Story/Tips] - SQLite3.dll 만들기 (Win32 & x64 with VC++ 2005)
2008/12/07 - [Dev Story/Tips] - C++ Builder 용 SQLite 정적 라이브러리 만들기
2008/12/07 - [Dev Story/Tips] - Visual C++ 용 SQLite 정적 라이브러리 만들기
3.7.5 버전을 컴파일 하려면 몇 가지 신경을 써야 했다.
3..7.5 버전에서 ICU Unicode 모듈이 추가 되어서 라이브러리를 만들 때 해당 모듈을 포함해 주거나 기능을 비활성화 해야 한다.
이번 소스에는 fts1 과 fts2 와 관련된 소스가 포함되어 있어서 이 두가지 기능을 비활성화 해야 하는데 그러려면 아래 Preprocessor 를 선언해 주어야 한다.
SQLITE_ENABLE_BROKEN_FTS1=1
SQLITE_ENABLE_BROKEN_FTS2=1
C++ Builder 의 경우 ICU Unicode 모듈을 함께 컴파일 할 수 없어서(본인의 경우) ICU 관련 기능을 비활성화 하였다.
#undef SQLITE_ENABLE_ICU
이전 버전과 설정이 좀 달라서 생성된 라이브러리에 대해서 간단하게 테스트해 보니 정상 동작을 하였다.
Labels:
Free Local Database
,
SQLite library
,
TistoryOldPost
,
모류 로컬 데이터베이스
,
무료데이터베이스
2010/12/09
SQLite Release 3.7.4.0 (정적/동적 라이브러리 포함)
SQLite 가 버전업이 되었다. 3.7.2 버전 미만을 사용하고 있을경우 업그레이드를 권장하고 있다.
SQLite Release 3.7.4 On 2010 December 08 (3.7.4)
SQLite Homepage
SQLite Release 3.7.4 On 2010 December 08 (3.7.4)
- Added the sqlite3_blob_reopen() interface to allow an existing sqlite3_blob object to be rebound to a new row.
- Use the new sqlite3_blob_reopen() interface to improve the performance of FTS.
- VFSes that do not support shared memory are allowed to access WAL databases if PRAGMA locking_mode is set to EXCLUSIVE.
- Enhancements to EXPLAIN QUERY PLAN.
- Added the sqlite3_stmt_readonly() interface.
- Added PRAGMA checkpoint_fullfsync.
- Added the SQLITE_FCNTL_FILE_POINTER option to sqlite3_file_control().
- Added support for FTS4 and enhancements to the FTS matchinfo() function.
- Added the test_superlock.c module which provides example code for obtaining an exclusive lock to a rollback or WAL database.
- Added the test_multiplex.c module which provides an example VFS that provides multiplexing (sharding) of a DB, splitting it over multiple files of fixed size.
- A very obscure bug associated with the or optimization was fixed.
이번 버전 역시 정적 라이브러리 컴파일 시도 할 때 sqlite3rtree.h 파일이 없어 sqlite-src-3070400.zip\sqlite-src-3070400\ext\rtree\ 에 포함되어 있던 파일을 이용하였다.
SQLite Homepage
Labels:
SQLite 3.7.4
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
,
무료 데이터베이스
,
무료 로컬 데이터베이스
2010/10/28
SQLite Release 3.7.3.0 (정적/동적 라이브러리 포함)
SQLite Release 3.7.3 On 2010 October 08 (3.7.3)
- Added the sqlite3_create_function_v2() interface that includes a destructor callback.
- Added support for custom r-tree queries using application-supplied callback routines to define the boundary of the query region.
- The default page cache strives more diligently to avoid using memory beyond what is allocated to it by SQLITE_CONFIG_PAGECACHE. Or if using page cache is allocating from the heap, it strives to avoid going over the sqlite3_soft_heap_limit64(), even if SQLITE_ENABLE_MEMORY_MANAGEMENT is not set.
- Added the sqlite3_soft_heap_limit64() interface as a replacement for sqlite3_soft_heap_limit().
- The ANALYZE command now gathers statistics on tables even if they have no indices.
- Tweaks to the query planner to help it do a better job of finding the most efficient query plan for each query.
- Enhanced the internal text-to-numeric conversion routines so that they work with UTF8 or UTF16, thereby avoiding some UTF16-to-UTF8 text conversions.
- Fix a problem that was causing excess memory usage with large WAL transactions in win32 systems.
- The interface between the VDBE and B-Tree layer is enhanced such that the VDBE provides hints to the B-Tree layer letting the B-Tree layer know when it is safe to use hashing instead of B-Trees for transient tables.
- Miscellaneous documentation enhancements.
이번 버전에서는 정적 라이브러리를 만들기 위해 컴파일을 시도 하면 sqlite3rtree.h 파일을 찾을 수 없다는 에러 메세지가 발생하였다. 이 문제에 대한 자료를 찾기가 어려워 우선 sqlite3rtree.h 파일을 sqlite-3.7.3.tar.gz 파일에서 찾아(sqlite-3.7.3.tar.gz\sqlite-3.7.3.tar\sqlite-3.7.3\ext\rtree\) 넣어 컴파일을 하였다
Labels:
Free Database
,
SQLite
,
SQLite 64bit Dll
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
,
무료 데이터베이스
2010/08/30
SQLite Release 3.7.2.0 (정적/동적 라이브러리 포함)
2010 August 24 (3.7.2)
2010 August 23 (3.7.1)
<
Original Post : http://neodreamer-dev.tistory.com/457
- Fix an old and very obscure bug that can lead to corruption of the database free-page list when incremental_vacuum is used.
2010 August 23 (3.7.1)
- Added new commands SQLITE_DBSTATUS_SCHEMA_USED and SQLITE_DBSTATUS_STMT_USED to the sqlite3_db_status() interface, in order to report out the amount of memory used to hold the schema and prepared statements of a connection.
- Increase the maximum size of a database pages from 32KiB to 64KiB.
- Use the LIKE optimization even if the right-hand side string contains no wildcards.
- Added the SQLITE_FCNTL_CHUNK_SIZE verb to the sqlite3_file_control() interface for both unix and windows, to cause database files to grow in large chunks in order to reduce disk fragmentation.
- Fixed a bug in the query planner that caused performance regresssions relative to 3.6.23.1 on some complex joins.
- Fixed a typo in the OS/2 backend.
- Refactored the pager module.
- The SQLITE_MAX_PAGE_SIZE compile-time option is now silently ignored. The maximum page size is hard-coded at 65536 bytes.
<
Original Post : http://neodreamer-dev.tistory.com/457
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
,
데이터베이스
,
로컬 데이터베이스
,
무료 데이터베이스
2010/08/05
SQLite Release 3.7.0.1 (정적/동적 라이브러리 포함)
이번 버전에서 바뀐 사항
- Fix a potential database corruption problem that can result if the same database file is alternately written by version 3.7.0 and 3.6.23.1. See ticket [51ae9cad31] for details.
- Fix a possible performance regression caused by the introduction of automatic indexing.
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
TistoryOldPost
,
로컬 데이터베이스
,
무료 데이터베이스
2010/07/22
SQLite 3.7.0 Static & Dynamic Library (VC, CB)
SQLite 3.7.0 버전의 정적 및 동적 라이브러리를 만들어 보았다. 사용된 컴파일러 버전은 Visual C++ 2005 와 RAD Studio 2010 이다.
관련 글들...
2009/12/09 - [Dev Story/Tips] - SQLite3.dll 만들기 (Win32 & x64 with VC++ 2005)
2008/12/07 - [Dev Story/Tips] - C++ Builder 용 SQLite 정적 라이브러리 만들기
2008/12/07 - [Dev Story/Tips] - Visual C++ 용 SQLite 정적 라이브러리 만들기
<
Original Post : http://neodreamer-dev.tistory.com/453
2008/12/07 - [Dev Story/Tips] - C++ Builder 용 SQLite 정적 라이브러리 만들기
2008/12/07 - [Dev Story/Tips] - Visual C++ 용 SQLite 정적 라이브러리 만들기
<
Original Post : http://neodreamer-dev.tistory.com/453
Labels:
SQLite
,
SQLite library
,
SQLite Library for CB
,
SQLite Library for VC
,
SQLite Static Library
,
TistoryOldPost
2010/03/10
SQLite 3.6.23 Released & Library (Static, Dynamic, VC, CB)
SQLite Release 3.6.23 On 2010 March 09 (3.6.23)
SQLite Library for C++ Builder (DLL 및 정적라이브러리)
Changes associated with this release include the following:
- Added the secure_delete pragma.
- Added the sqlite3_compileoption_used() and sqlite3_compileoption_get() interfaces as well as the compile_options pragma and the sqlite_compileoption_used() and sqlite_compileoption_get() SQL functions.
- Added the sqlite3_log() interface together with the SQLITE_CONFIG_LOG verb to sqlite3_config(). The ".log" command is added to the Command Line Interface.
- Improvements to FTS3.
- Improvements and bug-fixes in support for SQLITE_OMIT_FLOATING_POINT.
- The integrity_check pragma is enhanced to detect out-of-order rowids.
- The ".genfkey" operator has been removed from the Command Line Interface.
- Updates to the co-hosted Lemon LALR(1) parser generator. (These updates did not effect SQLite.)
- Various minor bug fixes and performance enhancements.
SQLite Library for C++ Builder (DLL 및 정적라이브러리)
SQLite Library for Visual C++ ( DLL 및 정적라이브러리 32/64bit)
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
2010/01/06
SQLite 3.6.22 Released & Library (Static, Dynamic)
3.6.22 ( 2010/01/06 ) 에서 변경된 사항
SQLite homepage
SQLite Library for C++ Builder (DLL 및 정적라이브러리)
SQLite Library for Visual C++ ( DLL 및 정적라이브러리 32/64bit)
<
Original Post : http://neodreamer-dev.tistory.com/355
- Fix bugs that can (rarely) lead to incorrect query results when the CAST or OR operators are used in the WHERE clause of a query.
- Continuing enhancements and improvements to FTS3.
- Other miscellanous bug fixes.
SQLite homepage
SQLite Library for C++ Builder (DLL 및 정적라이브러리)
SQLite Library for Visual C++ ( DLL 및 정적라이브러리 32/64bit)
<
Original Post : http://neodreamer-dev.tistory.com/355
Labels:
Database
,
Free Database
,
Local Database
,
SQLite
,
SQLite 64bit Dll
,
SQLite Dll
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
,
데이터베이스
,
로컬 데이터베이스
,
무료 데이터베이스
2009/12/14
SQLite 3.6.21 Library ( VC x86, VC x64, BCC )
SQLite 3.6.21 버전의 라이브러리 파일이다.
VC 의 동적라이브러리는 새롭게 알게된 방법으로 만들었으며 테스트도 해 보았다.
+ 2009/12/16
이상하게도 Windows 7 에서 만들어진 Library가 XP 에서 정상동작을 하지 않는 것 같다. Visual C++ 을 최신 업데이트를 하면 동작을 하는 것 같은데 아직 확실치 않아서 Visual C++ 용 라이브러리를 XP 에서 다시 만들었다.
SQLite homepage<
Original Post : http://neodreamer-dev.tistory.com/346
VC 의 동적라이브러리는 새롭게 알게된 방법으로 만들었으며 테스트도 해 보았다.
+ 2009/12/16
이상하게도 Windows 7 에서 만들어진 Library가 XP 에서 정상동작을 하지 않는 것 같다. Visual C++ 을 최신 업데이트를 하면 동작을 하는 것 같은데 아직 확실치 않아서 Visual C++ 용 라이브러리를 XP 에서 다시 만들었다.
SQLite homepage<
Original Post : http://neodreamer-dev.tistory.com/346
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Static Library
,
TistoryOldPost
,
무료 데이터베이스
,
무료데이터베이스
2009/11/26
SQLite 3.6.20 Released (with Library)
이번 버전에서 수정된 사항
SQLite homepage
SQLite download
Visual C++ (32/64bit) 과 C++ Builder 용 동적라이브러리와 정적라이브러리
<
Original Post : http://neodreamer-dev.tistory.com/339
- Optimizer enhancement: prepared statements are automatically
re-compiled when a binding on the RHS of a LIKE operator changes or
when any range constraint changes under SQLITE_ENABLE_STAT2. - Various minor bug fixes and documentation enhancements.
SQLite homepage
SQLite download
Visual C++ (32/64bit) 과 C++ Builder 용 동적라이브러리와 정적라이브러리
<
Original Post : http://neodreamer-dev.tistory.com/339
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite library
,
SQLite Library for C++ Builder
,
SQLite Library for Visual C++
,
SQLite Static Library
,
TistoryOldPost
2009/10/24
SQLite 3.6.19 Libraries ( Dynamic & Static )
Visual C++ 과 C++ Builder 용 동적라이브러리와 정적라이브러리
Visual C++ 은 32비트용과 64비트용이 포함되어 있음.
Original Post : http://neodreamer-dev.tistory.com/336
Visual C++ 은 32비트용과 64비트용이 포함되어 있음.
Original Post : http://neodreamer-dev.tistory.com/336
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Library for C++ Builder
,
SQLite Library for Visual C++
,
SQLite Static Library
,
TistoryOldPost
2009/09/14
SQLite 3.6.18 Library
얼마전 공개 된 SQLite 3.6.18 버전의 라이브러리 파일들이다.
3.6.17 버전을 만든 프로젝트에 업데이트된 소스를 추가하여 만들었다.
SQLite 3.6.18 Library for C++ Builder ( 32bit Static 및 Dynamic )
SQLite 3.6.18 Library for Visual C++ ( 32bit / 64bit Static 및 32bit Dynamic )
<
Original Post : http://neodreamer-dev.tistory.com/322
3.6.17 버전을 만든 프로젝트에 업데이트된 소스를 추가하여 만들었다.
SQLite 3.6.18 Library for C++ Builder ( 32bit Static 및 Dynamic )
SQLite 3.6.18 Library for Visual C++ ( 32bit / 64bit Static 및 32bit Dynamic )
<
Original Post : http://neodreamer-dev.tistory.com/322
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Library for C++ Builder
,
SQLite Library for Visual C++
,
TistoryOldPost
2009/07/09
SQLite 컴파일하기 ( DLL 만들기 )
SQLite 홈페이지를 방문하면 동적 라이브러리(DLL) 파일(sqlite3.dll)을 쉽게 다운로드 받을 수 있다. 정적 라이브러리를 만들때나 직접 컴파일을 하였는데 64비트용 프로그램 개발에 필요하여 64비트 환경에서 만들어진 dll이 필요하여 컴파일 방법을 찾아 보았는데 정보가 많지 않았다.
어렵사리 찾아서 정리를 해 보았다.
준비물
sqlite-source-3_6_16.zip
sqlitedll-3_6_16.zip
C++ Compiler ( Visual C++ 2005 )
우선 Visual C++ 2005에서 Win32 프로젝트 생성하고 응용프로그램 설정을 아래와 같이 종류를 DLL로 설정하고 추가 옵션에 "빈 프로젝트"로 설정한다.

생성된 프로젝트 폴더에 sqlite 소스 파일(sqlite-source-3_6_16.zip)을 풀어 놓고 sqlitedll-3_6_16.zip 파일에서 sqlite3.def 파일을 프로젝트 폴더에 풀어 놓는다.
프로젝트에 sqlite 소스 파일을 추가한다. 그리고 tclsqlite.c 와 shell.c 파일을 프로젝트에서 제거한다.
프로젝트 속성 페이지의 링크 메뉴의 입력 메뉴에서 모듈 정의 파일 항목에 sqlite3.def 로 설정한다.

위의 설정만으로 빌드를 하면 아래와 같은 링크 에러를 만나게 된다.
1>fts3_tokenizer.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_extension_init이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_table_column_metadata 외부 기호를 확인할 수 없습니다.
1>D:\MyProject\VS\sqlite3\Debug\sqlite3.lib : fatal error LNK1120: 7개의 확인할 수 없는 외부 참조입니다.
위의 에러들을 없애기 위해 아래 내용을 전처리기 정의에 설정한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA

마지막으로 sqlite3ext.h 내용 중 일부를 수정한다.
원본 : #define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api = 0;
수정 : #define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api;
최종 빌드한다.
위의 내용은 32비트에서 진행된 내용이다. 64비트용이라고 크게 다른건 아니고 구성 관리자에서 Win32 구성을 복사하여 x64구성을 만들고 전치리기 설정에서 WIN32를 WIN64로 바꾸면 된다.
실제 동작 여부는 아직 테스트 해
Original Post : http://neodreamer-dev.tistory.com/307
어렵사리 찾아서 정리를 해 보았다.
준비물
sqlite-source-3_6_16.zip
sqlitedll-3_6_16.zip
C++ Compiler ( Visual C++ 2005 )
우선 Visual C++ 2005에서 Win32 프로젝트 생성하고 응용프로그램 설정을 아래와 같이 종류를 DLL로 설정하고 추가 옵션에 "빈 프로젝트"로 설정한다.
생성된 프로젝트 폴더에 sqlite 소스 파일(sqlite-source-3_6_16.zip)을 풀어 놓고 sqlitedll-3_6_16.zip 파일에서 sqlite3.def 파일을 프로젝트 폴더에 풀어 놓는다.
프로젝트에 sqlite 소스 파일을 추가한다. 그리고 tclsqlite.c 와 shell.c 파일을 프로젝트에서 제거한다.
프로젝트 속성 페이지의 링크 메뉴의 입력 메뉴에서 모듈 정의 파일 항목에 sqlite3.def 로 설정한다.
위의 설정만으로 빌드를 하면 아래와 같은 링크 에러를 만나게 된다.
1>fts3_tokenizer.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_extension_init이(가) fts3.obj에 이미 정의되어 있습니다.
1>rtree.obj : error LNK2005: _sqlite3_api이(가) fts3.obj에 이미 정의되어 있습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_database_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_origin_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_column_table_name16 외부 기호를 확인할 수 없습니다.
1>sqlite3.def : error LNK2001: sqlite3_table_column_metadata 외부 기호를 확인할 수 없습니다.
1>D:\MyProject\VS\sqlite3\Debug\sqlite3.lib : fatal error LNK1120: 7개의 확인할 수 없는 외부 참조입니다.
위의 에러들을 없애기 위해 아래 내용을 전처리기 정의에 설정한다.
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
마지막으로 sqlite3ext.h 내용 중 일부를 수정한다.
원본 : #define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api = 0;
수정 : #define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api;
최종 빌드한다.
위의 내용은 32비트에서 진행된 내용이다. 64비트용이라고 크게 다른건 아니고 구성 관리자에서 Win32 구성을 복사하여 x64구성을 만들고 전치리기 설정에서 WIN32를 WIN64로 바꾸면 된다.
실제 동작 여부는 아직 테스트 해
Original Post : http://neodreamer-dev.tistory.com/307
Labels:
SQLite
,
SQLite Compile
,
SQLite Dll
,
SQLite library
,
TistoryOldPost
2009/06/22
SQLite 3.6.15 Library
SQLite 3.6.15의 C++ Builder 와 Visual C++ 을 위한 라이브러리이다.
각각의 압축파일에는 동적라이브러리과 정적라이브러리 그리고 헤더파일이 포함되어 있다.
C++ Builder 용
Visual C++ 용
Original Post : http://neodreamer-dev.tistory.com/304
각각의 압축파일에는 동적라이브러리과 정적라이브러리 그리고 헤더파일이 포함되어 있다.
C++ Builder 용
Visual C++ 용
Original Post : http://neodreamer-dev.tistory.com/304
2009/05/09
SQLite 3.6.14 Library
For C++ Builder
2008/12/07 - [Dev Story/Tips] - C++ Builder 용 SQLite 정적 라이브러리 만들기
For Visual C++
2008/12/07 - [Dev Story/Tips] - Visual C++ 용 SQLite 정적 라이브러리 만들기
Original Post : http://neodreamer-dev.tistory.com/302
2008/12/07 - [Dev Story/Tips] - C++ Builder 용 SQLite 정적 라이브러리 만들기
For Visual C++
2008/12/07 - [Dev Story/Tips] - Visual C++ 용 SQLite 정적 라이브러리 만들기
Original Post : http://neodreamer-dev.tistory.com/302
Labels:
SQLite
,
SQLite for C++ Builder
,
SQLite for Visual C++
,
SQLite library
,
SQLite Library for C++ Builder
,
SQLite Library for Visual C++
,
SQLite Static Library
,
TistoryOldPost
Subscribe to:
Posts
(
Atom
)