久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    lua簡單操作sqlite3

     quasiceo 2014-01-03

    lua簡單操作sqlite3

    luasql模塊支持sqlite3,可以完成最基本的數據庫功能,不過官方文檔上寫得不是很詳細。掃了下源代碼,外加實驗了下,得出了點經驗。

    環境

    Windows XP,LuaForWindows

    代碼

    require"luasql.sqlite3"
    
    function enumSimpleTable(t)
    
             print"-------------------"
    
             fork,v in pairs(t) do
    
                       print(k, " = ", v)
    
             end
    
             print"-------------------\n"
    
    end
    
    function rows(cur)
    
             returnfunction(cur)
    
                       localt = {}
    
                       if(nil~= cur:fetch(t, 'a')) then return t
    
                       elsereturn nil end
    
             end,cur
    
    end
    
    env = assert(luasql.sqlite3())
    
    db =assert(env:connect("test.db"))
    
     
    db:setautocommit(false)
    
    res = assert(db:execute [[CREATE TABLEpeople(name text, sex text)]])
    
    res = assert(db:execute [[INSERT INTOpeople VALUES('程序猿','男')]])
    
    res = assert(db:execute [[INSERT INTOpeople VALUES('程序猿老婆', '女')]])
    
    assert(db:commit())
    
     
    
    res = assert(db:execute [[SELECT * FROMpeople]])
    
    colnames = res:getcolnames()
    
    coltypes = res:getcoltypes()
    
    enumSimpleTable(colnames)
    
    enumSimpleTable(coltypes)
    
    for r in rows(res) do
        enumSimpleTable(r)
    end
    
    res:close()
    
    db:close()
    
    env:close()

    結論

    environment對象(數據庫驅動)

    構造

        env = luasql.sqlite3()

    成員

        close()

            關閉環境。請先關閉所有connection對象。

    connection對象(數據庫連接)

    構造

        con = env:connect(sqlite3_database_file_path)

    • env:環境
    • sqlite3_database_file_path:數據庫路徑字符串
    • con:數據庫連接對象

    成員

        res = execute(sql_statement)

            執行sql語句

    • sql_statement:要執行的sql語句,一般用[[sql]]的字符串形式,因為sql語句中常含有引號等特殊字符
    • res:
      • 對于不返回記錄集的sql語句(如CREATE,DELETE),res是一個數字,表示操作影響了多少記錄。
      • 對于返回記錄集的sql語句(如SELECT),res是一個cursor對象(記錄集)

        setautocommit(bAuto)

    • bAuto
      • 設置為true時,rollback當前事務,并忽略錯誤
      • 設置為false時,開始一個新的事務

        commit()

            提交事務

        rollback()

            回滾事務

        close()

            關閉數據庫連接,請先關閉所有的cursor對象

        rowed = getlastautoid()

            獲取最近一次自動生成的sqlite的rowid字段值(對應sqlite3_last_insert_rowid())

    cursor對象

    構造

        con:execute(select_sql_statement)

    成員

        colnametable = getcolnames()

            以table形式返回記錄集中每一列的列名

        coltypetable = getcoltypes()

            以table形式返回記錄集中每一列的類型

        res = fetch([table[,modestring]])

            獲取下一個記錄集

    • table:如果指定了table,則會將數據復制到table中
    • modestring:可取值”n”或”a”,默認為”n”,
      • “n”:table中的key是數字
      • “a”:table中的key是字符串(列名)
    • res:如果未指定table,則返回記錄,如果指定了table,則返回修改后的table;如果沒有下一記錄了,則返回nil

        close()

            關閉cursor對象
    ------------------------------------------------------------
    本文由WindTaiL在cnblogs中發布,轉載請注明出處
    分類: lua

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产又粗又猛又爽又黄的视频在线观看动漫 | 精品成人乱色一区二区| 婷婷五月综合丁香在线| 人妻丝袜AV中文系列先锋影音| 无码一区二区三区AV免费| 国产精品v片在线观看不卡| 久久综合九色综合欧洲98| 久久久久亚洲精品无码网址| 少妇粗大进出白浆嘿嘿视频 | 久久丫精品国产亚洲AV不卡| 人人澡人摸人人添| 国产人妻久久精品一区| 宅男噜噜噜66在线观看| 久亚洲一线产区二线产区三线产区 | 久久毛片少妇高潮| 亚洲AV午夜电影在线观看| 亚洲av无码成人精品区一区| 中文人妻AV大区中文不卡| 国产精品欧美福利久久 | 好吊视频一区二区三区| 乱码视频午夜在线观看| 久久精品娱乐亚洲领先| 色AV专区无码影音先锋| 国产高清一区二区不卡| 国产精品国产三级国AV| 最新国产精品好看的精品| 亚洲AV无码成人网站手机观看| 夜夜爱夜鲁夜鲁很鲁| 亚洲精品综合网二三区| 特黄A又粗又大又黄又爽A片| 日韩中文字幕V亚洲中文字幕| 久久精品国产亚洲av天海翼| 精品一区二区不卡无码AV| 色爱综合激情五月激情| 黑森林福利视频导航| 国产真人无码作爱视频免费 | 国产中文字幕精品视频| 波多野结衣中文字幕一区二区三区| 欧美孕妇乳喷奶水在线观看 | 久久久久久久久久久免费精品| 亚洲精品一区二区区别|