>>PowerDynamo开发笔记<< 作者:dytt@yeah.netPowerDynamo 是Sybase EAServer下的一个产品,能够进行Web开发。和一般的Web程序不同的是,PowerDynamo的程序全部存放在数据库中,而不是存放在物理硬盘上,其文件后缀为stm。PowerDynamo需要依赖IIS才能正常运行。在Windows2000下安装PowerDynamo,安装程序会自动配置IIS。PowerDynamo的语法非常类似C,并且区分大小写下面介绍下PowerDynamo:1、服务端代码在ASP中服务段代码都写在""中如:<%?page = 1 %><% page = 1 %>在PowerDynamo中<!--script page = 1 ; // <--- 注意:要加分号,并且区分大小写--> 2、Request在ASP中可以通过Request("参数名")来获取通过GET或POST传递过来的数据。例如: page = Request("page")在PowerDynamo中获取Request的方法为 document.value.参数名例如: page = document.value.page注意:在PowerDynamo中 使用 page = document.value.page ,但是页面并没有传递page参数那么,系统会报错(在ASP中不会报错),解决方法如下: if (!exists(document.value.page)){ page = 1; } else { page = document.value.page; }3、Response.Write在ASP中用的最多的就是Response.Write 输出在PowerDynamo中被document.write替代,如:document.write("welcome <BR>");document.writeln("welcome <BR>"); // <---document.writeln会在输出的字符串后增加一个换行符4、Session的用法赋值: session.user_name = "dytt" ; // <-- 其中的user_name可以是任意名称取值: name = session.user_name ; 5、跳转document.redirect = "default.stm";6、数据库连接的标准用法conn = site.GetConnection("conn1"); //<----这个site.GetConnection("conn1") 需要事先通过PowerDynamo的Connections工具配置conn1if (conn == null){ document.writeln("连接数据库失败!"); return; } conn.autoCommit = true ; Query = conn.CreateQuery(); Query.cursorType = "ForwardOnly"; Sql = "SELECT * FROM tblname ; Query.SetSQL(Sql); Query.Execute(); //如果只需要执行SQL语句而不需要对结果进行处理,那么做到这里就可以了. while(Query.MoveNext()) // <---- 这里需要注意的是,如果要处理结果,那么必须第1件事:Query.MoveNext(),默认指针指在第1条记录前(NULL) { //获取数据库的数据 name = Query.GetValue(1); //取当前指针所在行的第1个字段里的数值(从1开始,不是从0开始) //也可以这样 name = Query.GetValue("name"); } //如果执行发生错误 if(Query.GetErrorCode() != 0){ document.writeln("执行不正确"); document.writeln(Query.GetErrorInfo( )); document.writeln("请联系系统管理人员"); exit; } //关闭连接 Query.Close(); 7、引用PowerDynamo中存在2种引用A) include ,和ASP中的include一样,只是在写法上有些差异如下:<!--INCLUDE NAME = "phs1.css" -->B) import 首先把需要引用的文件通过PowerDynamo的Add Script建立,建立后会生成ssc结尾的文件然后通过import引用进来,例如:test.ssc<!--script function addnum(a,b) { return a+b ; }-->default.stm<!--script import "test.ssc"; document.writeln(addnum(a,b));-->---------------下面列了些自己写的简单的函数(Dynamo中没有提供的,但是会经常用到的) function rtrim( instr ) { var last_space; var ret; last_space = instr.length; while( instr.charAt( last_space - 1 ) == " " ) { last_space --; } ret = instr.substring( 0, last_space ); return( ret ); }