Flash读取数据库中的数据

news2024/10/2 10:44:08

 Flash读取数据库中的数据

要读取数据库的记录,首先需要建立一个数据库,并输入一些数据。数据库建立完毕后,由Flash向ASP提交请求,ASP根据请求对数据库进行操作后将结果返回给Flash,Flash以某种方式把结果显示出来。

1.启动Access2003,新建一名为“userInfo.mdb”的数据库,并在该数据库中新建一名为“userInfoTable”的表,该表中含有三个字段:“userName”、“passWord”和“level”,分别表示“用户名”、“密码”和“等级”,字段类型均为“文本”。

2.在“userInfoTable”表中输入数据。如图1所示。数据输入完毕后,关闭数据库,并将其保存到IIS主目录(D盘下的“myWEB”文件夹)下的“getDataFromDataBase”文件夹内。

http://blog.5d.cn/user6/xbzg/upload/2007-06/20076252057291.jpg

图1“userInfoTable”表中的数据

3.单击Access2003工具栏中的【打开】按钮,在弹出的【打开】对话框中选中刚刚建立的数据库“userInfo.mdb”,然后单击【打开】对话框右下角【打开】按钮右侧的下拉按钮,选择【以独占方式打开】重新打开数据库。如图2所示。

http://blog.5d.cn/user6/xbzg/upload/2007-06/2007625205903.jpg

图2 以独占方式打开数据库

4.单击Access2003菜单栏中的【工具】|【安全】|【设置数据库密码】,在弹出的【设置数据库密码】对话框中为该数据库设置密码,如“123”,设置完毕后单击【确定】按钮退出并关闭Access2003。如图3所示。

http://blog.5d.cn/user6/xbzg/upload/2007-06/2007625205902.jpg

图3 设置数据库密码

5. 打开Windows 2003附件中的“记事本”程序,并输入以下代码:

<%

'创建Connection对象

Set conn =Server.CreateObject("Adodb.Connection")

'设置驱动

tmpPD="Provider=Microsoft.Jet.OLEDB.4.0"

'指定数据库的路径

tmpDS="Data Source="&Server.MapPath("userInfo.mdb")

'指定数据库的密码

tmpPW="Jet OLEDB:Database Password=123"

'构造打开字符串

tmpSTR=tmpPD&";"&tmpDS&";"&tmpPW

'利用Connection对象的Open方法打开数据库

conn.Open tmpSTR

'建立库连接

Set rs = Server.CreateObject("Adodb.Recordset")

'SQL语句,从数据表userInfoTable中读出所有数据,并根据ID进行反向排列

sql = "select * from userInfoTable order by id desc"

'打开从库中读出的记录集

rs.Open sql, conn, 1, 3

 'While 循环语句,这里是条件,当记录集没有空时,执行后边的语句

While Not rs.EOF

    '从表中读取userName、passWord和level列的值,并将其赋予三个变量

    userName = rs("userName")

    passWord = rs("passWord")

    level = rs("level")

    '将获取的值输出并用"#"隔开

    response.Write userName

    response.Write "#"

    response.Write passWord

    response.Write "#"

    response.Write level

    '转到下一条记录前用"###"隔开,以便在Flash中处理

    response.Write "###"

    '到下一条记录

    rs.MoveNext  

Wend

'利用Connection对象的Close方法关闭连接

rs.Close

'将Connection对象从内存中删除,以释放资源

Set rs = Nothing

Set conn = Nothing

%>

注意,输入上面的标点符号时输入法要切换到英文状态。

6.将该文件另存为“displayUserInfo.asp”,并拷贝到“D:\myWEB\ getDataFromDataBase”下,使其与上面的“userInfo.mdb”在同一文件夹下。

7.打开Flash,选择【File】|【New】命令,在弹出的【New Document】对话框中选择文档类型为【Flash File(ActionScript 3.0)】,单击【OK】按钮,新建一个Flash文档。然后将其保存到IIS主目录(D盘下的“myWEB”文件夹)下的“getDataFromDataBase”文件夹,并命名为“getDataFromDataBase.fla”。

8.选择【File】|【New】命令,在弹出的【New Document】对话框中选择文档类型为【ActionScript File】,单击【OK】按钮,新建一个Flash脚本文档,然后将该Flash脚本文档同样保存到“D:\myWEB\getDataFromDataBase”下,并命名为“getDataFromDataBase.as”,使其与上面的“getDataFromDataBase.fla”、“displayUserInfo.asp”和“userInfo.mdb”在同一文件夹下。

9.切换到“getDataFromDataBase.fla”文档,选择【Ctrl+F7】组合键打开【Components】面板,展开【User Interface】树形菜单,拖动一个DataGrid组件到场景中,然后将其删除。按下【Ctrl+L】组合键打开【Library】面板查看,确保DataGrid组件已存在于库中。在“getDataFromDataBase.fla”的属性面板中设置其【Document class】为“getDataFromDataBase”,然后在“getDataFromDataBase.as”脚本文档中输入下列代码并保存:

package {

         //导入文件运行所需的类

         import flash.display.*;

         import flash.text.*;

         import flash.net.*;

         import flash.events.*;

         import flash.errors.*;

         import flash.system.*;

         //导入DataGrid组件

         import fl.controls.DataGrid;

         //导入DataProvider类

         import fl.data.DataProvider;

         public class getDataFromDataBase extends Sprite {

                   //定义显示返回信息的文本框

                   private var returnInfoTxt:TextField;

                   //定义临时字符串接收返回数据

                   private var tmpString:String;

                   //定义临时数组接收返回数据

                   private var tmpArray:Array;

                   //定义临时字符串

                   private var tmpName:String;

                   private var tmpPassWord:String;

                   private var tmpLevel:String;

                   private var myDataGrid:DataGrid;

                   //定义ASP文件路径

                   private var aspPath:String;

                   //定义URLRequest和URLLoader对象

                   private var aspRequest:URLRequest;

                   private var aspLoader:URLLoader;

                   //构造函数

                   public function getDataFromDataBase() {

                            init();

                            startLoad();

                   }

                   //在场景中添加文本框

                   private function init() {

                            //设置编码,不然会显示乱码

                            System.useCodePage=true;

                            returnInfoTxt= createTextField(200,200, 100, 20);

                            returnInfoTxt.type = TextFieldType.DYNAMIC;

                            returnInfoTxt.border=false;

                            returnInfoTxt.text = "正在载入数据...";

                            //添加DataGrid组件

                            myDataGrid=new DataGrid();

                            myDataGrid.x=100;

                            myDataGrid.y=100;

                            myDataGrid.width=300;

                            addChild(myDataGrid);

                   }

                   //载入函数

                   private function startLoad() {

                            aspPath="http://127.0.0.1/getDataFromDataBase/displayUserInfo.asp?randomNum="+Math.random();

                            aspRequest=new URLRequest(aspPath);

                            aspLoader=new URLLoader();

                            configureListeners(aspLoader);

                            try {

                                     aspLoader.load(aspRequest);

                            } catch (error:Error) {

                                     returnInfoTxt.text="加载ASP文件失败";

                            }

                   }

                   //分派侦听事件

                   private function configureListeners(dispatcher:IEventDispatcher):void {

                            dispatcher.addEventListener(Event.COMPLETE,aspLoadComplete);

                            dispatcher.addEventListener(IOErrorEvent.IO_ERROR,aspLoadError);

                   }

                   //ASP载入结束时的处理

                   private function aspLoadComplete(event:Event):void {

                            returnInfoTxt.text = "载入数据结束...";

                            tmpString=event.target.data;

                            tmpArray=new Array();

                            tmpArray=tmpString.split("###");

                            tmpArray.pop()

                            //添加DataProvider

                            var tmpDP:DataProvider = new DataProvider();

                            for (var i=0; i<tmpArray.length; i++) {

                                     tmpName=tmpArray[i].split("#")[0];

                                     tmpPassWord=tmpArray[i].split("#")[1];

                                     tmpLevel=tmpArray[i].split("#")[2];

                                     tmpDP.addItem({等级:tmpLevel,姓名:tmpName,密码:tmpPassWord});

                            }

                            myDataGrid.dataProvider=tmpDP

                   }

                   //ASP载入错误时的处理

                   private function aspLoadError(event:IOErrorEvent):void {

                            returnInfoTxt.text="加载ASP文件失败";

                   }

                   //生成文本框函数

                   private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {

                            var tmpTxtFld:TextField = new TextField();

                            tmpTxtFld.x = x;

                            tmpTxtFld.y = y;

                            tmpTxtFld.width = width;

                            tmpTxtFld.height = height;

                            tmpTxtFld.background = true;

                            tmpTxtFld.border = true;

                            addChild(tmpTxtFld);

                            return tmpTxtFld;

                   }

         }

}

10.按下【Ctrl+Enter】组合键,在“getDataFromDataBase.swf”窗口的DataGrid组件中将看到从数据库中读取的数据。如图4所示。

http://blog.5d.cn/user6/xbzg/upload/2007-06/2007625205901.jpg

图4 运行结果

从上面的“displayUserInfo.asp”可以看到,利用ASP与数据库通讯的一般步骤可以分为:

1.设置驱动和数据库的路径

2.创建Connection对象

3.利用Connection对象的Open方法打开指定的数据库

4.进行读写操作

5.输出结果

6.关闭数据库,释放内存

其中的第1、2、3、5步格式基本是固定不变的,与Flash密切相关的是第4步和第5步。在本例中,ASP读取数据的方法是:

userName = rs("userName")

passWord = rs("passWord")

level = rs("level")

其中等号后面的userName、passWord和level是数据库中的字段名,等号前面的userName、passWord和level是变量,rs("userName")、rs("passWord")和rs("level")是取出该字段名下的值,然后将该值赋予等号前面的变量。

代码中的rs是由:

Set rs = Server.CreateObject("Adodb.Recordset")

设定的,如果:

Set myRs = Server.CreateObject("Adodb.Recordset")

则ASP读取数据时的方法应改为:

userName = myRs ("userName")

passWord = myRs ("passWord")

level = myRs ("level")

在输出数据时,每一条数据用"###"隔开,每一条数据中的每一个数据用“#”隔开,这样做在Flash中分析数据就简单多了。

在“getDataFromDataBase.as”脚本文档中,aspPath后多了一个Math.random(),这样做可以保证Flash每次载入ASP的路径不同,以免由于IE缓存造成数据得不到及时刷新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1402327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring | Srping AOP (AOP简介、动态代理、基于“代理类”的AOP实现)

目录: 1.Spring AOP简介1.1 AOP简介1.2 AOP术语 2.动态代理2.1 JDK动态代理2.2 CGLIB代理 3.基于“代理类”的AOP实现3.1 Spring的通知类型3.2 ProxyFactoryBean ( 可通知.xml配置文件完成aop功能 ) 1.Spring AOP简介 1.1 AOP简介 Spring的AOP模块&#xff0c;是Spring框架体系…

nginx基于IP的多虚拟主机

结合这篇文章一起&#xff1a;nginx虚拟主机-CSDN博客文章浏览阅读63次。虚拟主机指的就是一个独立的站点配置&#xff0c;是nginx默认支持的一个功能&#xff0c;它能够有自己独立的域名&#xff0c;独立的ip&#xff0c;独立的端口配置&#xff0c;能够配置完整的www服务&…

<信息安全>《2 国内主要企业网络安全公司概览(二)》

4 北京天融信科技有限公司(简称天融信) 信息内容LOGO成立日期创始于1995年总部北京市海淀区上地东路1号院3号楼北侧301室背景民营企业是否上市天融信[002212]A股市值99亿主要产品网络安全大数据云服务员工规模6000多人简介天融信科技集团&#xff08;证券代码&#xff1a;0022…

基于内容的图像web检索系统

题目&#xff1a;基于内容的图像在线检索系统 简介&#xff1a;基于内容的图像在线检索系统&#xff08;Content Based Online Image Retrieval , 以下简称 CBOIR&#xff09;&#xff0c;是计算机视觉领域中关注大规模数字图像内容检索的研究分支。典型的CBOIR系统&#xff…

使用Python对音频进行特征提取

在几年前写的使用Python对音频进行特征提取使用的是人为特征的方法进行特征提取的&#xff0c;近些年随着深度学习的普及&#xff0c;这里尝试使用深度学习方法进行特征提取。 数据集测试 之前的数据集找不到了&#xff0c;这个数据其实是kaggle的一个数据&#xff1a;www.ka…

ElasticSearch集群灾难:别放弃,也许能再抢救一下 | 京东云技术团队

1 前言 Elasticsearch作为一个分布式搜索引擎&#xff0c;自身是高可用的&#xff1b;但也架不住一些特殊情况的发生&#xff0c;如&#xff1a; 集群超过半数的master节点丢失&#xff0c;ES的节点无法形成一个集群&#xff0c;进而导致集群不可用&#xff1b; 索引shard的文…

蔚来卖一辆车亏20万,去年前三季度巨亏153亿

作为曾经的造车新势力“老大哥”蔚来&#xff0c;一边发布全新旗舰车型ET9预售价80万引争议&#xff0c;一边交付量在新势力垫底&#xff1b;更加“雪上加霜”的是&#xff0c;业绩亏损继续扩大。 「不二研究」据蔚来汽车三季报发现&#xff1a;今年三季度&#xff0c;蔚来净亏…

PyTorch深度学习实战(31)——生成对抗网络(Generative Adversarial Network, GAN)

PyTorch深度学习实战&#xff08;31&#xff09;——生成对抗网络 0. 前言1. GAN2. GAN 模型分析3. 利用 GAN 模型生成手写数字小结系列链接 0. 前言 生成对抗网络 (Generative Adversarial Networks, GAN) 是一种由两个相互竞争的神经网络组成的深度学习模型&#xff0c;它由…

基于taro搭建小程序多项目框架,记重点了!!!

前言 为什么需要这样一个框架&#xff0c;以及这个框架带来的好处是什么&#xff1f; 从字面意思上理解&#xff1a;该框架可以用来同时管理多个小程序&#xff0c;并且可以抽离公用组件或业务逻辑供各个小程序使用。当你工作中面临这种同时维护多个小程序的业务场景时&#…

react umi/max 页签(react-activation)

思路&#xff1a;通过react-activation实现页面缓存&#xff0c;通过umi-plugin-keep-alive将react-activation注入umi框架&#xff0c;封装页签组件最后通过路由的wrappers属性引入页面。 浏览本博客之前先看一下我的博客实现的功能是否满足需求&#xff0c;实现功能&#xf…

日常常见应用组件升级记录

一、前言 因近期安全扫描&#xff0c;发现java后端应用涉及多个引用组件版本过低&#xff0c;涉及潜在漏洞利用风险&#xff0c;特记录相关处理升级处理过程&#xff0c;以备后续确认&#xff1b; 二、升级处理过程 2.1、Java类应用内置Spring Boot版本升级 Spring Boot是一…

【数据结构与算法】之字符串系列-20240121

这里写目录标题 一、344. 反转字符串二、125. 验证回文串三、205. 同构字符串四、242. 有效的字母异位词五、290. 单词规律 一、344. 反转字符串 简单 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额…

java SSM政府采购管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM政府采购管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

【UE5】第一次尝试项目转插件(Plugin)的时候,无法编译

VS显示100条左右的错误&#xff0c;UE热编译也不能通过。原因可能是[名字.Build.cs]文件的错误&#xff0c;缺少一些内容&#xff0c;比如说如果要写UserWidget类&#xff0c;那么就要在 ]名字.Build.cs] 中加入如下内容&#xff1a; public class beibaoxitong : ModuleRules …

UML序列图入门

使用工具&#xff1a;processOn可免费建9个文件 UML&#xff1a;Unified Modeling Language 统一建模语言 ProcessOn - 我的文件 一、介绍 序列图是基于对象而非基于类&#xff1b; 从上到下&#xff1a;展示了处理过程中&#xff0c;每个对象的生命周期&#xff1b; 从左到…

从白子画到东方青苍,你选择谁来守护你的修仙之旅?

从白子画到东方青苍,你选择谁来守护你的修仙之旅? 在繁花似锦的修仙世界中&#xff0c;每一位追梦者都渴望有那么一位守护者&#xff0c;与你共患难&#xff0c;共成长。热血与浪漫交织的《花千骨》与《苍兰诀》&#xff0c;给我们带来了两位风华绝代的守护者&#xff1a;白子…

ST-GCN 人体姿态估计模型 代码实战

构建一个ST-GCN&#xff08;Spatio-Temporal Graph Convolutional Network&#xff09;模型需要结合图卷积网络&#xff08;GCN&#xff09;的思想&#xff0c;以处理时空数据。以下是一个简单的例子&#xff0c;演示如何使用PyTorch构建ST-GCN模型&#xff1a; import torch …

偷偷浏览小网站时,原来有这么多人已经知道

最近看到一篇挺有意思文章&#xff0c;偷偷浏览小网站时&#xff0c;都有谁会知道你看了啥。思量之下&#xff0c;从更广泛的技术角度看&#xff0c;仍有大量补充的空间&#xff0c;于是就有了这样一篇文章。本文的目的在于增强大家的网络安全意识&#xff0c;非必要不要浏览不…

护眼灯品牌哪个好?护眼灯最好的品牌排行

很多家长在帮助孩子选购台灯时可能会遇到一些困扰&#xff0c;而市面上存在许多质量不合格的台灯。曾经有央视节目曝光了许多LED台灯存在严重不合格的情况。尽管目前对于台灯执行强制性产品认证&#xff0c;并不定期进行抽样检查&#xff0c;但仍然存在一些未强制认证的产品在市…

EF Core实操,数据库生成实体,迁移

EF Core实操,数据库生成实体,迁移 大家好,我是行不更名,坐不改姓的宋晓刚,下面将带领大家进入C#编程EF Core数据库基础入门知识,如何连接数据库,如何编写代码,跟上我的步伐进入EF Core数据库下的世界。 家人们,如果有什么不懂,可以留言,或者加我联系方式,一起进入…