dim s as string
s="……"
adodc1.recordsource=s我这个查询一共有4个表连接,写起来的sql非常长,超过了string的允许范围,有什么办法可以解决吗?多谢各位

解决方案 »

  1.   

    多声明几个String编量,然后再连接
    dim s1 as string
    dim s2 as string
    dim s3 as string
    s1="……"
    s2="……"
    s3="……"
    adodc1.recordsource=s1 &s2 &s3
    如果还不行我觉得只有用存储过程调用了,最好是调用存储过程。
      

  2.   

    存储SQL语句当然是调用存储过程喽~~
      

  3.   

    用Label控件代替一下(Windowless Control,占资源少,好象可以支持到64K),还不够的话用RichTextBox,可以无限大。
      

  4.   

    1: 用存贮过程
    Create procedure test 
    As
         Select * from A Join B on ... Join C on ...
         where ...
    在前台用  (dim rs as new adodb.recordset)  rs.open " Exec test "2:用视图
    Create view v_test
    As
         Select * from A Join B on ... Join C on ...
         where ...
      
    在前台用  (dim rs as new adodb.recordset)  rs.open " Select * from v_test "
      

  5.   

    String 可以超过64K吧?MSDN是这样说的,定长的字符串比较短,只支持到64K
      

  6.   

    我的SQL语句是根据用户输入的不同动态生成的,即可能需要某个条件,也可能不需要,可能需要连接某个表,也可能不需要,用存储过程怎么做呢?
      

  7.   

    为什么我的String只支持255个字符啊?是不是定义的不对?还是系统的原因  winxp vb6
      

  8.   

    不知道,我没测过,我是昨天看Msdn说的,因为我准备用一个很长的字符串,msdn是在String类型里说的,看来我又被比尔坑了了一次!大家一起看看msdn,到底是怎么回事!!
      

  9.   

    我试过了,用了2700个字符,证明是可以的。代码如下:
    Private Sub Form_Load()
        Dim a As String
        Dim i As Long
        For i = 0 To 900
            a = a & Format(i, "000")
        Next
        Debug.Print a
    End Sub
      

  10.   

    String的长度不会有什么限制的,跟内存有关系,你什么SQL语句啊,能写这么多,肯定是你机器的问题.
      

  11.   


    http://expert.csdn.net/Expert/topic/2184/2184758.xml?temp=.1368372
      

  12.   

    you can write the sql in " " directly