⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test1.c

📁 新版轻量级嵌入式数据库
💻 C
📖 第 1 页 / 共 5 页
字号:
    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[3], &value) ) return TCL_ERROR;  rc = sqlite3_bind_int(pStmt, idx, value);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   sqlite3_bind_int64  STMT N VALUE**** Test the sqlite3_bind_int64 interface.  STMT is a prepared statement.** N is the index of a wildcard in the prepared statement.  This command** binds a 64-bit integer VALUE to that wildcard.*/static int test_bind_int64(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  int idx;  i64 value;  int rc;  if( objc!=4 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR;  if( Tcl_GetWideIntFromObj(interp, objv[3], &value) ) return TCL_ERROR;  rc = sqlite3_bind_int64(pStmt, idx, value);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   sqlite3_bind_double  STMT N VALUE**** Test the sqlite3_bind_double interface.  STMT is a prepared statement.** N is the index of a wildcard in the prepared statement.  This command** binds a 64-bit integer VALUE to that wildcard.*/static int test_bind_double(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  int idx;  double value;  int rc;  if( objc!=4 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR;  if( Tcl_GetDoubleFromObj(interp, objv[3], &value) ) return TCL_ERROR;  rc = sqlite3_bind_double(pStmt, idx, value);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   sqlite3_bind_null  STMT N**** Test the sqlite3_bind_null interface.  STMT is a prepared statement.** N is the index of a wildcard in the prepared statement.  This command** binds a NULL to the wildcard.*/static int test_bind_null(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  int idx;  int rc;  if( objc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR;  rc = sqlite3_bind_null(pStmt, idx);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   sqlite3_bind_text  STMT N STRING BYTES**** Test the sqlite3_bind_text interface.  STMT is a prepared statement.** N is the index of a wildcard in the prepared statement.  This command** binds a UTF-8 string STRING to the wildcard.  The string is BYTES bytes** long.*/static int test_bind_text(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  int idx;  int bytes;  char *value;  int rc;  if( objc!=5 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE BYTES", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR;  value = Tcl_GetString(objv[3]);  if( Tcl_GetIntFromObj(interp, objv[4], &bytes) ) return TCL_ERROR;  rc = sqlite3_bind_text(pStmt, idx, value, bytes, SQLITE_TRANSIENT);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, sqlite3TestErrorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   sqlite3_bind_text16 ?-static? STMT N STRING BYTES**** Test the sqlite3_bind_text16 interface.  STMT is a prepared statement.** N is the index of a wildcard in the prepared statement.  This command** binds a UTF-16 string STRING to the wildcard.  The string is BYTES bytes** long.*/static int test_bind_text16(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){#ifndef SQLITE_OMIT_UTF16  sqlite3_stmt *pStmt;  int idx;  int bytes;  char *value;  int rc;  void (*xDel)() = (objc==6?SQLITE_STATIC:SQLITE_TRANSIENT);  Tcl_Obj *oStmt    = objv[objc-4];  Tcl_Obj *oN       = objv[objc-3];  Tcl_Obj *oString  = objv[objc-2];  Tcl_Obj *oBytes   = objv[objc-1];  if( objc!=5 && objc!=6){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE BYTES", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(oStmt), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, oN, &idx) ) return TCL_ERROR;  value = (char*)Tcl_GetByteArrayFromObj(oString, 0);  if( Tcl_GetIntFromObj(interp, oBytes, &bytes) ) return TCL_ERROR;  rc = sqlite3_bind_text16(pStmt, idx, (void *)value, bytes, xDel);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    return TCL_ERROR;  }#endif /* SQLITE_OMIT_UTF16 */  return TCL_OK;}/*** Usage:   sqlite3_bind_blob  STMT N DATA BYTES**** Test the sqlite3_bind_blob interface.  STMT is a prepared statement.** N is the index of a wildcard in the prepared statement.  This command** binds a BLOB to the wildcard.  The BLOB is BYTES bytes in size.*/static int test_bind_blob(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  int idx;  int bytes;  char *value;  int rc;  if( objc!=5 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetStringFromObj(objv[0], 0), " STMT N DATA BYTES", 0);    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR;  value = Tcl_GetString(objv[3]);  if( Tcl_GetIntFromObj(interp, objv[4], &bytes) ) return TCL_ERROR;  rc = sqlite3_bind_blob(pStmt, idx, value, bytes, SQLITE_TRANSIENT);  if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;  if( rc!=SQLITE_OK ){    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   sqlite3_bind_parameter_count  STMT**** Return the number of wildcards in the given statement.*/static int test_bind_parameter_count(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  if( objc!=2 ){    Tcl_WrongNumArgs(interp, 1, objv, "STMT");    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  Tcl_SetObjResult(interp, Tcl_NewIntObj(sqlite3_bind_parameter_count(pStmt)));  return TCL_OK;}/*** Usage:   sqlite3_bind_parameter_name  STMT  N**** Return the name of the Nth wildcard.  The first wildcard is 1.** An empty string is returned if N is out of range or if the wildcard** is nameless.*/static int test_bind_parameter_name(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  int i;  if( objc!=3 ){    Tcl_WrongNumArgs(interp, 1, objv, "STMT N");    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  if( Tcl_GetIntFromObj(interp, objv[2], &i) ) return TCL_ERROR;  Tcl_SetObjResult(interp,      Tcl_NewStringObj(sqlite3_bind_parameter_name(pStmt,i),-1)  );  return TCL_OK;}/*** Usage:   sqlite3_bind_parameter_index  STMT  NAME**** Return the index of the wildcard called NAME.  Return 0 if there is** no such wildcard.*/static int test_bind_parameter_index(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  if( objc!=3 ){    Tcl_WrongNumArgs(interp, 1, objv, "STMT NAME");    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  Tcl_SetObjResult(interp,      Tcl_NewIntObj(       sqlite3_bind_parameter_index(pStmt,Tcl_GetString(objv[2]))     )  );  return TCL_OK;}/*** Usage:   sqlite3_clear_bindings STMT***/#if 0static int test_clear_bindings(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3_stmt *pStmt;  if( objc!=2 ){    Tcl_WrongNumArgs(interp, 1, objv, "STMT");    return TCL_ERROR;  }  if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;  Tcl_SetObjResult(interp, Tcl_NewIntObj(sqlite3_clear_bindings(pStmt)));  return TCL_OK;}#endif/*** Usage: sqlite3_errcode DB**** Return the string representation of the most recent sqlite3_* API** error code. e.g. "SQLITE_ERROR".*/static int test_errcode(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3 *db;  if( objc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetString(objv[0]), " DB", 0);    return TCL_ERROR;  }  if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;  Tcl_SetResult(interp, (char *)errorName(sqlite3_errcode(db)), 0);  return TCL_OK;}/*** Usage:   test_errmsg DB**** Returns the UTF-8 representation of the error message string for the** most recent sqlite3_* API call.*/static int test_errmsg(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){  sqlite3 *db;  const char *zErr;  if( objc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetString(objv[0]), " DB", 0);    return TCL_ERROR;  }  if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;  zErr = sqlite3_errmsg(db);  Tcl_SetObjResult(interp, Tcl_NewStringObj(zErr, -1));  return TCL_OK;}/*** Usage:   test_errmsg16 DB**** Returns the UTF-16 representation of the error message string for the** most recent sqlite3_* API call. This is a byte array object at the TCL ** level, and it includes the 0x00 0x00 terminator bytes at the end of the** UTF-16 string.*/static int test_errmsg16(  void * clientData,  Tcl_Interp *interp,  int objc,  Tcl_Obj *CONST objv[]){#ifndef SQLITE_OMIT_UTF16  sqlite3 *db;  const void *zErr;  int bytes = 0;  if( objc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"",        Tcl_GetString(objv[0]), " DB", 0);    return TCL_ERROR;  }  if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;  zErr = sqlite3_errmsg16(db);  if( zErr ){    bytes = sqlite3utf16ByteLen(zErr, -1);  }  Tcl_SetObjResult(interp, Tcl_NewByteArrayObj(zErr, bytes));#endif /* SQLITE_OMIT_UTF16 */  return TCL_OK;}/*** Usage: sqlite3_prepare DB sql bytes tailvar**** Compile up to <bytes> bytes of the supplied SQL string <sql> using** database handle <DB>. The parameter <tailval> is the name of 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -