Sqlite 상용 함수 추천

5024 단어 Sqlite상용 함수
1.데이터 베 이 스 를 엽 니 다:설명:데이터 베 이 스 를 엽 니 다.파일 이름 이 꼭 존재 하지 않 아 도 됩 니 다.이 파일 이 존재 하지 않 으 면 sqlite 는 자동 으로 생 성 됩 니 다.첫 번 째 매개 변 수 는 파일 이름 을 말 합 니 다.두 번 째 매개 변 수 는 정 의 된 sqlite 3**구조 체 포인터(관건 적 인 데이터 구조)입 니 다.이 구조 바 텀 디 테 일이 어 떻 습 니까?상관 하지 마 십시오.int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 반환 값:조작 소 가 정확 한 지 여부(SQLITEOK 정상적으로 작 동)2.데이터베이스 닫 기:설명:sqlite 3open 에서 데이터 베 이 스 를 열 었 습 니 다.끝 날 때 이 함수 로 데이터 베 이 스 를 닫 는 것 을 잊 지 마 세 요.int sqlite3_close(sqlite3*); // 매개 변 수 는 아까 의 구조 체,즉 데이터베이스 핸들 3,SQL 문 구 를 실행 하 는 것 입 니 다.설명:이 함수 의 기능 은 하나 또는 여러 개의 SQL 문 구 를 실행 하고 SQL 문 구 를 사용 하 는 것 입 니 다."번호 분리.한 줄 또는 여러 개의 SQL 문 구 를 실행 할 때 세 번 째 매개 변수 리 셋 함 수 를 지정 하 는 것 을 권장 합 니 다.리 셋 함수 에서 Sql 을 실행 하 는 상세 한 과정 을 얻 을 수 있 습 니 다.모든 Sql 이 실행 되면 0 으로 돌아 가 야 합 니 다.그렇지 않 으 면 이번 실행 이 완전히 성공 하지 못 했 음 을 설명 합 니 다.다섯 번 째 매개 변수:실행 에 실패 하면 다섯 번 째 설명 값 을 볼 수 있 습 니 다.자세 한 오류 정 보 를 확인 하 러 왔 습 니 다.int sqlite3_exec(sqlite 3*,/*열 린 데이터베이스 핸들*/const char*sql,/*실행 할 Sql 문장*/sqlite콜백,/*리 셋 함수*/void*,/*리 셋 함수 에 전 달 된 인자*/char**errmsg/*오류 정보 저장*/);보통 sqlite 3콜백 과 그 뒤의 void*이 두 위 치 는 모두 NULL 을 채 울 수 있 으 며,반전 이 필요 없다 는 뜻 입 니 다.예 를 들 어 insert 작업 을 하고 delete 작업 을 하면 리 셋 을 사용 할 필요 가 없습니다.select 라 고 생각 할 때 는 리 셋 을 사용 해 야 합 니 다.sqlite 3 에서 데 이 터 를 찾 아 냈 기 때문에 리 셋 을 통 해 어떤 데 이 터 를 찾 았 는 지 알려 드 려 야 합 니 다.4.exec 의 리 셋 type:def int(*sqlite 3callback)(void*, int, char**, char**); 설명:당신 의 반전 함 수 는 위 함수 의 유형 으로 정의 해 야 합 니 다.예:int LoadMyInfo(void*para,int ncolumn, char ** column_value, char ** column_name){//para 는 sqlite 3exec 에 들 어 오 는 void*매개 변수//para 매개 변 수 를 통 해 특수 한 포인터(예 를 들 어 포인터,구조 포인터)를 입력 한 다음 에 이 안에서 대응 하 는 유형 으로 강제 변환 할 수 있 습 니 다(이 안 은 void*유형 이 므 로 강제로 유형 으로 변환 해 야 사용 할 수 있 습 니 다).그리고 이 데 이 터 를 조작 합 니 다/ncolumn 은 이 기록 에 몇 개의 필드 가 있 는 지(즉,이 기록 에 몇 개의 열 이 있 는 지)//char**columnvalue 는 관건 적 인 값 입 니 다.찾 아 낸 데 이 터 는 모두 여기에 저 장 됩 니 다.이것 은 실제 적 으로 1 차원 배열(2 차원 배열 이 라 고 생각 하지 마 세 요)입 니 다.모든 요 소 는 char*값 이 고 필드 내용(문자열 로 표시 합 니 다.\0 으로 끝 납 니 다)/char*column 입 니 다.name 과 columnvalue 는 대응 합 니 다.이 필드 의 필드 이름 5 를 표시 합 니 다.현재 삽입 위 치 를 가 져 옵 니 다.기능:이전에 삽 입 된 위 치 를 되 돌려 줍 니 다.1 부터 sqlite 3*는 데이터 베 이 스 를 열 어 줍 니 다.long long int sqlite3_last_insert_rowid(sqlite3*); 6.비 반전 select 조회:기능:검색 Sql 을 한 번 실행 하고 기록 집합 을 되 돌려 줍 니 다.int sqlite3_get_table(sqlite 3*,/*이미 열 린 데이터베이스 핸들*/const char*sql,/*실행 할 Sql 문 구*/char**resultp,/*반환 기록 집합 을 저장 하 는 지침*/int*nrow,/*반환 기록 수(몇 줄 을 찾 을 수 있 는 지)*/int*ncolumn,/*반환 필드 수(몇 열)*/char*errmsg/*반환 오류 정보*/)설명:세 번 째 매개 변 수 는 조회 결과 입 니 다.이것 은 1 차원 배열 입 니 다.메모리 레이아웃 은 첫 번 째 줄 은 필드 이름 이 고 그 다음은 각 필드 의 값 입 니 다.인 스 턴 스:int main(int,char**){sqlite 3*db;int result; char * errmsg = NULL; char **dbResult; int nRow, nColumn; int i , j; int index; result = sqlite3_open( “c:\\Dcg_database.db”, &db ); if( result != SQLITE_OK ) { return -1; } // 데이터베이스 조작 코드//앞에서 MyTable 을 만 들 었 다 고 가정 합 니 다.1 표//조 회 를 시작 합 니 다.들 어 오 는 dbResult 는 char**입 니 다.여기에&주소 부 호 를 추가 하여 전달 하 는 것 은 char**result=sqlite 3 가 됩 니 다.get_table( db, “select * from MyTable_1”, &dbResult, &nRow, &nColumn, &errmsg ); if( SQLITE_OK==result){//조회 성공 index=nColumn;/앞에서 말 했 듯 이 dbResult 앞의 첫 줄 데 이 터 는 필드 이름 입 니 다.nColumn 색인 부터 시작 하 는 것 이 진정한 데이터 printf 입 니 다("%d 개의 기록 을 찾 습 니 다",nRow).for( i = 0; i < nRow ; i++){printf("%d 조 기록",i+1);for( j = 0 ; j < nColumn; j++){printf("필드 이름:%s?>필드 값:%s",dbResult[j],dbResult[index]);+index; // dbResult 의 필드 값 은 연속 입 니 다.0 번 색인 부터 nColumn-1 번 색인 까지 모두 필드 이름 입 니 다.nColumn 색인 부터 뒤쪽 은 필드 값 입 니 다.2 차원 표(전통 적 인 행렬 표현 법)를 평면 적 인 형식 으로}printf("-")를 표시 합 니 다.}//여기 서 데이터베이스 조회 가 성공 하 든 안 하 든 char**조회 결 과 를 방출 하고 sqlite 가 제공 하 는 기능 으로 sqlite 3 를 방출 합 니 다.free_table( dbResult ); // 데이터베이스 닫 기 sqlite 3close( db ); return 0; } 7.조회 결과 방출:기능:현재 조회 의 기록 집합 이 사용 하 는 메모리 void sqlite 3 방출free_table(char **result); 인 스 턴 스:(SQLite 데이터베이스 에서 리 셋 함 수 를 사용 하 는 간단 한 C 언어 인 스 턴 스)
 
#include <stdio.h>
#include <sqlite3.h>
static int callback( void *NotUsed, int argc, char **argv, char **azColName)
{
int i;
for (i=0; i<argc; i++)
{
printf( "%s = %s
" , azColName[i], argv[i] ? argv[i] : "NULL" );
}
printf( "
" );
return 0;
}
int main( int argc, char **argv)
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
if ( argc!=3 )
{
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT
" , argv[0]);
return 1;
}
rc = sqlite3_open(argv[1], &db);
if ( rc )
{
fprintf(stderr, "Can't open database: %s
" , sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if ( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s
" , zErrMsg);
sqlite3_close(db);
return 1;
}
sqlite3_close(db);
return 0;
}
컴 파일:[root@localhost test]# gcc sql.c -o sql -l sqlite3

좋은 웹페이지 즐겨찾기