数据库连接写法不同,差异在哪[已解决]
本帖最后由 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以上是两段数据库连接的代码,我在论坛看到的例子,我想请问大哥们,这两段代码功能差异在哪。第一段代码很简洁,这样写好吗。菜鸟求指教 回复 1# xyhqqaa
第一段程式 你應該沒有提供完整吧
第一段程式沒有任何連接的 資料庫的位置
第二段
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd) 這邊連接的 MDB 回复 1# xyhqqaa
所以嚕你說第一段比較簡潔我倒覺得 第二段比較簡潔
其實這兩種寫法沒啥不同
第一段是有UDF 的寫法比較傳統 也比較接近標準ADOBD 的寫法
第二段 其實 等同第一段的 核心取出後的寫法
$RS.Open( SQL 語法 )
就這樣就可以得到所有的
不用 參數代來代去的 回复 3# kk_lee69
谢谢kk_lee69大哥,昨天确实是我看的不详细,仔细对比了下,确实第一段有点绕来绕去,第二段之观点。。。谢谢您。。了解了。。谢谢 回复 4# xyhqqaa
可以參考一下 這篇
http://www.autoitx.com/thread-30083-1-1.html 回复 5# kk_lee69
学习了! 这是什么数据库?我觉得sqlite还能看下,这个压根看不懂
页:
[1]