@@ -569,11 +569,11 @@
569 569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
570 570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
571 571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
572 572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
573 573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argv_getat Index
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argv at Index
575 575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
576 576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the raw argument at the given index, throwing if
577 577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** out of bounds.
578 578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
579 579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int argvGetAtCmd(
@@ -608,11 +608,11 @@
608 608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
609 609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
610 610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
611 611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
612 612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argv_getstr longName ??shortName? ?defaultValue??
613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argv getstr longName ??shortName? ?defaultValue??
614 614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
615 615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Functions more or less like Fossil's find_option().
616 616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the given argument is found then its value is returned,
617 617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** else defaultValue is returned. If that is not set
618 618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and the option is not found, an error is thrown.
@@ -679,11 +679,11 @@
679 679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
680 680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
681 681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
682 682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
683 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argv_getbool longName ??shortName? ?defaultValue??
684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argv getbool longName ??shortName? ?defaultValue??
685 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
686 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Works just like argv_getstr but treats any empty value or one
687 687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** starting with the digit '0' as a boolean false.
688 688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
689 689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the result as an integer 0 (false) or 1 (true).
@@ -752,11 +752,11 @@
752 752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
753 753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
754 754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
755 755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
756 756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** argv_getint longName ?shortName? ?defaultValue?
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argv getint longName ?shortName? ?defaultValue?
758 758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
759 759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int argvFindOptionIntCmd(
760 760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
761 761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
762 762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
@@ -843,11 +843,11 @@
843 843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
844 844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef TH_ENABLE_SQLITE
845 845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
846 846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
847 847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Adds the given prepared statement to the interpreter. Returns the
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** statements opaque identifier (a positive value). Ownerships of
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** statement's opaque identifier (a positive value). Ownerships of
849 849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pStmt is transfered to interp and it must be cleaned up by the
850 850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** client by calling Th_FinalizeStmt(), passing it the value returned
851 851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** by this function.
852 852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
853 853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If interp is destroyed before all statements are finalized,
@@ -861,10 +861,11 @@
861 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On error (statement not found) non-0 is returned. After this
862 862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** call, some subsequent call to Th_AddStmt() may return the
863 863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** same statement ID.
864 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
865 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int Th_FinalizeStmt(Th_Interp *interp, int stmtId);
866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int Th_FinalizeStmt2(Th_Interp *interp, sqlite3_stmt *);
866 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
867 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
868 869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Fetches the statement with the given ID, as returned by
869 870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Th_AddStmt(). Returns NULL if stmtId does not refer (or no longer
870 871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** refers) to a statement added via Th_AddStmt().
@@ -921,10 +922,30 @@
921 922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
922 923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
923 924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
924 925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
925 926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int Th_FinalizeStmt2(Th_Interp *interp, sqlite3_stmt * pSt){
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i = 0;
931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * st = NULL;
932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = 0;
933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for( ; i < sq->nStmt; ++i ){
934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ st = sq->aStmt[i];
935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(st == pSt) break;
936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( st == pSt ){
938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( i>=0 && i<sq->nStmt );
939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sq->aStmt[i] = NULL;
940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_finalize(st);
941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
926 947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
927 948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static sqlite3_stmt * Th_GetStmt(Th_Interp *interp, int stmtId){
928 949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Sqlite * sq = Th_sqlite_manager(interp);
929 950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return ((stmtId<1) || (stmtId > sq->nStmt))
930 951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
? NULL
@@ -955,11 +976,11 @@
955 976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
956 977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
957 978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
958 979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
959 980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_prepare SQL
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query prepare SQL
961 982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
962 983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns an opaque statement identifier.
963 984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
964 985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryPrepareCmd(
965 986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1028,11 +1049,12 @@
1028 1049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1029 1050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1030 1051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1031 1052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1032 1053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_finalize stmtId
1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query finalize stmtId
1055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId finalize
1034 1056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1035 1057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_finalize()s the given statement.
1036 1058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1037 1059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryFinalizeCmd(
1038 1060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1039,26 +1061,31 @@
1039 1061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1040 1062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1041 1063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1042 1064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1043 1065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 1 : 2;
1044 1068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char * zSql;
1045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc = 0;
1069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int stId = 0;
1047 1070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * arg;
1048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=2 ){
1071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc;
1072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1049 1073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1050 1074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1051 1075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle");
1052 1076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- arg = argv[1];
1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pStmt = queryStmtHandle(interp, arg, argl[1], &rc);
1055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc < 1 ){
1056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return TH_ERROR;
1077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ arg = argv[1];
1079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStmt = queryStmtHandle(interp, arg, argl[1], &stId);
1080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ErrorMessage(interp, "Not a valid statement handle argument.", NULL, 0);
1082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_ERROR;
1083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1057 1084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1058 1085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( NULL != pStmt );
1059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = Th_FinalizeStmt( interp, rc );
1086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = Th_FinalizeStmt2( interp, pStmt );
1060 1087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, rc );
1061 1088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
1062 1089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1063 1090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1064 1091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -1079,11 +1106,11 @@
1079 1106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** least 3.
1080 1107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1081 1108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On success it returns 0, sets *pStmt to the referenced statement
1082 1109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** handle, and pIndex (if not NULL) to the integer value of argv[2]
1083 1110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument. On error it reports the error via TH, returns non-0, and
1084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** modifies neither pStmt not pIndex.
1111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** modifies neither pStmt nor pIndex.
1085 1112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1086 1113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryStmtIndexArgs(
1087 1114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp * interp,
1088 1115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1089 1116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const ** argv,
@@ -1106,11 +1133,11 @@
1106 1133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1107 1134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0 != Th_ToInt( interp, argv[2], argl[2], &index ) ){
1108 1135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1109 1136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1110 1137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- stmt = queryStmtHandle(interp, argv[1], argl[1], NULL);
1138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ stmt = *pStmt ? *pStmt : queryStmtHandle(interp, argv[1], argl[1], NULL);
1112 1139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( NULL == stmt ){
1113 1140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1114 1141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1115 1142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*pStmt = stmt;
1116 1143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pIndex ){
@@ -1121,11 +1148,12 @@
1121 1148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1122 1149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1123 1150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1124 1151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1125 1152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_step stmtId
1153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query step stmtId
1154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId step
1127 1155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1128 1156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Steps the given statement handle. Returns 0 at the end of the set,
1129 1157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a positive value if it fetches a row, and throws on error.
1130 1158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1131 1159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryStepCmd(
@@ -1133,18 +1161,19 @@
1133 1161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1134 1162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1135 1163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1136 1164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1137 1165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 1 : 2;
1139 1168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0;
1140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=2 ){
1169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1141 1170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1142 1171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1143 1172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle");
1144 1173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0 != queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, NULL)){
1174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt && 0 != queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, NULL)){
1146 1175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1147 1176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1148 1177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(NULL != pStmt);
1149 1178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_step( pStmt );
1150 1179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch(rc){
@@ -1162,11 +1191,12 @@
1162 1191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1163 1192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1164 1193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1165 1194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1166 1195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_string stmtId Index
1196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col string stmtId Index
1197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col string Index
1168 1198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1169 1199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the result column value at the given 0-based index.
1170 1200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1171 1201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColStringCmd(
1172 1202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1173,20 +1203,25 @@
1173 1203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1174 1204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1175 1205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1176 1206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1177 1207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1179 1210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * val;
1180 1211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1181 1212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int valLen;
1182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1183 1214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1184 1215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1185 1216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1186 1217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt(interp, argv[1], argl[1], &index);
1222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1188 1223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1189 1224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1190 1225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1191 1226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
val = sqlite3_column_text( pStmt, index );
1192 1227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
valLen = val ? sqlite3_column_bytes( pStmt, index ) : 0;
@@ -1195,11 +1230,12 @@
1195 1230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1196 1231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1197 1232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1198 1233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1199 1234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_int stmtId Index
1235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col int stmtId Index
1236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col int Index
1201 1237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1202 1238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the result column value at the given 0-based index.
1203 1239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1204 1240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColIntCmd(
1205 1241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1206,19 +1242,25 @@
1206 1242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1207 1243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1208 1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1209 1245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1210 1246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1212 1249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0;
1213 1250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1215 1252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1216 1253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1217 1254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1218 1255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt(interp, argv[1], argl[1], &index);
1260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1220 1262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1221 1263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1222 1264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1223 1265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, sqlite3_column_int( pStmt, index ) );
1224 1266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
@@ -1225,11 +1267,12 @@
1225 1267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1226 1268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1227 1269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1228 1270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1229 1271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_double stmtId Index
1272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col double stmtId Index
1273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col double Index
1231 1274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1232 1275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the result column value at the given 0-based index.
1233 1276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1234 1277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColDoubleCmd(
1235 1278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1236,19 +1279,24 @@
1236 1279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1237 1280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1238 1281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1239 1282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1240 1283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1242 1286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rc = 0;
1243 1287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1245 1289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1246 1290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1247 1291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1248 1292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt(interp, argv[1], argl[1], &index);
1297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1250 1298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1251 1299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1252 1300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1253 1301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultDouble( interp, sqlite3_column_double( pStmt, index ) );
1254 1302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
@@ -1255,11 +1303,12 @@
1255 1303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1256 1304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1257 1305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1258 1306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1259 1307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_is_null stmtId Index
1308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col is_null stmtId Index
1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col is_null Index
1261 1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1262 1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns non-0 if the given 0-based result column index contains
1263 1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** an SQL NULL value, else returns 0.
1264 1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1265 1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColIsNullCmd(
@@ -1267,19 +1316,24 @@
1267 1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1268 1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1269 1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1270 1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1271 1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1273 1323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rc = 0;
1274 1324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1276 1326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1277 1327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1278 1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1279 1329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt(interp, argv[1], argl[1], &index);
1334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1281 1335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1282 1336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1283 1337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1284 1338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp,
1285 1339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_NULL==sqlite3_column_type( pStmt, index )
@@ -1288,11 +1342,12 @@
1288 1342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1289 1343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1290 1344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1291 1345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1292 1346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_type stmtId Index
1347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col type stmtId Index
1348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col type Index
1294 1349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1295 1350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the sqlite type identifier for the given 0-based result
1296 1351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** column index. The values are available in TH as $SQLITE_NULL,
1297 1352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** $SQLITE_INTEGER, etc.
1298 1353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -1301,19 +1356,24 @@
1301 1356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1302 1357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1303 1358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1304 1359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1305 1360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1307 1363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rc = 0;
1308 1364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1310 1366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1311 1367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1312 1368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1313 1369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1315 1375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1316 1376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1317 1377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1318 1378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, sqlite3_column_type( pStmt, index ) );
1319 1379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
@@ -1320,11 +1380,12 @@
1320 1380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1321 1381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1322 1382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1323 1383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1324 1384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_count stmtId
1385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col count stmtId
1386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col count
1326 1387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1327 1388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the number of result columns in the query.
1328 1389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1329 1390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColCountCmd(
1330 1391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1332,29 +1393,33 @@
1332 1393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1333 1394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1334 1395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1335 1396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1336 1397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=2 ){
1398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 1 : 2;
1400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1339 1401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1340 1402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1341 1403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle");
1342 1404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pStmt = queryStmtHandle(interp, argv[1], argl[1], NULL);
1344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( NULL == pStmt ){
1345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return TH_ERROR;
1405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStmt = queryStmtHandle(interp, argv[1], argl[1], NULL);
1407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( NULL == pStmt ){
1408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_ERROR;
1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1346 1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1347 1411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_column_count( pStmt );
1348 1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, rc );
1349 1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
1350 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1351 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1352 1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1353 1417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1354 1418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_col_count stmtId Index
1419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col name stmtId Index
1420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col name Index
1356 1421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1357 1422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the result column name at the given 0-based index.
1358 1423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1359 1424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColNameCmd(
1360 1425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1361,22 +1426,26 @@
1361 1426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1362 1427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1363 1428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1364 1429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1365 1430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1367 1433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * val;
1368 1434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0;
1369 1435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1371 1437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1372 1438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1373 1439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1374 1440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1376 1446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(NULL==pStmt);
1378 1447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1379 1448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1380 1449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(NULL!=pStmt);
1381 1450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
val = sqlite3_column_name( pStmt, index );
1382 1451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(NULL==val){
@@ -1386,41 +1455,56 @@
1386 1455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResult( interp, val, strlen( val ) );
1387 1456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
1388 1457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1389 1458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1390 1459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
1461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** TH Syntax:
1462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
1463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query col time stmtId Index format
1464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId col name Index format
1465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
1466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Returns the result column name at the given 0-based index.
1467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
1391 1468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColTimeCmd(
1392 1469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
1393 1470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *ctx,
1394 1471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1395 1472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1396 1473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1397 1474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)ctx;
1476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int minArgs = pStmt ? 3 : 4;
1477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argPos;
1399 1478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * val;
1400 1479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char * fval;
1401 1480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, rc = 0;
1402 1481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1403 1482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * fmt;
1404 1483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob sql = empty_blob;
1405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc<4 ){
1484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc<minArgs ){
1406 1485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1407 1486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1408 1487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Format");
1409 1488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 3;
1492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 2;
1495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1411 1496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(NULL==pStmt);
1413 1497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1414 1498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1415 1499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
val = sqlite3_column_text( pStmt, index );
1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fmt = argv[3];
1500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fmt = argv[argPos++];
1417 1501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(NULL!=pStmt);
1418 1502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql,"SELECT strftime(%Q,%Q",
1419 1503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fmt, val);
1420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(argc>4){
1421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i = 4; i < argc; ++i ){
1504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(argc>argPos){
1505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i = argPos; i < argc; ++i ){
1422 1506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql, ",%Q", argv[i]);
1423 1507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1424 1508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1425 1509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(&sql, ")", 1);
1426 1510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fval = db_text(NULL,"%s", sql.aData);
@@ -1436,11 +1520,10 @@
1436 1520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *ctx,
1437 1521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1438 1522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1439 1523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1440 1524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1442 1525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * val;
1443 1526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char * fval;
1444 1527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, rc = 0;
1445 1528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = -1;
1446 1529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * fmt;
@@ -1469,11 +1552,12 @@
1469 1552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1470 1553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1471 1554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1472 1555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1473 1556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_bind_null stmtId Index
1557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query bind null stmtId Index
1558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId bind null Index
1475 1559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1476 1560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Binds a value to the given 1-based parameter index.
1477 1561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1478 1562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryBindNullCmd(
1479 1563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1480,19 +1564,24 @@
1480 1564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1481 1565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1482 1566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1483 1567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1484 1568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 2 : 3;
1486 1571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1487 1572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = 0;
1488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=3 ){
1573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1489 1574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1490 1575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1491 1576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1492 1577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1494 1583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1495 1584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1496 1585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1497 1586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_bind_null( pStmt, index );
1498 1587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(rc){
@@ -1504,11 +1593,12 @@
1504 1593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1505 1594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1506 1595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1507 1596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1508 1597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_bind_string stmtId Index Value
1598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query bind string stmtId Index Value
1599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId bind string Index Value
1510 1600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1511 1601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Binds a value to the given 1-based parameter index.
1512 1602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1513 1603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryBindStringCmd(
1514 1604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1515,19 +1605,24 @@
1515 1605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1516 1606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1517 1607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1518 1608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1519 1609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 3 : 4;
1521 1612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1522 1613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = 0;
1523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=4 ){
1614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1524 1615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1525 1616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1526 1617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Value");
1527 1618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1529 1624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1530 1625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1531 1626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1532 1627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_bind_text( pStmt, index, argv[3], argl[3], SQLITE_TRANSIENT );
1533 1628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(rc){
@@ -1538,11 +1633,12 @@
1538 1633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1539 1634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1540 1635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1541 1636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1542 1637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_bind_int stmtId Index Value
1638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query bind int stmtId Index Value
1639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId bind int Index Value
1544 1640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1545 1641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Binds a value to the given 1-based parameter index.
1546 1642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1547 1643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryBindIntCmd(
1548 1644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1549,24 +1645,32 @@
1549 1645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1550 1646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1551 1647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1552 1648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1553 1649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 3 : 4;
1555 1652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int val;
1557 1653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = 0;
1558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=4 ){
1654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argPos;
1655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int val;
1656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1559 1657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1560 1658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1561 1659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Value");
1562 1660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 3;
1664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 2;
1667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1564 1668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1565 1669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1566 1670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( 0 != Th_ToInt( interp, argv[3], argl[3], &val ) ){
1671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0 != Th_ToInt( interp, argv[argPos], argl[argPos], &val ) ){
1568 1672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1569 1673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1570 1674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1571 1675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_bind_int( pStmt, index, val );
1572 1676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(rc){
@@ -1577,11 +1681,12 @@
1577 1681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1578 1682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1579 1683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1580 1684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1581 1685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** query_bind_double stmtId Index Value
1686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query bind double stmtId Index Value
1687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** query stmtId bind double Index Value
1583 1688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1584 1689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Binds a value to the given 1-based parameter index.
1585 1690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1586 1691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryBindDoubleCmd(
1587 1692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
@@ -1588,24 +1693,32 @@
1588 1693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1589 1694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1590 1695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1591 1696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1592 1697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_stmt * pStmt = NULL;
1698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int requireArgc = pStmt ? 3 : 4;
1594 1700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- double val;
1596 1701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int index = 0;
1597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc!=4 ){
1702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argPos;
1703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ double val;
1704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc!=requireArgc ){
1598 1705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1599 1706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1600 1707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Value");
1601 1708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!pStmt){
1710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 3;
1712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ToInt( interp, argv[1], argl[1], &index );
1714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 2;
1715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1603 1716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1604 1717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1605 1718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( 0 != Th_ToDouble( interp, argv[3], argl[3], &val ) ){
1719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0 != Th_ToDouble( interp, argv[argPos], argl[argPos], &val ) ){
1607 1720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1608 1721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1609 1722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1610 1723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_bind_double( pStmt, index, val );
1611 1724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(rc){
@@ -1639,17 +1752,17 @@
1639 1752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1640 1753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1641 1754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1642 1755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static Th_SubCommand aSub[] = {
1643 1756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"count", queryColCountCmd},
1644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {"is_null", queryColIsNullCmd},
1757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"is_null", queryColIsNullCmd},
1645 1758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"name", queryColNameCmd},
1646 1759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"double", queryColDoubleCmd},
1647 1760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"int", queryColIntCmd},
1648 1761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"string", queryColStringCmd},
1649 1762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"time", queryColTimeCmd},
1650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- {"type", queryColTypeCmd},
1763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"type", queryColTypeCmd},
1651 1764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0, 0}
1652 1765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1653 1766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_CallSubCommand2( interp, ctx, argc, argv, argl, aSub );
1654 1767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1655 1768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -1659,22 +1772,48 @@
1659 1772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *ctx,
1660 1773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1661 1774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1662 1775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1663 1776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Th_Sqlite * sq = Th_sqlite_manager(interp);
1665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static Th_SubCommand aSub[] = {
1777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int stmtId = 0;
1778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = NULL;
1779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Th_SubCommand aSubAll[] = {
1666 1780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"bind", queryBindTopLevelCmd},
1667 1781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"col", queryColTopLevelCmd},
1668 1782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"step", queryStepCmd},
1669 1783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"finalize", queryFinalizeCmd},
1670 1784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"prepare", queryPrepareCmd},
1671 1785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"strftime", queryStrftimeCmd},
1672 1786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0, 0}
1673 1787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( NULL != sq );
1675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Th_CallSubCommand2( interp, sq, argc, argv, argl, aSub );
1788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Th_SubCommand aSubWithStmt[] = {
1789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* These entries are coded to deal with
1790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ being supplied a statement via pStmt
1791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ or via one of their args.
1792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
1793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"bind", queryBindTopLevelCmd},
1794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"col", queryColTopLevelCmd},
1795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"step", queryStepCmd},
1796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"finalize", queryFinalizeCmd},
1797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {0, 0}
1798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
1799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( NULL != Th_sqlite_manager(interp) );
1802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 1 == argc ){
1803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_WrongNumArgs2( interp, argv[0], argl[0],
1804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "subcommand");
1805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_ERROR;
1806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( 0 == Th_TryInt(interp,argv[1], argl[1], &stmtId) ){
1807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ++argv;
1808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ++argl;
1809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ --argc;
1810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStmt = Th_GetStmt( interp, stmtId );
1811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_CallSubCommand2( interp, pStmt, argc, argv, argl,
1814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pStmt ? aSubWithStmt : aSubAll );
1676 1815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1677 1816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1678 1817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1679 1818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int th_register_query(Th_Interp *interp){
1680 1819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enum { BufLen = 100 };
1681 1820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!