๊ทผ์ฌ๊ฑฑ์ ์ ๋๊ฐ๋ ์ฌ์์ฐ๋ ๊ฒ. โC.M.
๏ปฟ

- ์๋ฌธ๋งํฌ :
http://www.hwaci.com/sw/sqlite/c_interface.html
1 ํต์ฌ API #
SQLite ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํฐํ์ด์ค๋ 3๊ฐ์ ํต์ฌ ํจ์์ 1๊ฐ์ ๋ฐ์ดํ ๊ตฌ์กฐ์ฒด, ๋ช๊ฐ์ ๋ฐํ๊ฐ ์์๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค. ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
typedef struct sqlite sqlite; #define SQLITE_OK 0 /* Successful result */ sqlite *sqlite_open(const char *dbname, int mode, char **errmsg); void sqlite_close(sqlite *db); int sqlite_exec( sqlite *db, char *sql, int (*xCallback)(void*,int,char**,char**), void *pArg, char **errmsg );
C ๋๋ C++ ํ๋ก๊ทธ๋จ์์์ SQLite๋ฅผ ์ฌ์ฉํ๋๋ฐ ์์ด์๋ ์์ ์๋ ์ ๋๋ง ์๋ฉด ๋ฉ๋๋ค. ๋ฌผ๋ก ๋ค๋ฅธ ํจ์๋ค๋ ์์ง๋ง(๋์ค์ ์ธ๊ธํฉ๋๋ค) ์ผ๋จ ์์ ์ธ๊ธํ ํต์ฌํจ์๋ค๋ถํฐ ์ค๋ช
ํ ๋ก ํ๊ฒ ์ต๋๋ค.
1.1 ๋ฐ์ดํ๋ฒ ์ด์ค ์ด๊ธฐ #
sqlite_open ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ ์กด์ฌํ๋ SQLite ๋ฐ์ดํ๋ฒ ์ด์ค๋ฅผ ์ด๊ฑฐ๋ ์๋ก์ด SQLite ๋ฐ์ดํ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ ์์ต๋๋ค. ์ฒซ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ DB ์ด๋ฆ์
๋๋ค. ๋๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ์ฝ๊ธฐ์ ์ฉ์ผ๋ก ์ด๊ฒ์ธ์ง ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ๋ชจ๋ ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ํฉ๋๋ค๋ง, ํ์ฌ ๊ตฌํ์์๋ ๋ฌด์๋ฉ๋๋ค. ์ธ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ๋ฌธ์์ด ํฌ์ธํฐ์
๋๋ค. ๋ง์ฝ 3๋ฒ์งธ ๋งค๊ฐ๋ณ์๊ฐ NULL์ด ์๋๊ณ DB๋ฅผ ์ด๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, ์ค๋ฅ ๋ฉ์ธ์ง๋ฅผ malloc()์ผ๋ก ํ ๋นํ์ฌ ๊ฑฐ๊ธฐ์ ๋ด์๋ค์ *errmsg์ ๊ทธ ๋ฉ์ธ์ง๊ฐ ๋ด๊ธด ํฌ์ธํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ๋นํ ์ค๋ฅ์ฒ๋ฆฌํ์๋ ์ด ํฌ์ธํฐ๋ณ์๋ฅผ free()ํด์ฃผ์ด์ผํฉ๋๋ค.
SQLite ๋ฐ์ดํ๋ฒ ์ด์ค์ ์ด๋ฆ์ ๋ฐ์ดํ๋ฒ ์ด์ค๋ฅผ ๋ด๊ณ ์์ ํ์ผ๋ช
์ ์ง์ ํฉ๋๋ค. ํ์ผ์ด ์กด์ฌํ์ง ์์ผ๋ฉด, SQLite์ ์ด ํ์ผ์ ์์ฑํ๊ณ ์ด๊ธฐํํฉ๋๋ค. ๋ง์ฝ ํ์ผ์ด ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉด(๊ถํ๋ฌธ์ ๋ผ๋๊ฐ CD-ROM๊ณผ ๊ฐ์ ์ฝ๊ธฐ์ ์ฉ ๋งค์ฒด์ ๋ด๊ฒจ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ค์ ์์ต๋๋ค) SQLite์ DB๋ฅผ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ด๊ฒ ๋ฉ๋๋ค. ์ ์ฒด SQL ๋ฐ์ดํ๋ฒ ์ด์ค๋ ๋์คํฌ์์ 1๊ฐ์ ํ์ผ๋ก์ ์ ์ฅ๋ฉ๋๋ค๋ง, SQL ๋ช
๋ น์ ์คํํ๋ ๋์์๋ ๋กค๋ฐฑ ์ ๋ ๋๋ ์ง์์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ณ๋์ ์์ ํ์ผ๋ค์ ์์ฑํ ์๋ ์์ต๋๋ค.
sqlite_open ํจ์์ ๋ฐํ๊ฐ์ sqlite ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ๊ฐ์
๋๋ค. ์ด ํฌ์ธํฐ๋ ๋ชจ๋ SQLite ํจ์ ํธ์ถ์ ์ฒซ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ ์ง์ ๋ฉ๋๋ค. NULL์ด ๋ฐํ๋๋ฉด ํน์ ์ด์ ๋ก ์ธํด DB ์ด๊ธฐ๊ฐ ์คํจํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.









