sqlite c 예제

다음 C 코드 세그먼트는 위의 예제에서 만든 회사 테이블에서 레코드를 가져오고 표시하는 방법을 보여 줍니다 . sqlite에 대한 추가 정보는 cli.html에서 확인할 수 있습니다. 소스 파일 src/tclsqlite.c에서 SQLite에 대한 Tcl 인터페이스의 소스도 참조하십시오. SQLite의 모든 기본 제공 SQL 함수는 정확히 동일한 인터페이스를 사용하여 만들어집니다. SQLite 소스 코드, 특히 date.c 및 func.c 소스 파일을 참조하십시오. 이 예제에서는 PRAGMA table_info(tableName) 명령을 발행하여 Cars 테이블에 대한 메타데이터 정보를 가져옵니다. 일반적으로 동일한 SQL 문을 두 번 이상 평가하는 것은 유용하지 않습니다. 더 자주, 하나는 유사한 문을 평가하려고합니다. 예를 들어 다른 값으로 INSERT 문을 여러 번 평가할 수 있습니다. 또는 WHERE 절의 다른 키를 사용하여 동일한 쿼리를 여러 번 평가할 수 있습니다.

이를 수용하기 위해 SQLite는 SQL 문이 평가되기 전에 값에 “바인딩”된 매개 변수를 포함할 수 있도록 합니다. 이러한 값은 나중에 변경할 수 있으며 준비된 동일한 문을 새 값을 사용하여 두 번째로 평가할 수 있습니다. 이 문서에서는 C++/C를 사용하여 SQLITE3을 사용하는 데이터베이스에 대한 빠른 가이드를 제공합니다. 이 예제에서는 C ++를 사용했지만 문자열을 전달할 때 문자 배열에서 문자열을 변환하기 위해 c_str() 메서드를 호출했습니다. 대부분의 응용 프로그램은 종료 시 sqlite3_close()에 대한 호출을 사용하여 데이터베이스 연결을 파기합니다. 또는 SQLite를 응용 프로그램 파일 형식으로 사용하는 응용 프로그램은 파일/열기 메뉴 작업에 대한 응답으로 데이터베이스 연결을 열고 파일/닫기 메뉴에 대한 응답으로 해당 데이터베이스 연결을 삭제할 수 있습니다. SQLite 명령줄 인터페이스 및 SQLite C/C++ API 예제. 다음 예제에서는 자리 표시기를 사용하고 값을 바인딩하는 방법을 보여 주어 있습니다. 이제 이 데이터를 하나의 테이블에 저장할 수 있으며 간단한 예제에서는 허용될 수 있습니다. 그러나 좋은 데이터베이스 디자인 연습에는 몇 가지 정규화가 필요합니다. 다음 예제는 자동 커밋 모드를 더 명확히 합니다.

자동 커밋 모드에서 SELECT가 아닌 각 문은 즉시 커밋되는 작은 트랜잭션입니다. 다음 예제에서는 asprintf()를 사용하여 동적으로 쿼리를 만듭니다. 이 작업은 간단하고 신뢰할 수 있는 입력으로 수행할 수 있습니다. 사용자가 제공하는 콘텐츠의 경우 아래와 같이 값 바인딩을 사용해야 합니다. 이 루틴은 정수반환: 정수SQLITE_OK 매크로와 같으면 모든 것이 잘 작동합니다. 이 예제에서는 데이터베이스 의 열기에 대한 컨트롤이 생략되고, 이는 과거 코드에서 작성되었습니다. 예를 들어 보겠습니다. 사용자 입력에서 문자열 값을 얻은 데이터베이스 테이블에 문자열 값을 삽입하려고 한다고 가정합니다. 삽입할 문자열이 zString이라는 변수에 저장되어 있다고 가정합니다. 삽입을 수행하는 코드는 다음과 같이 보일 수 있습니다.

쿼리는 정적 문자열입니다. 이 코드 조각은 위의 예제에서 sqlite3_open() 및 sqlite3_close() 사이에 배치할 수 있습니다. 위의 루틴 목록은 실제가 아닌 개념적입니다. 이러한 루틴의 대부분은 여러 버전으로 제공됩니다. 예를 들어 위의 목록은 sqlite3_open() 이라는 단일 루틴을 보여 주며 실제로 는 sqlite3_open() 및 sqlite3_open16() 및 sqlite3_open_v2()와 같은 작업을 약간 다른 방식으로 수행하는 세 개의 별도 루틴이 있습니다. 실제로 이러한 루틴이 없는 경우 이 목록에는 sqlite3_column()이 언급됩니다. 목록에 표시된 “sqlite3_column()”은 다양한 데이터 형식에서 열 데이터를 추가하는 루틴 전체 패밀리의 자리 표시자입니다. 이제 SQLite는 이 인터페이스를 사용하여 모든 기본 제공 기능을 구현합니다.