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

简介: 在主程序里面把数据库访问控件设置并注册好,在脚本里面使用数据库就非常简单。 可以类似下面的脚本访问数据库。     要实现数据库访问,我们采用的是Devart 公司的数据库访问控件。该公司有单独访问 oracle,sql server,my sql,interbase 的控件,也有UniDac 控件可以同时访问包括以上数据库 的其他数据库,例如db2,access,sqllite 等。

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

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

<%
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,系统在执行完自动会销毁这些对象的。

 

 



 

 




目录
相关文章
|
3月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
310 4
|
6月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
7月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
7月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
4月前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
231 1
|
6月前
|
存储 SQL 前端开发
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
本节以“账本”为例,使用关系型数据库接口实现账单的增、删、改、查操作。通过创建ArkTSRdb应用,演示如何操作RdbStore进行数据管理,并结合界面按钮实现交互功能。
294 0
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
186 3
|
4月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。