Flash读取数据库中的数据Word文件下载.docx
《Flash读取数据库中的数据Word文件下载.docx》由会员分享,可在线阅读,更多相关《Flash读取数据库中的数据Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
Setconn=Server.CreateObject("
Adodb.Connection"
)
设置驱动
tmpPD="
Provider=Microsoft.Jet.OLEDB.4.0"
指定数据库的路径
tmpDS="
DataSource="
&
Server.MapPath("
userInfo.mdb"
指定数据库的密码
tmpPW="
JetOLEDB:
DatabasePassword=123"
构造打开字符串
tmpSTR=tmpPD&
"
;
tmpDS&
tmpPW
利用Connection对象的Open方法打开数据库
conn.OpentmpSTR
建立库连接
Setrs=Server.CreateObject("
Adodb.Recordset"
SQL语句,从数据表userInfoTable中读出所有数据,并根据ID进行反向排列
sql="
select*fromuserInfoTableorderbyiddesc"
打开从库中读出的记录集
rs.Opensql,conn,1,3
While
循环语句,这里是条件,当记录集没有空时,执行后边的语句
WhileNotrs.EOF
从表中读取userName、passWord和level列的值,并将其赋予三个变量
userName=rs("
userName"
passWord=rs("
passWord"
level=rs("
level"
将获取的值输出并用"
#"
隔开
response.WriteuserName
response.Write"
response.WritepassWord
response.Writelevel
转到下一条记录前用"
###"
隔开,以便在Flash中处理
到下一条记录
rs.MoveNext
Wend
利用Connection对象的Close方法关闭连接
rs.Close
将Connection对象从内存中删除,以释放资源
Setrs=Nothing
Setconn=Nothing
%>
注意,输入上面的标点符号时输入法要切换到英文状态。
6.将该文件另存为“displayUserInfo.asp”,并拷贝到“D:
\myWEB\getDataFromDataBase”下,使其与上面的“userInfo.mdb”在同一文件夹下。
7.打开Flash,选择【File】|【New】命令,在弹出的【NewDocument】对话框中选择文档类型为【FlashFile(ActionScript3.0)】,单击【OK】按钮,新建一个Flash文档。
然后将其保存到IIS主目录(D盘下的“myWEB”文件夹)下的“getDataFromDataBase”文件夹,并命名为“getDataFromDataBase.fla”。
8.选择【File】|【New】命令,在弹出的【NewDocument】对话框中选择文档类型为【ActionScriptFile】,单击【OK】按钮,新建一个Flash脚本文档,然后将该Flash脚本文档同样保存到“D:
\myWEB\getDataFromDataBase”下,并命名为“getDataFromDataBase.as”,使其与上面的“getDataFromDataBase.fla”、“displayUserInfo.asp”和“userInfo.mdb”在同一文件夹下。
9.切换到“getDataFromDataBase.fla”文档,选择【Ctrl+F7】组合键打开【Components】面板,展开【UserInterface】树形菜单,拖动一个DataGrid组件到场景中,然后将其删除。
按下【Ctrl+L】组合键打开【Library】面板查看,确保DataGrid组件已存在于库中。
在“getDataFromDataBase.fla”的属性面板中设置其【Documentclass】为“getDataFromDataBase”,然后在“getDataFromDataBase.as”脚本文档中输入下列代码并保存:
package{
//导入文件运行所需的类
importflash.display.*;
importflash.text.*;
import.*;
importflash.events.*;
importflash.errors.*;
importflash.system.*;
//导入DataGrid组件
importfl.controls.DataGrid;
//导入DataProvider类
importfl.data.DataProvider;
publicclassgetDataFromDataBaseextendsSprite{
//定义显示返回信息的文本框
privatevarreturnInfoTxt:
TextField;
//定义临时字符串接收返回数据
privatevartmpString:
String;
//定义临时数组接收返回数据
privatevartmpArray:
Array;
//定义临时字符串
privatevartmpName:
privatevartmpPassWord:
privatevartmpLevel:
privatevarmyDataGrid:
DataGrid;
//定义ASP文件路径
privatevaraspPath:
//定义URLRequest和URLLoader对象
privatevaraspRequest:
URLRequest;
privatevaraspLoader:
URLLoader;
//构造函数
publicfunctiongetDataFromDataBase(){
init();
startLoad();
}
//在场景中添加文本框
privatefunctioninit(){
//设置编码,不然会显示乱码
System.useCodePage=true;
returnInfoTxt=createTextField(200,200,100,20);
returnInfoTxt.type=TextFieldType.DYNAMIC;
returnInfoTxt.border=false;
returnInfoTxt.text="
正在载入数据..."
//添加DataGrid组件
myDataGrid=newDataGrid();
myDataGrid.x=100;
myDataGrid.y=100;
myDataGrid.width=300;
addChild(myDataGrid);
//载入函数
privatefunctionstartLoad(){
aspPath="
http:
//127.0.0.1/getDataFromDataBase/displayUserInfo.asp?
randomNum="
+Math.random();
aspRequest=newURLRequest(aspPath);
aspLoader=newURLLoader();
configureListeners(aspLoader);
try{
aspLoader.load(aspRequest);
}catch(error:
Error){
returnInfoTxt.text="
加载ASP文件失败"
//分派侦听事件
privatefunctionconfigureListeners(dispatcher:
IEventDispatcher):
void{
dispatcher.addEventListener(Event.COMPLETE,aspLoadComplete);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR,aspLoadError);
//ASP载入结束时的处理
privatefunctionaspLoadComplete(event:
Event):
载入数据结束..."
tmpString=event.target.data;
tmpArray=newArray();
tmpArray=tmpString.split("
);
tmpArray.pop()
//添加DataProvider
vartmpDP:
DataProvider=newDataProvider();
for(vari=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载入错误时的处理
privatefunctionaspLoadError(event:
IOErrorEvent):
//生成文本框函数
privatefunctioncreateTextField(x:
Number,y:
Number,width:
Number,height:
Number):
TextField{
vartmpTxtFld:
TextField=newTextField();
tmpTxtFld.x=x;
tmpTxtFld.y=y;
tmpTxtFld.width=width;
tmpTxtFld.height=height;
tmpTxtFld.background=true;
tmpTxtFld.border=true;
addChild(tmpTxtFld);
returntmpTxtFld;
10.按下【Ctrl+Enter】组合键,在“getDataFromDataBase.swf”窗口的DataGrid组件中将看到从数据库中读取的数据。
如图4所示。
图4
运行结果
从上面的“displayUserInfo.asp”可以看到,利用ASP与数据库通讯的一般步骤可以分为:
1.设置驱动和数据库的路径
2.创建Connection对象
3.利用Connection对象的Open方法打开指定的数据库
4.进行读写操作
5.输出结果
6.关闭数据库,释放内存
其中的第1、2、3、5步格式基本是固定不变的,与Flash密切相关的是第4步和第5步。
在本例中,ASP读取数据的方法是:
其中等号后面的userName、passWord和level是数据库中的字段名,等号前面的userName、passWord和level是变量,rs("
)、rs("
)和rs("
)是取出该字段名下的值,然后将该值赋予等号前面的变量。
代码中的rs是由:
设定的,如果:
SetmyRs=Server.CreateObject("
则ASP读取数据时的方法应改为:
userName=myRs("
passWord=myRs("
level=myRs("
在输出数据时,每一条数据用"
隔开,每一条数据中的每一个数据用“#”隔开,这样做在Flash中分析数据就简单多了。
在“getDataFromDataBase.as”脚本文档中,aspPath后多了一个Math.random(),这样做可以保证Flash每次载入ASP的路径不同,以免由于IE缓存造成数据得不到及时刷新。