<% set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("shikuang.mdb")
set rs=server.CreateObject("adodb.recordset")
rs.open"select * from jilu Order By id DESC ",conn,3,2'将数据准备好,下面开始使用数据了。。
Dim JPEG
Set JPEG = Server.CreateObject("Persits.JPEG")'这个是个画图控件
With JPEG
    .Open Server.MapPath("DrawPoint.jpg")   
    Dim Width, Height
    Width = JPEG.OriginalWidth
    Height = JPEG.OriginalHeight
    
    Dim i
    Dim PI                    '圆周率
    Dim RadiusArray            '半径数组
    Dim AngleArray            '角度数组
    Dim XArray                '计算后的X坐标
    Dim YArray                '计算后的Y坐标
    Dim Length                '
dim font
    
    PI = 3.1416
    RadiusArray = Array("&rs("fw")&","&rs("fw1")&","&rs("fw2")&","&rs("fw3")&")'这里是数据库中的两个数字字段,如:123  230  140  400   我在这里直接读取数据库fw和fw1的字段时出现错误,说是类型不正确,这个数据到底怎么取值数据库中的值呢?
     AngleArray = Array("&rs("jl")&", "&rs("jl1", "&rs("jl2", "&rs("jl3")&")'这里是数据库中的两个数字字段,如:20  40  50  90
 font=array("&rs("sj")&","&rs("sj1")&","&rs("sj2")&","&rs("sj3")&")'这里是数据库中的两个数字字段,如:1  2  3  4
    XArray = Array()
    YArray = Array()
    
    If UBound(RadiusArray) <> UBound(AngleArray) Then
        Response.End
    End If
    
    For i = 0 To UBound(RadiusArray)
        Length = UBound(XArray)
        ReDim Preserve XArray(Length + 1)
        ReDim Preserve YArray(Length + 1)
        
        XArray(Length + 1) = Width/ 2 + RadiusArray(i) * Cos(((360 - AngleArray(i) + 90) * PI / 180))/2
        YArray(Length + 1) = Height / 2 - RadiusArray(i) * Sin(((360 - AngleArray(i) + 90) * PI / 180))/2
    Next
    
    For i = 0 To UBound(XArray)
        If i < UBound(XArray) Then
            .Canvas.DrawLine XArray(i), YArray(i), XArray(i + 1), YArray(i + 1)
.Canvas.Circle XArray(i), YArray(i),5
.Canvas.Pen.Color=&HFFCC00
.Canvas.Print XArray(i), YArray(i), font(i),12
        End If
    Next   
    .Save Server.MapPath("DrawPoint2.jpg")
End With
Set JPEG = Nothing
%>

解决方案 »

  1.   

    RadiusArray = eval("Array(" & rs("fw") & "," & rs("fw1") & "," & rs("fw2") & "," & rs("fw3") &")"AngleArray = eval("Array("&rs("jl")&", "&rs("jl1", "&rs("jl2", "&rs("jl3")&")"font=eval("array("&rs("sj")&","&rs("sj1")&","&rs("sj2")&","&rs("sj3")&")"转换数组。读值的话,要看你取的数据有没有,先检测一下 
    if isNull(rs("fw")) then 这就是没数据了而且你读的是一个记录集,根据坐标画出一系列的点,你没有循环记录集,最多只能画出一个点。
      

  2.   

    RadiusArray = eval("Array(" &amp; rs("fw") &amp; "" &amp; rs("fw1") &amp; "")"这里使用数据库两个字段,或两个以上字段作为数组时,说表达式不正确,
      

  3.   

    这样试试,直接从数据库里把字段组合一下:<%
    sql="SELECT fw&'|'&fw1&'|'&fw2&'|'&jl3, fw&'|'&jl1&'|'&jl2&'|'&jl3, sj&'|'&sj1&'|'&sj2&'|'&sj3" _
       &" FROM jilu ORDER BY id DESC"
    response.write sql'检查一下SQL字串,看看格式有问题吗?rs.open sql,conn,1,1'将数据准备好,下面开始使用数据了。。RadiusArray = Split(rs(0),"|")
    AngleArray = Split(rs(1),"|")
    font=Split(rs(2),"|")
    'do your things.......................
    %>
      

  4.   

    哦,忘记了一点;我看你顶楼的连库字串是ODBC.如果测试时无法输出rs(0)等,首先把打印的SQL语句放到ACCESS的查询里走一下;如果那里成功,但网页页面还是不行,就把连库方式改为OLE DB方式。连库字串为“provider=............”这样的。
      

  5.   



        RadiusArray = eval(" Array("&rs("fw")&","&rs("fw1")&","&rs("fw2")&","&rs("fw3")&") ")
         AngleArray = eval(" Array("&rs("jl")&", "&rs("jl1", "&rs("jl2", "&rs("jl3")&") ")
                     font= eval(" array("&rs("sj")&","&rs("sj1")&","&rs("sj2")&","&rs("sj3")&") ")
    这时还是报错,说表达式不正确,当使用一个时不报错,如 eval(" Array("&rs("fw")&")。使用多个数组时是不是eval用得不对还是数组连接的“,”不正确?