Architecturas | sqlite3 c++ 예제

sqlite3 c++ 예제

이 예제에서는 PRAGMA table_info(tableName) 명령을 발행하여 Cars 테이블에 대한 메타데이터 정보를 가져옵니다. SQLite에서 사용하는 파서는 용서입니다. 키워드를 식별자로 사용할 수 있는 경우가 많습니다. 예를 들어 « 테이블 시작 만들기(REPLACE, PRAGMA,END); »라는 문은 SQLite에서 수락하고 « BEGIN »이라는 이름의 새 테이블을 « REPLACE », « PRAGMA » 및 « END »라는 세 개의 열로 만듭니다. 그럼에도 불구하고 키워드를 식별자로 사용하지 않는 것이 가장 좋습니다. 키워드 이름 충돌을 방지하는 데 사용되는 일반적인 기술은 다음과 같습니다. 예를 들어 필요한 뮤텍스를 할당하거나 내부 데이터 구조를 초기화할 수 있습니다. xShutdown 메서드는 sqlite3_shutdown() 에서 간접적으로 호출되며 xInit에서 획득한 모든 리소스를 할당 할당 지정해야 합니다. pAppData 포인터는 xInit 및 xShutdown에 대한 유일한 매개 변수로 사용됩니다. SQLite 명령줄 인터페이스 및 SQLite C/C++ API 예제. 가장 최근의 I/O 오류 또는 파일 열기 실패를 일으킨 기본 운영 체제 오류 코드 또는 오류 번호를 반환하려고 시도합니다.

반환 값은 OS에 따라 다릅니다. 예를 들어 유닉스 시스템에서 SQLITE3_open_v2()가 SQLITE_CANTOPEN을 반환한 후 이 인터페이스를 호출하여 ENOSPC, EAUTH, EISDIR 등과 같은 문제를 일으킨 기본 « errno »를 다시 얻을 수 있습니다. 네 번째 매개 변수는 선택적으로 SQLITE_DETERMINISTIC를 사용하여 ORed가 되어 함수가 단일 SQL 문 내에서 동일한 입력을 주어 항상 동일한 결과를 반환한다는 신호를 보낼 수 있습니다. 대부분의 SQL 함수는 결정적입니다. 기본 제공 random() SQL 함수는 결정적이지 않은 함수의 예입니다. SQLite 쿼리 플래너는 결정적 함수에 대한 추가 최적화를 수행할 수 있으므로 가능한 경우 SQLITE_DETERMINISTIC 플래그를 사용하는 것이 좋습니다. 이 루틴은 정수반환: 정수SQLITE_OK 매크로와 같으면 모든 것이 잘 작동합니다. 이 예제에서는 데이터베이스 의 열기에 대한 컨트롤이 생략되고, 이는 과거 코드에서 작성되었습니다. SQLITE_ERROR는 런타임 오류(예: 제약 조건 위반)가 발생했음을 의미합니다. sqlite3_step()는 VM에서 다시 호출해서는 안 됩니다. 자세한 내용은 sqlite3_errmsg()를 호출하여 찾을 수 있습니다. 레거시 인터페이스를 사용하면 준비된 명령문에서 sqlite3_reset()를 호출하여 보다 구체적인 오류 코드(예: SQLITE_INTERRUPT, SQLITE_SCHEMA, SQLITE_CORRUPT 등)를 가져올 수 있습니다.

« v2″ 인터페이스에서 보다 구체적인 오류 코드는 sqlite3_step()에 의해 직접 반환됩니다. 따라서이 SQLiteCpp 리포지토리는 Git submoldule로 직접 사용할 수 있습니다.