'Begin读节点数据
nNode = 0
Open TheInFileNode For Input As #1
Do While Not EOF(1)
    Line Input #1, LineTemp
    nNode = nNode + 1
Loop
Close (1)ReDim LonNode(1 To nNode), LatNode(1 To nNode), NoNode(1 To nNode)
Open TheInFileNode For Input As #1
For I = 1 To nNode
    Input #1, LatNode(I), LonNode(I), LineTemp
    NoNode(I) = Val(LineTemp)
Next I
Close (1)
'End读节点数据
现在我的数据不是在TheInFileNode,而是在数据库里,我如何取出来并且代码实现???
比如取数据库中表gis_point,有三个字段,分别有经纬度和点的编号,
Set conn = New Adodb.Connection
Set rs = New Adodb.Recordset
     conn.ConnectionString = "Driver={sql server};server=qyl;uid=sa;pwd=;database=AERMS"
     conn.ConnectionTimeout = 30
     conn.Open
    rs.Open "select * from gis_point", conn, adOpenStatic, adLockReadOnly, adCmdText
这个TheInFileNode应该改成什么???
我是要取出表中的数据放在内存里。请帮我啊

解决方案 »

  1.   

    代码:    
        Set conn = New Adodb.Connection
        Set rs = New Adodb.Recordset
        conn.ConnectionString = "Driver={sql server};server=qyl;uid=sa;pwd=;database=AERMS"
        conn.ConnectionTimeout = 30
        conn.Open
        ReDim LonNode(1 To nNode), LatNode(1 To nNode), NoNode(1 To nNode)
        rs.Open "select * from gis_point", conn, adOpenStatic, adLockReadOnly, adCmdText
        for i=1 to rs.recordCount
            lonNode(i)=rs.fields(0).value
            LatNode(i)=rs.fields(1).value
            NoNode(i)=val(rs.fields(2).value)
            rs.MoveNext        
        Next
      

  2.   

    上面的有点问题, 应该是这样:
    Set conn = New Adodb.Connection
        Set rs = New Adodb.Recordset
        conn.ConnectionString = "Driver={sql server};server=qyl;uid=sa;pwd=;database=AERMS"
        conn.ConnectionTimeout = 30
        conn.Open
        
        rs.Open "select * from gis_point", conn, adOpenStatic, adLockReadOnly, adCmdText
        dim nNode as integer,LonNode() as string,LatNode() as string,NoNode() as double
        nNode=rs.RecordCount
        reDim LonNode(1 To nNode), LatNode(1 To nNode), NoNode(1 To nNode)
        for i=1 to nNode
            lonNode(i)=rs.fields(0).value
            LatNode(i)=rs.fields(1).value
            NoNode(i)=val(rs.fields(2).value)
            rs.MoveNext        
        Next
      

  3.   

    请问faysky2()这是读取一张表,要是读取两张表.是不是要在
     rs.Open "select * from gis_point", conn, adOpenStatic, adLockReadOnly, adCmdText
    前面加上if rs.state=adstateopen then rs.close 
    然后再定义一个New Adodb.Recordset
    其他雷同??
      

  4.   

    需要设置客户端游标:
        Set conn = New Adodb.Connection
        Set rs = New Adodb.Recordset
        conn.ConnectionString = "Driver={sql server};server=qyl;uid=sa;pwd=;database=AERMS"
        conn.ConnectionTimeout = 30
        conn.Open
        rs.CursorLocation=adUseClient'设置客户端游标
        rs.Open "select * from gis_point", conn, adOpenStatic, adLockReadOnly, adCmdText
        dim nNode as integer,LonNode() as string,LatNode() as string,NoNode() as double
        nNode=rs.RecordCount'获得记录条数
        reDim LonNode(1 To nNode), LatNode(1 To nNode), NoNode(1 To nNode)
        for i=1 to nNode
            lonNode(i)=rs.fields(0).value
            LatNode(i)=rs.fields(1).value
            NoNode(i)=val(rs.fields(2).value)
            rs.MoveNext        
        Next
      

  5.   

    然后再定义一个New Adodb.Recordset
    -------------------
    不用New Adodb.Recordset了,直接打开记录集就行了:
    ......
    if rs.state=adstateopen then rs.close 
    rs.Open "select * from 另一个表名",3,2
    Text1.Text=rs.Fields(0).Name
    .....