我要从三个关联的库里找信息,有两个库是1对30的,SQL语句太长了,VB一行弄不开,在DataEnvironment的Command里面试没问题,可用
DataEnvironment1.Commands("index").CommandText=
一行写不开,用“& _”折行后运行就报错,怎么办呀?

解决方案 »

  1.   

    DataEnvironment1.Commands("index").CommandText="select * from aaa where " _
                    & " a='aaaaaa' and b=23.3" _
                    & " order by c"
      

  2.   

    确实能通过了!
    不过我想知道
    DataEnvironment1.Commands("index").CommandText="select * from aaa where "& _
                     " a='aaaaaa' and b=23.3"& _
                     " order by c"
    为什么通不过?“&”的位置有关系吗?
      

  3.   

    & 的前后必须要有空格。另外注意最终组成的语句中不要丢失应有的空格。
      

  4.   

    我喜欢这样:
    sqlStr = " select * from aaa "
    sqlStr = sqlStr + " where a = 'aaaaaa' and b = 23.3 "
    sqlStr = sqlStr + " order by c "DataEnvironment1.Commands("index").CommandText = sqlStr简单明了,万一要修改也方便一些。
      

  5.   

    在调试的时候,注意以下  debug.print 的使用,会启到事半功倍的效果,
    如上, 在 sqlstr 完成之后,用debug.print 看一下!
      

  6.   


    1. 分行 用 "_" 符号2. 用连接符 &
      

  7.   

    一般情况下,SQL语句中的空格是很重要的,一不小心就会出现问题,特别在里边引用了TEXT的内容之后,空格特别容易使人出现错误,还有变量是否加引号问题(不要),还有就是连接符前后的空格
      

  8.   

    你这个问题很好,我有一个不错的建议(个人意见)
    你可以试试用“存储过程”将SQL语句全都写到,sql server或者 oracle 里面
    然后再用VB里调用这些“存储过程”。那样,既方便管理数据库,程序简单
    即使以后数据库友改动,只要“存储过程名”不变,就不需要重新编译程序了……一家之言,仅供参考。
      

  9.   

    同意txlicenhe(马可@李)的写法。。
     分行连接用" _" 注意有_前有一个空格哟..当然别忘了连接符号 + 或者 &
      

  10.   

    SQL语句太长,建议写到一个存储过程里面去,然后调用存储过程/~
      

  11.   

    同意 txlicenhe(马可@李) 的意见, _ 这个方法也用过,不过用不好。总是出错,呵呵!!sql="select * from  table"
    sql=sql & " where "