热情软件屋

 

SQL的Select语句中可否使用VB变量


编号:QA000597
建立日期: 1999年3月7日 最后修改日期:2003年8月2日
所属类别:

张国铭:
    在vb6.0中SQL语句"SELECT * FROM TABLE"的TABLE可否被一变量代替!如
     DIM BL AS STRING
     BL="XXXXXXX"
     ADODC1.RECORDSOURCE="SELECT * FROM BL"
     ADODC1.REFRESH
     谢谢:-)

回答:

    可以使用变量,但语法同你想象的不同。你应该这样:
    ADODC1.RECORDSOURCE="SELECT * FROM " + BL
    
    Snake Chen
    操作系统: Win2000、Win98
    编程工具: VB6.0
    问题: 的确,使用上面的方法是成功了,可是当这个变量用在条件查询中的时候,我就没有成功,我是这样使用的:
    Dim sgm AS String
    sgm=Trim(combo1.text)
    RecordSource="Select * From aa Where 类型= " + sgm
    Adodc1.Refresh
    当运行的时候程序提示:至少有一个没有被指定值。请问我该如何处理?谢谢!
    水平: 中级
    答:估计你的“类型”字段是字符串类型,那么你上面的语句就应该改为:
    RecordSource="Select * From aa Where 类型= '" + sgm +"'"
    如果sgm的值为"ABC",那么RecordSource="Select * From aa Where 类型= 'ABC'"
    而按照你原来的语句,RecordSource="Select * From aa Where 类型= ABC",而由于没有字段为ABC,所以该语句错误。
    
    zxp问: Dim sgm AS integer
    RecordSource="Select * From aa Where 类型= '" + sgm +"'"
     Adodc1.Refresh
    如果sgm 为数值型,那么为什么不行?应该怎么改?
    :VB的字符串和数字不能直接相加,必须这样:
    RecordSource="Select * From aa Where 类型= '" + CStr(sgm) +"'"
    
    luwenbin问:
    我在做毕业设计,当用ADO对象Recordset查询时出错!
    Dim Cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim nemlist As ListItem
    
    ' 打开连接
    Cn.Open "BankCRM", "sa"
    rs.Open "SELECT * FROM test WHERE b=str", Cn, adOpenDynamic, adLockPessimistic
    Do Until rs.EOF
     Set nemlist = ListView2.ListItems.Add(, , "a", 1)
     nemlist.SubItems(1) = rs("b")
     nemlist.SubItems(2) = rs("c")
     nemlist.SubItems(3) = rs("d")
     nemlist.SubItems(4) = rs("e")
    
     rs.MoveNext
     Loop
    

    其中str是主窗口里附了值的字符串,但是不知道在select语句的 WHERE 条件中如何使用,以达到动态查询的目的。很急,我的作业无法进行了:(
    jeff_kxt答::
    你可以改为
    rs.open "select * from test where b= '"+trim(str)+"'", cn, adOpenDynamic, adLockPessimistic
    因为你要查找字符串,字符串在SQL的查询中要用引号给引起来,用Trim是去除你字符串的左右空格,不过我个人认为ADO控件直接用比较好做一些。

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, SQL查询, sql server, sql, query, select

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio