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

📄 sqlite.inc

📁 Powerbasic 源码 这是对Sqlite这种数据库的操作.
💻 INC
📖 第 1 页 / 共 4 页
字号:
    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 + -