@@ -1188,10 +1188,28 @@
1188 1188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return queryReportDbErr( interp );
1189 1189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1190 1190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, rc );
1191 1191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
1192 1192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int queryResetCmd(
1195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Interp *interp,
1196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void *p,
1197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argc,
1198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char **argv,
1199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *argl
1200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
1201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int const rc = sqlite3_reset(pStmt);
1203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(rc){
1204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ErrorMessage(interp, "Reset of statement failed.", NULL, 0);
1205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_ERROR;
1206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_OK;
1208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1193 1211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1194 1212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1195 1213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH Syntax:
1196 1214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1197 1215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** query col string stmtId Index
@@ -1205,23 +1223,25 @@
1205 1223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1206 1224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1207 1225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1208 1226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1209 1227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1210 1230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1211 1231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 2 : 3;
1212 1232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * val;
1213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int index = -1;
1214 1233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int valLen;
1234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( index >= 0 ) --requireArgc;
1215 1235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1216 1236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1217 1237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1218 1238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1219 1239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1220 1240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1221 1241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<0){
1223 1243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt(interp, argv[1], argl[1], &index);
1224 1244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1225 1245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1226 1246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1227 1247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -1245,25 +1265,26 @@
1245 1265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1246 1266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1247 1267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1248 1268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1249 1269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1250 1272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1251 1273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 2 : 3;
1252 1274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0;
1253 { 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( index >= 0 ) --requireArgc;
1254 1276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1255 1277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1256 1278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1257 1279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1258 1280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1259 1281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1260 1282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<0){
1262 1284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt(interp, argv[1], argl[1], &index);
1263 1285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1265 1286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1266 1287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1267 1288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1268 1289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, sqlite3_column_int( pStmt, index ) );
1269 1290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
@@ -1283,22 +1304,24 @@
1283 1304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1284 1305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1285 1306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1286 1307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1287 1308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1288 1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1289 1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 2 : 3;
1290 1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rc = 0;
1291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int index = -1;
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( index >= 0 ) --requireArgc;
1292 1315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1293 1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1294 1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1295 1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1296 1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1297 1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1298 1321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<0){
1300 1323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt(interp, argv[1], argl[1], &index);
1301 1324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1302 1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 0){
1303 1326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1304 1327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -1582,22 +1605,24 @@
1582 1605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1583 1606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1584 1607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1585 1608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1586 1609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1587 1612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1588 1613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 2 : 3;
1614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( index > 0 ) --requireArgc;
1589 1615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int index = 0;
1591 1616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1592 1617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1593 1618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1594 1619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index");
1595 1620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1596 1621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1597 1622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<1){
1599 1624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt( interp, argv[1], argl[1], &index );
1600 1625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1601 1626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1602 1627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1603 1628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -1623,28 +1648,35 @@
1623 1648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1624 1649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1625 1650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1626 1651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1627 1652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1628 1655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1629 1656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 3 : 4;
1630 1657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int index = 0;
1658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int argPos;
1659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( index > 0 ) --requireArgc;
1632 1660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1633 1661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1634 1662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1635 1663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Value");
1636 1664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1637 1665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1638 1666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 3;
1668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<1){
1640 1669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt( interp, argv[1], argl[1], &index );
1670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 2;
1671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 1;
1641 1673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1642 1674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1643 1675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1644 1676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3_bind_text( pStmt, index, argv[3], argl[3], SQLITE_TRANSIENT );
1677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3_bind_text( pStmt, index, argv[argPos], argl[argPos], SQLITE_TRANSIENT );
1646 1678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(rc){
1647 1679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return queryReportDbErr( interp );
1648 1680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1649 1681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_SetResultInt( interp, 0 );
1650 1682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_OK;
@@ -1663,27 +1695,31 @@
1663 1695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1664 1696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1665 1697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1666 1698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1667 1699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1668 1702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1669 1703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 3 : 4;
1670 1704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int index = 0;
1672 1705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argPos;
1673 1706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int val;
1707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( index > 0 ) --requireArgc;
1674 1708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1675 1709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1676 1710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1677 1711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Value");
1678 1712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1679 1713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1680 1714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1681 1715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argPos = 3;
1682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<1){
1683 1717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt( interp, argv[1], argl[1], &index );
1684 1718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argPos = 2;
1719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 1;
1685 1721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1686 1722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1687 1723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1688 1724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1689 1725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0 != Th_ToInt( interp, argv[argPos], argl[argPos], &val ) ){
@@ -1711,27 +1747,31 @@
1711 1747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *p,
1712 1748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1713 1749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1714 1750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1715 1751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int index = sq->colCmdIndex;
1716 1754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = (sqlite3_stmt*)p;
1717 1755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int requireArgc = pStmt ? 3 : 4;
1718 1756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
1719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int index = 0;
1720 1757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argPos;
1721 1758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double val;
1759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( index > 0 ) --requireArgc;
1722 1760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( argc!=requireArgc ){
1723 1761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return Th_WrongNumArgs2(interp,
1724 1762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argv[0], argl[0],
1725 1763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"StmtHandle Index Value");
1726 1764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1727 1765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!pStmt){
1728 1766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index);
1729 1767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argPos = 3;
1730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(index<1){
1731 1769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_ToInt( interp, argv[1], argl[1], &index );
1732 1770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
argPos = 2;
1771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argPos = 1;
1733 1773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1734 1774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(index < 1){
1735 1775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return TH_ERROR;
1736 1776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1737 1777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 0 != Th_ToDouble( interp, argv[argPos], argl[argPos], &val ) ){
@@ -1751,18 +1791,36 @@
1751 1791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *ctx,
1752 1792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int argc,
1753 1793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **argv,
1754 1794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *argl
1755 1795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int colIndex = -1;
1756 1797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static Th_SubCommand aSub[] = {
1757 1798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"int", queryBindIntCmd},
1758 1799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"double", queryBindDoubleCmd},
1759 1800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"null", queryBindNullCmd},
1760 1801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"string", queryBindStringCmd},
1761 1802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0, 0}
1762 1803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_Sqlite * sq = Th_sqlite_manager(interp);
1805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert(NULL != sq);
1806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 1 == argc ){
1807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_WrongNumArgs2( interp, argv[0], argl[0],
1808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "subcommand");
1809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_ERROR;
1810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( 0 == Th_TryInt(interp,argv[1], argl[1], &colIndex) ){
1811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(colIndex <0){
1812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Th_ErrorMessage( interp, "Invalid column index.", NULL, 0);
1813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return TH_ERROR;
1814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ++argv;
1816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ++argl;
1817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ --argc;
1818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sq->colCmdIndex = colIndex;
1763 1820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_CallSubCommand2( interp, ctx, argc, argv, argl, aSub );
1821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1764 1822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1765 1823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1766 1824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int queryColTopLevelCmd(
1767 1825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_Interp *interp,
1768 1826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void *ctx,
@@ -1808,13 +1866,10 @@
1808 1866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
++argv;
1809 1867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
++argl;
1810 1868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
--argc;
1811 1869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1812 1870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sq->colCmdIndex = colIndex;
1813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* TODO: accept the index as the first param after "col", and make
1814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- subcommands aware of sq->colCmdIndex.
1815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
1816 1871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_CallSubCommand2( interp, ctx, argc, argv, argl,
1817 1872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(colIndex<0) ? aSub : aSubWithIndex );
1818 1873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1819 1874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1820 1875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -1828,10 +1883,11 @@
1828 1883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int stmtId = 0;
1829 1884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt * pStmt = NULL;
1830 1885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static Th_SubCommand aSubAll[] = {
1831 1886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"bind", queryBindTopLevelCmd},
1832 1887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"col", queryColTopLevelCmd},
1888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"reset", queryResetCmd},
1833 1889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"step", queryStepCmd},
1834 1890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"finalize", queryFinalizeCmd},
1835 1891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"prepare", queryPrepareCmd},
1836 1892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"strftime", queryStrftimeCmd},
1837 1893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0, 0}
@@ -1843,10 +1899,11 @@
1843 1899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1844 1900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"bind", queryBindTopLevelCmd},
1845 1901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"col", queryColTopLevelCmd},
1846 1902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"step", queryStepCmd},
1847 1903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"finalize", queryFinalizeCmd},
1904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {"reset", queryResetCmd},
1848 1905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{0, 0}
1849 1906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1850 1907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1851 1908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1852 1909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( NULL != Th_sqlite_manager(interp) );
1853 1910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!