'SQLITE3'에 해당되는 글 6건

  1. 2011.11.11 sqlite3 관련 라이브러리 추가시 경고 및 에러 발생시.
  2. 2011.10.18 NSDate 데이터 조작 방법.
  3. 2011.09.29 C / C++ interface For SQLite3
  4. 2011.09.22 SQLite3를 이용해 실제 Device에서 실행시 오류.
  5. 2011.09.22 iOS에서 SQLite3에 이미지 저장하는 방법 : 링크
  6. 2011.09.20 SQLite3 tutorial

sqlite3 관련 라이브러리 추가시 경고 및 에러 발생시.

Dev/iOS 2011. 11. 11. 14:09


내 경우 프로젝트의 타켓에서 Build Settings 에서 Library Search Paths 설정이 잘못된 경우 발생 되었다.
그중에 해결방법은,
디바이스 실행시 디바이스 라이브러리 경로를 위로 올려주고,
시뮬레이터 실행시 시뮬레이터 라이브러리 경로를 위로 올려주었더니 정상 실행 되었다. 

'Dev > iOS' 카테고리의 다른 글

UIButton 관련.  (0) 2011.11.21
ARC (Automatic Reference Counting)  (0) 2011.11.21
gdb stack trace at 'putpkt: write failed' 해결방법  (0) 2011.11.11
NSLog 함수 이름 관련 매크로.  (0) 2011.11.04
UIWebView 관련.  (0) 2011.11.01
:

NSDate 데이터 조작 방법.

Dev/iOS 2011. 10. 18. 12:11


NSDate 를 unix timestamp 형식으로 변환하고 시, 분, 초 날자 등을 얻어오는 방법
[링크] http://b4you.net/blog/231

 
SQLite3 데이터베이스 시스템에서 읽고 쓰는 방법

NSDate -> DB
sqlite3_bind_double(stmt, index, [date timeIntervalSince1970]);

DB -> NSDate
date = [NSDate dateWithTimeIntervalSince1970:doubleValueFromDatabase]; 

추가 정보 : stackoverflow

 

'Dev > iOS' 카테고리의 다른 글

NSDate NSDateComponents  (0) 2011.10.20
테이블 화면이 안나타는 현상.  (0) 2011.10.20
[링크]OpenCoverflow  (0) 2011.10.11
Tag 설정과 tag를 이용한 view 검색  (0) 2011.10.06
UIImageView 터치 이벤트  (0) 2011.10.06
:

C / C++ interface For SQLite3

Dev/database 2011. 9. 29. 13:37


필요한 간단한 내용들만 정리.
원문 : C / C++ interface For SQLite version 3


int sqlite3_bind_int(sqlite3_stmt *, int, int);

첫번째 인자
 - sqlite3_prepare_v2 에서 리턴된 sqlite3_stmt 오브젝트.
두번째 인자
 - SQL 파라미터의 인덱스 ( base index : 1 )
세번째 인자
 - 파라미터에 바인드 하고자 하는 value. 

return
 - 성공시 SQLITE_OK를 리턴. 또는 에러코드를 리턴한다. SQLITE_RANGE는 parameter의 index가 벗어난 경우 리턴된다. malloc() 실패시(메모리 부족) SQLITE_NOMEM이 리턴된다. 

-------------------------
int sqlite3_column_int(sqlite3_stmt *, int);

첫번째 인자
 - sqlite3_prepare_v2 에서 리턴된 sqlite3_stmt 오브젝트.
두번째 인자
 - SQL parameter의 인덱스 ( base index : 0)

return
 SQLITE_INTEGER 타입의 값.


** 헷갈렸던 내용 : bind 함수들은 index가 1을 기본으로 시작되고, column 함수들은 index가 0을 기본으로 시작된다. ( 왜 통일 안하고 다르게 해뒀지 ??? )
 
추후 필요한 내용들은 그때 그때 추가한다. 

'Dev > database' 카테고리의 다른 글

무료 Serverless Postgres (PostgreSQL) 데이터베이스 이용하기  (0) 2023.06.18
SQLite3 tutorial  (0) 2011.09.20
:

SQLite3를 이용해 실제 Device에서 실행시 오류.

Dev/iOS 2011. 9. 22. 17:33


error 내용 )
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

SQLite3 라이브러리를 사용하는 코드를 작성중. 시뮬레이터에서는 정상 작동하는 코드가 실제 디바이스 타겟으로 잡아 놓고 실행시 위와 같은 오류 메시지를 뱉어내며 빌드가 실패한다.

문제점 )
프로젝트의 Build Settings 의 Library Search Paths 가 기본으로 시뮬레이터의 경로로 설정되어 있는 경우에 발생 되는듯 하다.

해당 위치 : 프로젝트 루트 선택 -> TARGETS중 해당 타겟 선택



해결책 )
해당 위치를 iPhoneOS.platform에 해당하는 위치로 변경해 주면 빌드가 정상적으로 된다.


iPhoneOS platform 에 해당하는 위치를 입력후 iPhoneSimulator platform의 위치보다 위로 드래그앤 드롭하여 올려준다. 자세한 위치는 다음과 같이 변경 하였다 (version 4.3 일경우)

LIBRARY_SEARCH_PATHS = $(inherited) "$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib"




해당 내용은 SQLite3라이브러리만 해당하는것이 아니라 다른 종류의 라이브러리들도 해당되리라 생각 된다.

:

iOS에서 SQLite3에 이미지 저장하는 방법 : 링크

Dev/iOS 2011. 9. 22. 13:18


미니 님의 페이지 링크.
 
:

SQLite3 tutorial

Dev/database 2011. 9. 20. 16:52


iOS에서 사용할 SQLite3 의 사용법에 대해 정리한다.
원문 링크 : http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html
내가 작성하며 테스트한 환경 : SQLite version 3.7.7.1 2011-06-28 17:39:05

OSX에서 확인하는 경우 Xcode를 설치를 하면 기본으로 설치가 되는 것으로 알고 있다.

Common Commands

database 생성
Terminal 창을 열어 다음과 같이 입력하면 test.db라는 이름의 데이터 베이스가 생성된다.

$ sqlite3 test.db 
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .quit
$

종료를 하기 위한 명령어는 .q .quit .exit 중에 하나를 입력하면 명령 프롬프트로 돌아간다.

table 생성
다음과 같이 테이블(t1)을 생성한다.
$ sqlite3 test.db "create table t1 (t1key INTEGER PRIVAMY KEY,data TEXT, num double, timeEnter DATE);"

생성된 테이블에 데이터 삽입
insert 질의문을 이용하여 테이블에 데이터를 삽입한다.

$ sqlite3 test.db  "insert into t1 (data,num) values ('This is sample data',3);"
$ sqlite3 test.db  "insert into t1 (data,num) values ('More sample data',6);"

$ sqlite3 test.db  "insert into t1 (data,num) values ('And a little more',9);"

삽인된 후의 테이블 데이터 전체 내용 확인
select 질의문을 이용하여 테이블의 내용을 확인한다. 튜토리얼의 내용에는 기본키로 설정한 t1key가 자동 증가가 된다고 되어 있는데 내 맥에서는 자동 증가가 되질 않는지 표시가 되질 않았다. autoincrement 명령어를 주어야 하나보다.

$ sqlite3 test.db "select * from t1;"
|This is sample data|3.0|
|More sample data|6.0||And a little more|9.0|
 
지정된 개수의 행만 출력
limit 명령(?)으로 제한을 줄 수 있다. 2개의 행만을 출력.
 
$ sqlite3 test.db "select * from t1 limit 2;" 
|This is sample data|3.0|
|More sample data|6.0|

Offset 주기
offset 명령(?)으로 오프셋을 줄 수 있다. 다음과 같이 하면 t1key를 기준하여 2개를 오프셋을 준 상태에서 하나의 행만을 출력한다.
$ sqlite3 test.db "select * from t1 order by t1key limit 1 offset 2;"
|And a little more|9.0|

table 이름 보기
.table 명령어를 이용하여 테이블의 이름을 볼 수 있다.
$ sqlite3 test.db ".table"
t1

테이블 리스트의 더 자세한 내용 보기
sqlite_master 을 이용하여 표시할 수 있다.

$ sqlite3 test.db "select * from sqlite_master;"

table|t1|t1|2|CREATE TABLE t1 (t1key INTEGER PRIVAMY KEY,data TEXT, NUM double, timeEnter DATE)

database로 실행된 모든 SQL 정보를 확인.

$ sqlite3 test.db ".dump"

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE t1 (t1key INTEGER PRIVAMY KEY,data TEXT, NUM double, timeEnter DATE);
INSERT INTO "t1" VALUES(NULL,'this is sample data',3.0,NULL);
INSERT INTO "t1" VALUES(NULL,'More sample data',6.0,NULL);
INSERT INTO "t1" VALUES(NULL,'And a little more',9.0,NULL);
COMMIT;


==============================================================
내가 확인한 내용을 여기 까지 이며, 추 후 필요한 내용들은 확인 후 추가 할 것이다. 좀더 구체적이고 자세한 내용을 원하면 내용 첫부분의 원문으로 링크를 쫒아가면된다.
그리고, 원문과 내용이 약간 다를 수 있으므로 의문이 생기거나 이상한 부분도 원문을 확인 하시길... 

: