📄 sqlite.inc
字号:
LOCAL x AS LONG
' add string col value
' escape single quotes
' COLUMN NOT ADDED to statement if ThisStrValue=""
IF LEN(ThisStrValue) THEN
x = UBOUND(TheSqlStmnt__Cols()) + 1
IF x<1 THEN x = 1
REDIM PRESERVE TheSqlStmnt__Cols(1 TO x)
REDIM PRESERVE TheSqlStmnt__Values(1 TO x)
TheSqlStmnt__Cols(x) = "["+ThisCol+"]"
s$ = ThisStrValue
REPLACE "'" WITH "''" IN s$
TheSqlStmnt__Values(x) = "'"+s$+"'"
END IF
END SUB
' --------------------------------------------------
' --------------------------------------------------
SUB stmntAddBlob( BYVAL ThisCol AS STRING, BYVAL sThisBlob AS STRING )
LOCAL x AS LONG
' add string col value
' escape single quotes
' COLUMN NOT ADDED to statement if sThisBlob=""
IF LEN(sThisBlob) THEN
x = UBOUND(TheSqlStmnt__Cols()) + 1
IF x<1 THEN x = 1
REDIM PRESERVE TheSqlStmnt__Cols(1 TO x)
REDIM PRESERVE TheSqlStmnt__Values(1 TO x)
TheSqlStmnt__Cols(x) = "["+ThisCol+"]"
TheSqlStmnt__Values(x) = "X'"+ sqlBinToHex(sThisBlob) +"'"
END IF
END SUB
' --------------------------------------------------
' --------------------------------------------------
SUB stmntAddNumber( BYVAL ThisCol AS STRING, BYVAL ThisNumValue AS STRING )
LOCAL s$
LOCAL x AS LONG
' add number col value
' COLUMN NOT ADDED to statement if ThisNumValue=""
IF LEN(ThisNumValue) THEN
x = UBOUND(TheSqlStmnt__Cols()) + 1
IF x<1 THEN x = 1
REDIM PRESERVE TheSqlStmnt__Cols(1 TO x)
REDIM PRESERVE TheSqlStmnt__Values(1 TO x)
TheSqlStmnt__Cols(x) = "["+ThisCol+"]"
s$ = ThisNumValue
TheSqlStmnt__Values(x) = s$
END IF
END SUB
' --------------------------------------------------
' --------------------------------------------------
FUNCTION stmntGetInsert() AS STRING
LOCAL i, X AS LONG
LOCAL s AS STRING
' returns SQL INSERT statement
' escapes all single quotes
X = UBOUND(TheSqlStmnt__Cols())
s = "INSERT INTO " + "[" + TheSqlStmnt__Table + "] ("
'columns
FOR i=1 TO X
s = s + TheSqlStmnt__Cols(i)
IF i<X THEN s = s + ","
NEXT i
s = s + ") VALUES ("
'values
FOR i=1 TO X
s = s + TheSqlStmnt__Values(i)
IF i<X THEN s = s + ","
NEXT i
s = s + ")"
FUNCTION = s
END FUNCTION
' --------------------------------------------------
' --------------------------------------------------
FUNCTION sqlKeyWordCheck( BYVAL sWord AS STRING ) AS LONG
sWord = TRIM$(UCASE$(sWord))
IF sWord="_ROWID_" THEN
FUNCTION = 1
ELSEIF sWord="ABORT" THEN
FUNCTION = 1
ELSEIF sWord="AFTER" THEN
FUNCTION = 1
ELSEIF sWord="ALL" THEN
FUNCTION = 1
ELSEIF sWord="ALTER" THEN
FUNCTION = 1
ELSEIF sWord="AND" THEN
FUNCTION = 1
ELSEIF sWord="AS" THEN
FUNCTION = 1
ELSEIF sWord="ASC" THEN
FUNCTION = 1
ELSEIF sWord="ATTACH" THEN
FUNCTION = 1
ELSEIF sWord="AUTOINCREMENT" THEN
FUNCTION = 1
ELSEIF sWord="BEFORE" THEN
FUNCTION = 1
ELSEIF sWord="BEGIN" THEN
FUNCTION = 1
ELSEIF sWord="BETWEEN" THEN
FUNCTION = 1
ELSEIF sWord="BY" THEN
FUNCTION = 1
ELSEIF sWord="CASCADE" THEN
FUNCTION = 1
ELSEIF sWord="CASE" THEN
FUNCTION = 1
ELSEIF sWord="CHECK" THEN
FUNCTION = 1
ELSEIF sWord="COLLATE" THEN
FUNCTION = 1
ELSEIF sWord="COMMIT" THEN
FUNCTION = 1
ELSEIF sWord="CONFLICT" THEN
FUNCTION = 1
ELSEIF sWord="CONSTRAINT" THEN
FUNCTION = 1
ELSEIF sWord="CREATE" THEN
FUNCTION = 1
ELSEIF sWord="CROSS" THEN
FUNCTION = 1
ELSEIF sWord="CURRENT_DATE" THEN
FUNCTION = 1
ELSEIF sWord="CURRENT_TIME" THEN
FUNCTION = 1
ELSEIF sWord="CURRENT_TIMESTAMP" THEN
FUNCTION = 1
ELSEIF sWord="DATABASE" THEN
FUNCTION = 1
ELSEIF sWord="DEFAULT" THEN
FUNCTION = 1
ELSEIF sWord="DEFERRABLE" THEN
FUNCTION = 1
ELSEIF sWord="DEFERRED" THEN
FUNCTION = 1
ELSEIF sWord="DELETE" THEN
FUNCTION = 1
ELSEIF sWord="DESC" THEN
FUNCTION = 1
ELSEIF sWord="DETACH" THEN
FUNCTION = 1
ELSEIF sWord="DISTINCT" THEN
FUNCTION = 1
ELSEIF sWord="DROP" THEN
FUNCTION = 1
ELSEIF sWord="EACH" THEN
FUNCTION = 1
ELSEIF sWord="ELSE" THEN
FUNCTION = 1
ELSEIF sWord="END" THEN
FUNCTION = 1
ELSEIF sWord="ESCAPE" THEN
FUNCTION = 1
ELSEIF sWord="EXCEPT" THEN
FUNCTION = 1
ELSEIF sWord="EXCLUSIVE" THEN
FUNCTION = 1
ELSEIF sWord="EXPLAIN" THEN
FUNCTION = 1
ELSEIF sWord="FAIL" THEN
FUNCTION = 1
ELSEIF sWord="FOR" THEN
FUNCTION = 1
ELSEIF sWord="FOREIGN" THEN
FUNCTION = 1
ELSEIF sWord="FROM" THEN
FUNCTION = 1
ELSEIF sWord="FULL" THEN
FUNCTION = 1
ELSEIF sWord="GLOB" THEN
FUNCTION = 1
ELSEIF sWord="GROUP" THEN
FUNCTION = 1
ELSEIF sWord="HAVING" THEN
FUNCTION = 1
ELSEIF sWord="IGNORE" THEN
FUNCTION = 1
ELSEIF sWord="IMMEDIATE" THEN
FUNCTION = 1
ELSEIF sWord="IN" THEN
FUNCTION = 1
ELSEIF sWord="INDEX" THEN
FUNCTION = 1
ELSEIF sWord="INITIALLY" THEN
FUNCTION = 1
ELSEIF sWord="INNER" THEN
FUNCTION = 1
ELSEIF sWord="INSERT" THEN
FUNCTION = 1
ELSEIF sWord="INSTEAD" THEN
FUNCTION = 1
ELSEIF sWord="INTERSECT" THEN
FUNCTION = 1
ELSEIF sWord="INTO" THEN
FUNCTION = 1
ELSEIF sWord="IS" THEN
FUNCTION = 1
ELSEIF sWord="ISNULL" THEN
FUNCTION = 1
ELSEIF sWord="JOIN" THEN
FUNCTION = 1
ELSEIF sWord="KEY" THEN
FUNCTION = 1
ELSEIF sWord="LEFT" THEN
FUNCTION = 1
ELSEIF sWord="LIKE" THEN
FUNCTION = 1
ELSEIF sWord="LIMIT" THEN
FUNCTION = 1
ELSEIF sWord="MAIN" THEN
FUNCTION = 1
ELSEIF sWord="MATCH" THEN
FUNCTION = 1
ELSEIF sWord="NATURAL" THEN
FUNCTION = 1
ELSEIF sWord="NOT" THEN
FUNCTION = 1
ELSEIF sWord="NOTNULL" THEN
FUNCTION = 1
ELSEIF sWord="NULL" THEN
FUNCTION = 1
ELSEIF sWord="OF" THEN
FUNCTION = 1
ELSEIF sWord="OFFSET" THEN
FUNCTION = 1
ELSEIF sWord="OID" THEN
FUNCTION = 1
ELSEIF sWord="ON" THEN
FUNCTION = 1
ELSEIF sWord="OR" THEN
FUNCTION = 1
ELSEIF sWord="ORDER" THEN
FUNCTION = 1
ELSEIF sWord="OUTER" THEN
FUNCTION = 1
ELSEIF sWord="PRAGMA" THEN
FUNCTION = 1
ELSEIF sWord="PRIMARY" THEN
FUNCTION = 1
ELSEIF sWord="RAISE" THEN
FUNCTION = 1
ELSEIF sWord="REFERENCES" THEN
FUNCTION = 1
ELSEIF sWord="REINDEX" THEN
FUNCTION = 1
ELSEIF sWord="RENAME" THEN
FUNCTION = 1
ELSEIF sWord="REPLACE" THEN
FUNCTION = 1
ELSEIF sWord="RESTRICT" THEN
FUNCTION = 1
ELSEIF sWord="RIGHT" THEN
FUNCTION = 1
ELSEIF sWord="ROLLBACK" THEN
FUNCTION = 1
ELSEIF sWord="ROW" THEN
FUNCTION = 1
ELSEIF sWord="ROWID" THEN
FUNCTION = 1
ELSEIF sWord="SELECT" THEN
FUNCTION = 1
ELSEIF sWord="SET" THEN
FUNCTION = 1
ELSEIF sWord="SQLITE_MASTER" THEN
FUNCTION = 1
ELSEIF sWord="SQLITE_SEQUENCE" THEN
FUNCTION = 1
ELSEIF sWord="SQLITE_TEMP_MASTER" THEN
FUNCTION = 1
ELSEIF sWord="STATEMENT" THEN
FUNCTION = 1
ELSEIF sWord="TABLE" THEN
FUNCTION = 1
ELSEIF sWord="TEMP" THEN
FUNCTION = 1
ELSEIF sWord="TEMPORARY" THEN
FUNCTION = 1
ELSEIF sWord="THEN" THEN
FUNCTION = 1
ELSEIF sWord="TO" THEN
FUNCTION = 1
ELSEIF sWord="TRANSACTION" THEN
FUNCTION = 1
ELSEIF sWord="TRIGGER" THEN
FUNCTION = 1
ELSEIF sWord="UNION" THEN
FUNCTION = 1
ELSEIF sWord="UNIQUE" THEN
FUNCTION = 1
ELSEIF sWord="UPDATE" THEN
FUNCTION = 1
ELSEIF sWord="USING" THEN
FUNCTION = 1
ELSEIF sWord="VACUUM" THEN
FUNCTION = 1
ELSEIF sWord="VALUES" THEN
FUNCTION = 1
ELSEIF sWord="VIEW" THEN
FUNCTION = 1
ELSEIF sWord="WHEN" THEN
FUNCTION = 1
ELSEIF sWord="WHERE" THEN
FUNCTION = 1
END IF
END FUNCTION
' --------------------------------------------------
' --------------------------------------------------
' --------------------------------------------------
' --------------------------------------------------
' internal use
' --------------------------------------------------
' --------------------------------------------------
SUB sql_internal_StrArryPtr_ReDim( BYREF These() AS STRING, ThisDim& )
REDIM These(1 TO ThisDim&)
END SUB
SUB sql_internal_StrArryPtr_Set( BYREF These() AS STRING, AtHere&, BYVAL ThisValue AS STRING )
These(AtHere&) = ThisValue
END SUB
FUNCTION sql_internal_StrArryPtr_Get( BYREF These() AS STRING, AtHere& ) AS STRING
FUNCTION = These(AtHere&)
END FUNCTION
FUNCTION sql_internal_StrArryPtr_ScanNoCase( BYREF These() AS STRING, BYVAL ForThis AS STRING ) AS LONG
LOCAL x AS LONG
IF UBOUND(These)<1 THEN EXIT FUNCTION
ARRAY SCAN These(), COLLATE UCASE, =UCASE$(ForThis), TO x
FUNCTION = x
END FUNCTION
SUB sql_internal_strArryPtr_Erase( BYREF Arry() AS STRING )
ERASE Arry()
END SUB
' --------------------------------------------------
' --------------------------------------------------
#ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -