请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 11013|回复: 10

[FLASH IDE] 原创|简单asp加载access数据库并生成XML文件范例 [复制链接]

taoshaw 楼主
帖子
216
体力
901
威望
16
居住地
重庆市 涪陵区
发表于 2008-4-11 18:49:46 |显示全部楼层
简单asp加载access数据库,并生成XML,然后再将XML数据加载进LIST组件范例学习。
演示:
http://www.taoshaw.com/taoshaw/study/accessAndList/test.swf
XML演示:
http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp
首先来看,ASP读取ACCESS数据库。
  1. <% @language="VBScript" @codepage="65001"%>
  2. <%
  3. '开启显式变量声明
  4. Option Explicit
  5. '设置输出类型
  6. Response.contentType="text/xml"
  7. '定义三个变量,conn(Connection对象)、connstr(ConnectionString)、sql(一个SQL语句)
  8. dim conn,connstr,rs,sql,i
  9. '定义ConnectionString的值
  10. i=1
  11. connstr="provider=Microsoft.Jet.OLEDB.4.0;data source="&Server.MapPath("test.mdb")&";"
  12. '建立服务器连接对象
  13. set conn=Server.CreateObject("ADODB.Connection")
  14. '建立数据集对象
  15. set rs=Server.CreateObject("ADODB.RecordSet")
  16. '打开数据连接
  17. conn.open connstr
  18. '本句的意思是到word数据表内按id字段值的升序取出前100个song1name,dong1url字段的值。值被附加到数据集对象上被当作数据集的一个属性。
  19. sql="select top 100 [song1name],[dong1url] from [test]  order by id desc"
  20. '游标类型和锁定类型都设置为1,这是一个只能向前的只读行为,读取速度最快
  21. rs.open sql,conn,1,1
  22. Response.Write("<?xml version='1.0' encoding='utf-8'?><淘沙网>")
  23. '进行do while循环,条件循环到符合条件的最后一项
  24. do while not rs.eof
  25. '这是修改的部分,使输出的文件能够被Flash中的LoadVars对象识别。
  26. Response.Write("<歌曲信息><歌名>"&rs("song1name")&"</歌名><地址>"&rs("dong1url"))&"</地址></歌曲信息>"
  27. '记录下移
  28. rs.movenext
  29. i=i+1
  30. '与do while呼应的loop方法,为主循环体
  31. loop
  32. Response.Write("</淘沙网>")
  33. '将数据集对象关闭
  34. rs.close
  35. '将数据库连接关闭
  36. conn.close
  37. '释放数据集资源
  38. set rs=nothing
  39. '释放数据库连接资源
  40. set conn=nothing
  41. %>
复制代码

这部分代码,就是读取数据库。
下面看看是如何生成XML的呢,其实,就是在输出的时候。加上XML的相应格式。比如<歌曲信息>,以及各个标签等。一定要注意,每个标签,一定要封闭。
这个xml.asp文件的全部代码如下:
  1. 下面,再看看,FLASH中如何加载的呢?
  2. 这里面,应该很简单了。
  3. [code]//定义组件
  4. var my_TextArea:mx.controls.TextArea;
  5. var my_List:mx.controls.List;
  6. var my_XML:XML = new XML();
  7. my_XML.load("http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp");
  8. my_XML.onLoad = function(ok:Boolean) {
  9. if (ok) {
  10. for (i=0; i[td] my_List.addItem({label:this.firstChild.childNodes.childNodes[0].childNodes[0].nodeValue, data:this.firstChild.childNodes.childNodes[1].childNodes[0].nodeValue});
  11. }
  12. }
  13. };
  14. var my_Object:Object = new Object();
  15. my_Object.change = function(eventObj:Object):Void {
  16. my_TextArea.text += eventObj.target.selectedItem.label+"\n";
  17. };
  18. my_List.addEventListener("change", my_Object);
复制代码


就这样,生成的XML文件就被导入进LIST里面了。通过监测函数,即可以调用数据。
学好这个,对于制作一些含后台的项目,比如相册、动态文章管理、播放器等就不难了。
制作一些需要加载外部文件的FLASH的时候,特别需要注意的是编码的问题。
首先,要注意,在同一个FLASH中,不要出现两次:“System.useCodepage=true”;
原本这句话的含义是将加载的外部非"Utf-8"格式的文件的编码转换成uft-8格式的,而如果使用两次,则一定会出错的。
一般的合作方法就是,外部文件保存的时候,要选择uft-8这种编码格式,或者Gb2312这种格式。至于这两种编码的详细区别,我目前还不太清楚,希望大家有明白的朋友,还指点一下在下。

[ 本帖最后由 taoshaw 于 2008-4-11 18:51 编辑 ]
已有 1 人评分威望 收起 理由
jimohuoshan + 1 原创内容

总评分: 威望 + 1   查看全部评分

西部数码顶级域名注册商39元抢注!

猪哥靓

中级会员

帖子
216
体力
451
威望
3
发表于 2008-4-12 12:30:09 |显示全部楼层
谢谢,不错,收藏了
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

帖子
11
体力
30
威望
0
居住地
浙江省 杭州市
发表于 2008-5-3 21:32:52 |显示全部楼层

thx

感谢LZ分享,学习一下

使用道具 举报

Flameshark

高级会员

帖子
61
体力
882
威望
0
发表于 2008-5-3 22:49:56 |显示全部楼层
不顾一切收藏

使用道具 举报

flash023

版主

帖子
13150
体力
26346
威望
10
居住地
重庆市 永川市
发表于 2008-5-3 23:03:15 |显示全部楼层
没下载楼主的文件,只看了贴出部分。
ASP中的 i 没有意思。可以去掉。贴出来部分的第26行,括号位置有错。
另外楼主贴出来的AS中if(ok){}内的代码缺少了一部分吧。for循环不完整。

  1. useCodePage 属性   

  2. useCodePage:Boolean  [read-write]

  3. 语言版本 :  ActionScript 3.0
  4. Player 版本 :  Flash Player 9


  5. 一个布尔值,它告诉 Flash Player 使用哪个代码页来解释外部文本文件。 当该属性设置为 false 时,Flash Player 使用 Unicode 解释外部文本文件。 (保存这些文件时,必须使用 Unicode 对其进行编码。) 当该属性设置为 true 时,Flash Player 使用运行播放器的操作系统的传统代码页来解释外部文本文件。 useCodePage 的默认值是 false。

  6. 作为外部文件加载(使用 flash.display.Loader.load()、flash.net.URLLoader、flash.net.URLStream 或 XML 类)的文本必须已使用 Unicode 编码格式保存,这样 Flash Player 才能将它识别为 Unicode。 若要使用 Unicode 对外部文件进行编码,请在支持 Unicode 的应用程序(例如,Windows 2000 上的“记事本”)中保存这些文件。

  7. 如果加载的外部文本文件不是 Unicode 编码格式,则应将 useCodePage 设置为 true。 在将加载数据的 SWF 文件的第一帧中,在最前面添加以下代码,使之成为第一行代码:

  8. System.useCodePage = true;有了这一行代码,Flash Player 将使用运行 Flash Player 的操作系统的传统代码页来解释外部文本。 对于英文 Windows 操作系统,该代码页通常为 CP1252;对于日语操作系统,该代码页通常为 Shift-JIS。 如果将 useCodePage 设置为 true,则 Flash Player 6 和更高版本处理文本的方式与 Flash Player 5 相同。 (Flash Player 5 将所有文本都视为按运行播放器的操作系统的传统代码页编码的文本。)

  9. 如果将 useCodePage 设置为 true,应注意:在运行播放器的操作系统的传统代码页中必须包括您的外部文本文件中使用的字符,这样才能显示文本。 例如,如果您加载了一个包含中文字符的外部文本文件,则这些字符不能显示在使用 CP1252 代码页的系统上,因为该代码页不包括中文字符。

  10. 为确保所有平台上的用户都能查看您的 SWF 文件中使用的外部文本文件,应将所有外部文本文件按 Unicode 进行编码,并保留 useCodePage 的 false 设置不变。 这样,Flash Player 6 和更高版本将按 Unicode 解释文本。
复制代码

[ 本帖最后由 flash023 于 2008-5-3 23:12 编辑 ]
已有 1 人评分威望 收起 理由
jimohuoshan + 1 很细心,很负责!

总评分: 威望 + 1   查看全部评分

我的博客 http://space.flash8.net/space/?591172 AS2&AS3   ASP&PHP ACCESS&mySQL XML&JS

使用道具 举报

头发甩甩

高级会员

帖子
419
体力
1404
威望
0
居住地
河北省 石家庄市
发表于 2008-5-4 09:36:30 |显示全部楼层
版主还真是细心啊,这些教程要是早些时间帖出来就好了.呵呵
感谢楼主分享,帮你顶一下.
投入便快乐。

使用道具 举报

caaat 
帖子
174
体力
553
威望
2
居住地
宁夏回族自治区 银川市
发表于 2008-5-5 16:37:39 |显示全部楼层
版主就是版主,另外,贴出一些过不了测试的代码,有点不厚道了。。。
安静的繁华

使用道具 举报

kavon 
帖子
69
体力
269
威望
0
居住地
广东省 广州市
发表于 2008-5-5 19:40:18 |显示全部楼层
版主就是版主,呵呵!
很负责任!!!

使用道具 举报

xcsxyq 
帖子
8
体力
44
威望
0
居住地
广东省 汕头市
发表于 2008-5-11 15:58:32 |显示全部楼层
留着,说不定哪天就用到了。

使用道具 举报

xcsxyq 
帖子
8
体力
44
威望
0
居住地
广东省 汕头市
发表于 2008-5-16 09:51:43 |显示全部楼层
测试错误,经版主提醒将26行代码括号移至最右边后,测试通过。

使用道具 举报

东山老林

中级会员 手机认证 

帖子
134
体力
570
威望
0
发表于 2008-11-4 09:58:16 |显示全部楼层
楼主讲的容易让新手迷糊,而且代码还有错,为什么不系统的详细讲讲呢
路虽远,行必至!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 12:17 , Processed in 0.132864 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部