`

Flash不能直接访问数据库的原因

阅读更多
为什么FLASH不可以直接访问数据库,为何FLASH一定要通过后台语言才可以访问数据库?

其实,很久以前就有一个老外写过一个类,只要简单配置一下,然后就可以连接数据库了,完全不需要通过ASP,ASP.NET,PHP,JSP等过渡了.可是如果你在现实应用中,真的这样做了,那么等于你已经把你的所有数据库信息光明正大的送给别人了~现在的破解,让多少FLASH开发者心寒啊!把所有的数据库信息都写在AS里面,那你自己想想,后果会多严重~所以通过后台语言的过渡,还是很有必要的.

所以对于初学者,以后还是不要再问这个问题了,不是技术达不到,也不是adobe没有这个能力,其实完全在于一个安全角的考虑.

 

MXML:
<mx:Script>
     <![CDATA[
          private function callService(sql:String):void
          {
               sqlService.send(sql);
          }
     ]]>
</mx:Script>

<sql:MysqlService id="sqlService" 
     host="database.mydomain.com" 
     port="3306" 
     user="username" 
     scrambler="{new PlainTextScrambler('password')}" 
     database="databaseName" 
     response="onResponse(event)" 
     error="onError(event)" />

<mx:ComboBox id="cbx1" dataProvider="{sqlService.lastResult}" labelField="userName" />

 

Straight Actionscript:
private function getUserList():void
{
     var host:String = "database.mydomain.com";
     var port:int = 3306;
     var user:String = "mydatabaseuser";
     var scrambler:PlainTextScrambler = new PlainTextScrambler("password");
     var database:String = "databaseName";

     var con:Connection = new Connection(host, post, user, scrambler, database);
     con.addEventListener(Event.CONNECT, onConnect);
     con.addEventListener(SQLErrorEvent.SQL_ERROR, onError);
     con.connect();
}

private function onConnect(e:Event):void
{
     var con:Connection = Connection(e.target);
     var st:Statement = con.createStatement();
     st.addEventListener(RestulsEvent.RESULTS, onResults); //FOR SELECT
     st.addEventListener(ResponseEvent.RESPONSE, onResponse); //FOR INSERT, UPDATE, etc.
     st.addEventListener(SQLErrorEvent.SQL_ERROR, onError);

     st.executeQuery("SELECT * FROM users;");
}

private function onResults(e:ResultsEvent):void
{
     var st:Statement = Statement(e.target);
     var con:Connection = st.getConnection();
     var rs:ResultSet = e.resultSet;

     while ( rs.next() )
     {
          var userName = rs.getString("userName");
          var email = rs.getString(2);
     }

     con.disconnect();
}

private function onResponse(e:ResponseEvent):void
{
     var st:Statement = Statement(e.target);
     var con:Connection = st.getConnection();
     
     var affectedRows:int = e.affectedRows;
     var insertID:int = e.insertID;

     con.disconnect();
}

private function onError(e:SQLErrorEvent):void
{
     var st:Statement = Statement(e.target);
     var con:Connection = st.getConnection();
     
     var message:String = e.msg;
     var errorNo:int = e.id;
     var text:String = e.text; // Equals SQLError #{id}: {msg}

     con.disconnect();
}

 

分享到:
评论

相关推荐

    Flash连接SQLServer数据库

    由于Flash本身不支持直接访问数据库,因此通常需要借助于服务器端脚本语言如ASP、PHP、JSP或ASP.NET等来实现这一目的。 #### 二、新建数据库 1. **创建数据库**:首先需要在SQL Server中创建一个名为`stud`的新...

    FLASH读取数据库内容

    此外,对于敏感数据,服务器端可能需要实施验证机制,如OAuth或JWT,确保只有授权的用户或应用可以访问数据库。 在实际项目中,还需要考虑性能优化,比如使用分页加载大量数据,避免一次性加载所有数据导致的性能...

    flash获取数据库

    4. **Flash与数据库的间接连接**:由于Flash本身不支持直接连接数据库,通常会通过服务器端脚本(如PHP、ASP.NET等)来处理数据库查询,将结果转换为XML,然后返回给Flash。Flash加载XML后,再对数据进行解析和显示...

    FLASH连接数据库

    Flash本身不直接支持数据库操作,但可以通过ActionScript(AS)脚本与服务器端的动态脚本(如ASP、JSP、PHP)进行通信,进而间接访问数据库。在这里,我们以TOMCAT+JSP+ACCESS+FLASH的组合为例,来说明这个过程。 1...

    Flash链接数据库实例

    总结来说,"Flash链接数据库实例"涉及了多种技术,包括ActionScript的LoadVars类进行服务器通信、XML文件作为数据交换媒介、以及通过服务器端脚本间接访问数据库。这些技术的结合,使得Flash能够创建与后端数据源...

    基于ASP实现Flash MX对SQL数据库的访问.pdf

    Flash MX虽然是一款强大的动态网页设计软件,但它本身无法直接访问数据库,因此需要借助服务器端脚本程序,如ASP(Active Server Pages,动态服务器网页),来实现数据交互的功能。文中以选煤厂实时生产数据网络发布...

    Flex如何让前台链接后并访问数据库

    4. **数据访问对象(DAO)**:在后台,创建DAO(Data Access Object)类来封装对数据库的操作。DAO负责执行SQL查询,返回结果集。这些结果可以转换为JSON或XML格式,以便于Flex解析。 5. **数据模型**:在Flex...

    在Flash中实现与数据库的连接 (2)

    在动态网页设计中,ASP与Flash技术得到了广泛的应用。ASP具有强大的数据库处理功能,Flash能够...另一种是把应用程序下载到客户端直接访问数据库。最常用的中间件技术有通用网关接口(CGI)和应用程序编程接口(API)两种。

    Flash读取数据库技术1

    这个脚本的目的是生成一个包含变量名和对应值的字符串,这些值可以通过Flash MX直接访问。例如,我们可以创建一个名为`Test.asp`的文件,内容如下: ```asp ! Macromedia FlashMX 6.0"%&gt; ``` 或 ```asp ! ...

    flash 调用数据库轮换图片

    6. **安全性和权限管理**:确保只有授权的用户或应用能够访问数据库,防止数据泄露。可以使用HTTP基本认证、OAuth或其他身份验证机制。 总的来说,"Flash调用数据库轮换图片"是一种结合了前端展示和后端数据处理的...

    Flash与数据库的连接技术.pdf

    Delphi是一种用于创建跨平台应用程序的集成开发环境,不过它通常不直接与Flash结合使用。 #### 4. 移动平台 文档还涉及了移动开发平台,如uClinux、Windows CE和Symbian等,展示了Flash技术在移动环境中的潜在...

    使用c#.net开发网站连接数据库案例演示的flash

    在这个案例中,Flash可能用于以可视化方式展示代码流程和数据库交互过程,使学习者能直观理解每个步骤。 6. 运行与学习: 用户解压缩文件后,可以直接运行案例演示.EXE来查看和交互这个教学示例。通过这种方式,...

    Flash与数据库的连接技术整理.pdf

    文章中提到了张松华的博士论文,他设计了一种名为EDB的嵌入式数据库系统,该系统直接在Flash存储器上执行代码,充分利用了Flash的高速读取性能,避免了传统方法中将代码复制到RAM中执行的额外开销。EDB采用了B树数据...

    actionscipt访问本地数据库例子

    ActionScript和Gears API提供了相应的权限管理机制,确保只有授权的应用程序才能访问数据库。 6. **FlexBuilder或Flash Builder**:这些IDE是开发ActionScript项目的主要工具,它们提供了一整套调试、测试和部署...

    Python的Flask框架与数据库连接的教程

    为了解决这一问题,教程介绍了SQLAlchemy-migrate工具,这是一个数据库迁移的解决方案,允许开发者在数据库结构变更时进行版本控制,而不需要手动迁移数据。 在配置部分,教程指导我们如何配置Flask应用程序使用...

    Flex4访问数据库文档

    ### Flex4访问数据库文档知识点详解 #### 一、Flex与其它数据访问技术的比较 **1.1 客户端处理与服务器端处理** - **传统Web开发**: 传统的Web开发方式(如JSP、servlet、ASP、PHP或CFML)通常采用服务器端渲染的...

    手工创建oracle数据库

    ### 手工创建Oracle数据库详解 #### 知识点一:手工创建Oracle...因此,对于IT专业人士而言,掌握手工创建Oracle数据库的技能,不仅能够提升自身的技术实力,也是企业级数据库管理和运维工作中不可或缺的能力之一。

Global site tag (gtag.js) - Google Analytics