简单asp加载access数据库,并生成XML,然后再将XML数据加载进LIST组件范例学习。 FLASH+ASP+ACCESS+XML;ASP生成XML范例。 演示:
XML演示: http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp
首先来看,ASP读取ACCESS数据库。
<% @language="VBScript" @codepage="65001"%> <% '开启显式变量声明 Option Explicit '设置输出类型 Response.contentType="text/xml" '定义三个变量,conn(Connection对象)、connstr(ConnectionString)、sql(一个SQL语句) dim conn,connstr,rs,sql,i '定义ConnectionString的值 i=1 connstr="provider=Microsoft.Jet.OLEDB.4.0;data source="&Server.MapPath("test.mdb")&";" '建立服务器连接对象 set conn=Server.CreateObject("ADODB.Connection") '建立数据集对象 set rs=Server.CreateObject("ADODB.RecordSet") '打开数据连接 conn.open connstr '本句的意思是到word数据表内按id字段值的升序取出前100个song1name,dong1url字段的值。值被附加到数据集对象上被当作数据集的一个属性。 sql="select top 100 [song1name],[dong1url] from [test] order by id desc" '游标类型和锁定类型都设置为1,这是一个只能向前的只读行为,读取速度最快 rs.open sql,conn,1,1
这部分代码,就是读取数据库。
下面看看是如何生成XML的呢,其实,就是在输出的时候。加上XML的相应格式。比如<歌曲信息>,以及各个标签等。一定要注意,每个标签,一定要封闭。
这个xml.asp文件的全部代码如下:
<% @language="VBScript" @codepage="65001"%> <% '开启显式变量声明 Option Explicit '设置输出类型 Response.contentType="text/xml" '定义三个变量,conn(Connection对象)、connstr(ConnectionString)、sql(一个SQL语句) dim conn,connstr,rs,sql,i '定义ConnectionString的值 i=1 connstr="provider=Microsoft.Jet.OLEDB.4.0;data source="&Server.MapPath("test.mdb")&";" '建立服务器连接对象 set conn=Server.CreateObject("ADODB.Connection") '建立数据集对象 set rs=Server.CreateObject("ADODB.RecordSet") '打开数据连接 conn.open connstr '本句的意思是到word数据表内按id字段值的升序取出前100个song1name,dong1url字段的值。值被附加到数据集对象上被当作数据集的一个属性。 sql="select top 100 [song1name],[dong1url] from [test] order by id desc" '游标类型和锁定类型都设置为1,这是一个只能向前的只读行为,读取速度最快 rs.open sql,conn,1,1 Response.Write("<?xml version='1.0' encoding='utf-8'?><淘沙网>") '进行do while循环,条件循环到符合条件的最后一项 do while not rs.eof '这是修改的部分,使输出的文件能够被Flash中的LoadVars对象识别。 Response.Write("<歌曲信息><歌名>"&rs("song1name")&"</歌名><地址>"&rs("dong1url"))&"</地址></歌曲信息>" '记录下移 rs.movenext i=i+1 '与do while呼应的loop方法,为主循环体 loop Response.Write("</淘沙网>") '将数据集对象关闭 rs.close '将数据库连接关闭 conn.close '释放数据集资源 set rs=nothing '释放数据库连接资源 set conn=nothing %>
下面,再看看,FLASH中如何加载的呢? 这里面,应该很简单了。
//定义组件 var my_TextArea:mx.controls.TextArea; var my_List:mx.controls.List; var my_XML:XML = new XML(); my_XML.load("http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp"); my_XML.onLoad = function(ok:Boolean) { if (ok) { for (i=0; i<this.firstChild.childNodes.length; i++) { my_List.addItem({label:this.firstChild.childNodes[i].childNodes[0].childNodes[0].nodeValue, data:this.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue}); } } }; var my_Object:Object = new Object(); my_Object.change = function(eventObj:Object):Void { my_TextArea.text += eventObj.target.selectedItem.label+"\n"; }; my_List.addEventListener("change", my_Object);
,就这样,生成的XML文件就被导入进LIST里面了。通过监测函数,即可以调用数据。
学好这个,对于制作一些含后台的项目,比如相册、动态文章管理、播放器等就不难了。
制作一些需要加载外部文件的FLASH的时候,特别需要注意的是编码的问题。
首先,要注意,在同一个FLASH中,不要出现两次:“System.useCodepage=true”; 原本这句话的含义是将加载的外部非"Utf-8"格式的文件的编码转换成uft-8格式的,而如果使用两次,则一定会出错的。
一般的合作方法就是,外部文件保存的时候,要选择uft-8这种编码格式,或者Gb2312这种格式。至于这两种编码的详细区别,我目前还不太清楚,希望大家有明白的朋友,还指点一下在下。 |