xyhqqaa 发表于 2017-9-13 16:42:31

数据库连接写法不同,差异在哪[已解决]

本帖最后由 xyhqqaa 于 2017-9-14 08:14 编辑


$DB_Provider="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & @ScriptDir & "\fdeam.mdb"
$DB_ado = ObjCreate("ADODB.Connection")
$DB_ado.Open($DB_Provider)

$sqlstr &= " and format(购置日期,'yyyymmdd') BETWEEN '"&_datefomat(GUICtrlRead($Date1))&"' AND '"&_datefomat(GUICtrlRead($Date2))&"'"
$DB_rec = _SelectData($sqlStr)
        If Not IsArray($DB_rec) Then
                MsgBox(48,"提示!","没有符合要求的记录,请更改查询条件!")
                Return False
        EndIf

(上面是从中摘录,代码太长,怕看起来乱糟糟的)

Func_SelectData($sqlstr) ;查询数据库 ,返回数组,宏保存记录个数
        Local $ret="null"
    $RS = ObjCreate("ADODB.Recordset")
        With $RS
                .Source=$sqlstr
                .ActiveConnection=$DB_ado
        EndWith
    $RS.Open ()
        If $Rs.bof And $Rs.eof Then
                SetError(1)
        Else
                SetError(0)
                $ret=$RS.GetRows
        EndIf
        $Rs.close()
        Return $ret
EndFunc$addfld = ObjCreate("ADODB.Connection")
        $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
        $RS = ObjCreate("ADODB.Recordset")
        $RS.ActiveConnection = $addfld
        $RS.Open("Select " & $T & " From " & $tblname)
        While Not $RS.eof And Not $RS.bof
                If @error = 1 Then ExitLoop
                GUICtrlCreateListViewItem($RS.Fields(0).value & "|" & $RS.Fields(1).value & "|" & $RS.Fields(2).value & "|" & $RS.Fields(3).value & "|" & $RS.Fields(5).value & "|" & $RS.Fields(4).value & "|" & $RS.Fields(7).value, $ListView1)
                $RS.movenext
        WEnd
        $RS.close
        $addfld.Close以上是两段数据库连接的代码,我在论坛看到的例子,我想请问大哥们,这两段代码功能差异在哪。第一段代码很简洁,这样写好吗。菜鸟求指教

kk_lee69 发表于 2017-9-13 17:03:38

回复 1# xyhqqaa

第一段程式 你應該沒有提供完整吧

第一段程式沒有任何連接的 資料庫的位置

第二段
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)   這邊連接的 MDB

kk_lee69 发表于 2017-9-13 20:25:20

回复 1# xyhqqaa


所以嚕你說第一段比較簡潔我倒覺得 第二段比較簡潔

其實這兩種寫法沒啥不同

第一段是有UDF 的寫法比較傳統 也比較接近標準ADOBD 的寫法

第二段 其實 等同第一段的 核心取出後的寫法

$RS.Open( SQL 語法 )

就這樣就可以得到所有的
不用 參數代來代去的

xyhqqaa 发表于 2017-9-14 08:13:58

回复 3# kk_lee69


    谢谢kk_lee69大哥,昨天确实是我看的不详细,仔细对比了下,确实第一段有点绕来绕去,第二段之观点。。。谢谢您。。了解了。。谢谢

kk_lee69 发表于 2017-9-14 09:10:27

回复 4# xyhqqaa

可以參考一下 這篇

http://www.autoitx.com/thread-30083-1-1.html

xyhqqaa 发表于 2017-9-15 10:08:48

回复 5# kk_lee69


    学习了!

txm888 发表于 2017-9-18 08:57:10

这是什么数据库?我觉得sqlite还能看下,这个压根看不懂
页: [1]
查看完整版本: 数据库连接写法不同,差异在哪[已解决]