SQLite 암호화 기능은 유료라서 무료버전에서는 지원안된다. MFC로 암호화해서 저장하는데, Binary로 저장되기에 TEXT 로 저장하면 복호화때 실패하므로, 필드 속성은 BLOB 으로 지정한다. BLOB 저장할떄는 TRANSACTION 으로 처리해야만 한다. 암호화/복호화는 MFC에서 처리한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 sqlite3* pDB; char* pErr; char **results = NULL; CString strErrMsg, strSQL = NULL; int nResult = sqlite3_open(_DB로그인파일, &pDB); if (nResult) { strSQL = sql..
자동 증가 id, AutoIncrement 1 2 3 4 5 6 7 CREATE TABLE [NewsCode] ( [id] integer PRIMARY KEY AUTOINCREMENT, [Code] varchar(6) NOT NULL, [SearchString] varchar(100) DEFAULT NULL ); INSERT INTO NewsCode (Code, SearchString) VALUES ( '003311', '가나다' ); cs id 같이 자동 증가되는 컬럼이 있는 레코드에 값 저장할 경우 INSERT INTO NewsCode VALUES ( '003311', '가나다' ); 로 하면 오류난다. 이때는 7번 행처럼 id 컬럼 이름을 빼고 컬럼 이름을 넣어준다. 컬럼이 많은 경우 좀 더 쉽게 ..
SQLite3 메모리DB, 인메모리 메모리DB 이용 시 파일명대신 :memory: 로 사용한다. 메모리DB를 파일DB로 혹은 그 반대로 백업할때는 sqlite3_backup... 을 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 #define _FromFile 0 #define _FromMem 1 void CDataDlg::OnBnClickedButton3() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strDB파일명; CFileDialog dlg(..