找回密码
 加入
搜索
查看: 4123|回复: 6

请教数据库连接!

[复制链接]
发表于 2008-5-6 16:31:21 | 显示全部楼层 |阅读模式
请教大侠,最简单的连接数据的代码能不能公布一下??最好是Access的

[ 本帖最后由 tzwwy 于 2008-5-19 15:40 编辑 ]
发表于 2008-5-6 17:16:31 | 显示全部楼层
供你参考,并不复杂:

$dbname="test.mdb"
$tblname="测试表"
$fldname="测试字段"
$format="int"
$sData="123456"
$T="*"
_CreateDB($dbname)
_CreateTBL($dbname, $tblname)
_CreateFLD($dbname, $tblname, $fldname, $format)
;_InsertData($dbname, $tblname, $fldname, $sData)
;_DeleteData($dbname, $tblname, $fldname, $sData)
_SelectData($dbname, $tblname, $fldname, $T)
Func _CreateDB($dbname)
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$newmdb.ActiveConnection.Close
EndFunc

Func _CreateTBL($dbname, $tblname)
$addtbl = ObjCreate("ADODB.Connection")
$addTbl.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$addTbl.Execute("CREATE TABLE " & $tblname)
$addtbl.Close
EndFunc

Func _CreateFLD($dbname, $tblname, $fldname, $format)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$addfld.Execute("ALTER TABLE " & $tblname & " ADD " & $fldname & " " & $format)
$addfld.Close
EndFunc

Func _InsertData($dbname, $tblname, $fldname, $sData)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$addfld.Execute("Insert Into " & $tblname & " (" & $fldname & ") " & "VALUES ("&$sData&")")
$addfld.Close
EndFunc

Func _DeleteData($dbname, $tblname, $fldname, $sData)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$addfld.Execute("Delete From " & $tblname & " Where " & $fldname & " = " &$sData)
$addfld.Close
EndFunc

Func _SelectData($dbname, $tblname, $fldname, $T)
$addfld = ObjCreate("ADODB.Connection")

$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$RS =ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open   ("Select "&$T & " From " & $tblname )
msgbox(0,"",$RS.Fields(0).Name)
msgbox(0,"",$RS.Fields(0).Value)

$addfld.Close
EndFunc

以下是循环读取表记录的例子
$tempData=""
while not $rs.eof and not $rs.bof
  if @error =1 Then ExitLoop
  $tempData=$tempData&($RS.Fields("value").Value)&"|"
  $rs.movenext
WEnd



几个自定义函数都是通过ObjCreate("ADODB.Connection")来实现的 (创建库使用的是ObjCreate("ADOX.Catalog"))

使用sql语句的完整过程:
$pro = ObjCreate("ADODB.Connection")
$pro.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
$pro.Execute(sql)
$pro.Close
发表于 2008-5-6 18:51:44 | 显示全部楼层
原帖由 Rota 于 2008-5-6 17:16 发表
供你参考,并不复杂:

$dbname="test.mdb"
$tblname="测试表"
$fldname="测试字段"
$format="int"
$sData="123456"
$T="*"
_CreateDB($dbname)
_CreateTBL($dbname, $tblname)
_CreateFLD($dbname, $tblnam ...


已经很完整。再问一下楼上的,有没有收藏有关SQL方面的代码?方便的话提供一下,谢谢
发表于 2008-5-6 23:06:12 | 显示全部楼层
不错哦,只是有密码的呢?
发表于 2008-5-7 13:54:02 | 显示全部楼层
原帖由 mz9909 于 2008-5-6 23:06 发表
不错哦,只是有密码的呢?


Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname

上面的改成下面的

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $dbname& ";Jet Oledb:Database Password=这是密码"
发表于 2008-5-7 15:00:07 | 显示全部楼层
SQL 也是大同小异的.可以参考一下这里.

        $addfld=ObjCreate("ADODB.Connection")
        $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& $dbname)
        $rs=ObjCreate("ADODB.Recordset")
        $rs.ActiveConnection=$addfld
        $rs.Open("Select What from "& $tblname & " Where ID='" & InputBox("","What") &"'")


同样用$rs.eof去判断是否结束,用movenext去找下一条记录.
发表于 2008-5-7 19:49:42 | 显示全部楼层
例子,查询
Conn = ObjCreate("ADODB.Connection")
                $Conn.Open("Provider=SQLOLEDB; Server=IP地址;Database=数据库名;Uid=用户名 ;Pwd=密码;")
                $RS = ObjCreate("ADODB.Recordset")
                $RS.ActiveConnection = $Conn
                $RS.Open("Select * From AllInOne where Sn_Definition=" & $Sn_Definition)
                _GUICtrlListView_DeleteAllItems($ListView1)
                $i = 0
                While (Not $RS.eof And Not $RS.bof)
                        $listvalue = $listvalue & $RS.Fields(4).value & "|" & $RS.Fields(5).value & "|" & $RS.Fields(3).value & "|" & $RS.Fields(1).value & "|" & $RS.Fields(9).value & "|" & $RS.Fields(7).value & "|" & Chastatus($Status)
                        GUICtrlCreateListViewItem($listvalue, $ListView1);显示$listvalue
                        $RS.movenext ;移到下一条记录
                        $listvalue = ""
                        $i = $i + 1
                WEnd
                $RS.close
                $Conn.Close
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-8 21:45 , Processed in 0.075103 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表