找回密码
 加入
搜索
查看: 2145|回复: 2

sql查询返回行数问题

[复制链接]
发表于 2009-4-3 16:32:08 | 显示全部楼层 |阅读模式
Func query()
        $txt0 = GUICtrlRead($input1);输入查询条件
        $txt1 = GUICtrlRead($Combo1);*
        $txt2 = GUICtrlRead($Combo2);table name
        $txt3 = GUICtrlRead($Combo3);字段
        $txt4 = GUICtrlRead($Combo4);like or =
        $addfld = ObjCreate("ADODB.Connection")
        $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path)
        $RS =ObjCreate("ADODB.Recordset")
        $RS.ActiveConnection = $addfld
        Dim $fieldname,$match
        If $txt3 = "厂别" Then $fieldname = "plant" 
        If $txt3 = "设备编号" Then $fieldname = "equipment_number" 
        If $txt3 = "风险级别" Then $fieldname = "danger_level" 
        If $txt3 = "资产编号" Then $fieldname = "asset_number" 
        If $txt3 = "风险级别" Then
                $RS.open("select "&$txt1&" from  "&$txt2&" where "&$fieldname& "= "&$txt0&"")
                                ;这里需要一个语句,返回查询得到的行数赋值给$view3,这个语句如何写啊?
                GUICtrlSetData($Label5,$view3)
        Else
                $RS.open("select "&$txt1&" from  "&$txt2&" where "&$fieldname& "= '"&$txt0&"'")
                        EndIf
        $i = 0 
        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 (4).value&"|"& $RS.Fields (5).value&"|"& $RS.Fields (6).value&"|"& $RS.Fields (7).value&"|"& $RS.Fields (8).value&"|"& $RS.Fields (9).value&"|"& $RS.Fields (10).value&"|"& $RS.Fields (11).value,$ListView3)
                $i = $i + 1
                $rs.movenext
        WEnd
        If $i= 0 then 
                MsgBox(0,"提示","无数据返回!请确认输入!")
        EndIf
EndFunc



有两个问题需要请教大大:
1.select查询时,字段名+关系运算符+字段值。当字段值为string时,需要加单引号,为数字是不需要加,虽然我写的能够运行,但那是把它分成两种情况,感觉很幼稚,有没有更好的办法啊
2.$RS.open("select "&$txt1&" from  "&$txt2&" where "&$fieldname& "= "&$txt0&"")
                                ;这里需要一个语句,返回查询得到的行数赋值给$view3,这个语句如何写啊?
                GUICtrlSetData($Label5,$view3)

[ 本帖最后由 qqgghh1 于 2009-4-7 16:35 编辑 ]
发表于 2009-4-3 17:28:56 | 显示全部楼层
现在用的IDE都有自动完成功能,记不住啊。
应该是$rs.count 纪录数量。

你SQL语句这么写,要是变量里有 " '  &  !你的查询就崩溃了。

还有,如果你的数据库不大的吧,比如50M以内,你不如把整个数据库先读到内存。
这样查询快,操作也不用考虑类型问题。现代人的内存最少的也有512吧,几十M内存根本无所谓。

评分

参与人数 1金钱 +5 收起 理由
qqgghh1 + 5

查看全部评分

 楼主| 发表于 2009-4-7 16:35:08 | 显示全部楼层
不好意思,今天才上班。谢谢akmm88的提醒!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-6 10:52 , Processed in 0.079162 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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