使用delphi 开发 web(三)动态脚本里面使用数据库

在主程序里面把数据库访问控件设置并注册好,在脚本里面使用数据库就非常简单。

可以类似下面的脚本访问数据库。

<%
uses SysUtils, Classes;
var
   aaa,rndnum,bb:string;
   i,num:integer;
 
begin

 with cx do
    begin
        sql.clear;
        sql.add('select * from soft');
        open;
      while not cx.eof do
      begin
           print(fields[2].asstring);  

            print('<br>');
           next;
      end;
        
    end;
 end.
%>

    要实现数据库访问,我们采用的是Devart 公司的数据库访问控件。该公司有单独访问

oracle,sql server,my sql,interbase 的控件,也有UniDac 控件可以同时访问包括以上数据库

的其他数据库,例如db2,access,sqllite 等。这个公司出品的数据库访问数据库非常快,也比较稳定

更新迅速,能够很快支持最新的数据库系统。尤其是对oracle 的支持,可以直接使用TCP/IP协议

连接oracle 数据库,免去了安装客户端的麻烦,使web 服务器几乎可以实现零配置。原来的delphi 窑洞

就是使用ODAC 连接oracle 11g 的。

  确定了数据库访问控件,我们就可以在webbroke 里面设置和处理数据库访问功能。

在webbroke 设置界面放一个Torasession.并设置使其可以访问你的数据库。

并定义两个新类

 type
  Twebquery = class(ToraQuery);
  Twebsql=class(TOraSQL);
这两个类其实就是为了以后随时更换为其他数据库访问控件,保证脚本不用修改

就可以正常运行。

初始化里面加入Twebquery 的脚本注册

  g_UnitList := TUnitList.Create;
  g_UnitList.AddClass(Twebquery);
  g_UnitList.Sort;

  RegisterUnits(g_UnitList, GlobalImportTable);

在webmodule 的建立事件里生成两个Twebquery,以方便在脚本里面直接使用。

procedure Twm.WebModuleCreate(Sender: TObject);
begin
   scx:=TwebQuery.Create(self);
   zcx:=TwebQuery.Create(self);
   scx.Session:=dbS;
   zcx.Session:=dbS;
end.

并在解释脚本前把其实例到脚本运行时可以访问。

     show.WebScripter.Scripter.Reset;
      show.WebScripter.Scripter.RegisterVariable(0,'request:TWebRequest;',@Request);
      show.WebScripter.Scripter.RegisterVariable(0,'response:TWebResponse;',@Response);
      show.WebScripter.Scripter.RegisterVariable(0,'wm:Twm;', @self);
      show.WebScripter.Scripter.RegisterVariable(0,'cx:Twebquery;' ,@scx);
      show.WebScripter.Scripter.RegisterVariable(0,'zcx:Twebquery;' ,@zcx);

以上基本上就可以实现直接在脚本里面直接访问数据库了。

使用以下URL 访问 http://127.0.0.1/web?path=test

怎么样很简单吧,系统默认可以直接使用连个查询控件,cx 和zcx.

如果你需要更多的查询的,可以直接使用

myquery :=wm.newquery;

使用后都不需要free,系统在执行完自动会销毁这些对象的。

 

 

 

 

时间: 2024-09-21 03:32:00

使用delphi 开发 web(三)动态脚本里面使用数据库的相关文章

使用delphi 开发 web(二)动态脚本的实现

   看了前面的文章同学,都会认为delphi 开发web比较麻烦,没有PHP 和ASP 方便. 因为每次要改动网页的内容,就要重新编译一次,重新发布一次,这样也太麻烦了.那么我们就 做一个类似PHP 的动态web 服务器吧,一次编译发布后,就不用再改了,网站内容需要变化时,只 需要修改脚本就可以了. 先看看下面的代码: <% var    i:integer; begin for i:=1 to 10 do   print('ok'); %>  <p> 你好<p> &

Delphi开发Web Server程序返回图像的方法

Internet/Intranet在九十年代可能是最流行的计算机术语了,不管是计算机行业内的人士还是计算机外的人士,都会使用Internet/Intranet,有的查资料,有的是宣传自己和公司,甚至有许多以前从没有想到用Internet的东西现在也在用Internet来解决, 比如有的程控数字计算机维护用Internet来解决.在这一切应用之中,基于Web Server的应用程序的开发是基本点,但如何开发Web Server的程序呢? Delphi 3是Borland公司1997年推出的可视化.

使用delphi 开发 web(五)Android 与delphi 服务器交互访问数据库

     近2年,随着智能手机及平板电脑的快速发展,同时伴随着3G 网络的逐渐普及,移动开发越来越受到开发人员的青睐,而谷歌推出的Android 系统以其开放.优秀很快受到开发人员的推崇,很多知名网站都推出了Android 客户端版本,例如腾讯.新浪.淘宝都有对应的版本.同时很多数据库应用程序都从原来的windows 桌面程序延伸到移动设备上,由于移动设备的性能及内存等肯定无法与台式机及笔记本电脑相比,因此访问数据库也不可能像桌面安装各种数据库的客户端,当然目前绝大多数数据库也没有直接运行在移动

Delphi开发Web应用程序打印组件

一.慨述 近些年来,随着互联网的普及和推广,传统的单机模式和局域中的c/s模式的应用程序越来越不能满足信息共享的要求.因此,一种新的基于浏览器的b/s的应用程序的开发方式被提了出来.新的开发方案以其客户端的免维护.免配置.程序能根据服务器的信息能够自动更新升级;服务器端多层模式的应有提高处理的效率和安全性越来越被广大的应用程序的开发者所看好.成为应用程序开发的一个新的发展方向.在windows的平台上,人们利用asp来开发服务的显示界面,而用组件来封装商业规则,在各种杂志上利用各种工具进行组件开

用Delphi开发Web服务数据库程序

第一步:编写服务器的应用程序 首先在Delphi的IDE中选择"File|New|Other-",然后在WebServices页面中选择Soap Server Application图标. 然后在New Soap Server Application对话框中选择Web App Debugger executable. 点击OK按钮之后,Delphi会自动生成一个WebModule,在这个Module中会包含三个WebServices的控件. 然后然后在WebServices页面中选择S

使用delphi 开发 web(四)使用ajax 与extjs交互

     随着现在各种js 框架(例如extjs,Jquery)的迅猛发展,很多网站都开始使用这些框架开始设计 web 页面,而且为了提高用户体验,大量使用了AJAX 技术,可以动态实现很多网页内容, 本文就以extjs 的grid 为例,介绍一下使用webbroke的服务器 与js 框架的交互. 先看一下下面的页面: 这个页面动态显示一个人员工资表,并可以实现翻页,这是一个典型的extjs  的grid. 其页面代码如下:  <!DOCTYPE HTML PUBLIC "-//W3C//

linux系统中下WEB网站备份脚本(网站文件/数据库)

简单的网站备份脚本  代码如下 复制代码 #!/bin/bash #backup database mypw=CactiEZ newtime=$(date +%Y%m%d) if [ -d /var/www/backup/ ];then mysqldump -u root -p$mypw DB > /var/www/backup/$newtime-Database.sql else mkdir /var/www/backup/ mysqldump -u root -p$mypw DB > /v

使用delphi 开发多层应用(三)Delphi常用多层框架介绍

    目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下.如有不对之处,可以拍砖.      1. DELPHI 自身提供的DataSnap       从delphi 3 开始,delphi 自身就开始支持多层开发,后期的版本逐步加强三层开发功能,在delphi 6 以后, 把这一功能叫Datasnap,并且每个都有很多变化,包括DBExpress 的数据

最强大的Delphi RIA Web构架群,领略Delphi开发BS的强大威力,Java差远了

问题描述 CBXRIA框架几乎是国产多Delphi层框架中最好的一个,同时体现SmartClient和RIA思想.CBX的Demo服务器换地址了,所以请大家到这个地方体验,CBXRIADemo(需要客户端初始化):有关CBXRIA的评论:刚创建的CBXRIA讨论区CBXRIA案例:欢迎加入最强大的DelphiRIABS构架群,领略Delphi开发BS的强大威力,Java差远了主讨论群:53623431(已满)第二群:16169282(已满)第三群:63756040(已满)第四群:64740999