zoukankan      html  css  js  c++  java
  • delphi(假三层之数据访问层)(第一天)

    本论文主要是通过三天来讲解三层的结构,今天是第一天,先讲解一下delphi下的Models层,我主要封装了两个查询得到数据集的函数,主要是通过在表示层上创建的数数据集控件传递进来,通过业务逻辑对语句的处理进行操作数据集,最后提交数据集的数据到数据库中去,进而想成delphi中的假三层,这样做能够独立于业务逻辑层和数据访问层,其他的都可以调用这两层,其中业务逻辑层,明天再讲,逻辑层写的不怎么好,个人觉得还是数据访问层封装方法封装通用性程度高一点。例如:TADOQuery,TADOTable数据集控件,通过一层一层的传递。
    下面直接上代码:
    unit UnitModels;
     
    interface
     
    uses
      SysUtils, Classes, DB, ADODB;
     
    type
      TModel = class(TDataModule)
        conConnection: TADOConnection;
        procedure DataModuleCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        FConnection : TADOConnection;
        // 返回影响的行数
        function SqlExec(const ASql: string;var AQry: TADOQuery): Integer;
        // 执行sql返回数据集
        function SqlQuery(const ASql: string; var AQry: TADOQuery): Boolean; 
     
    overload;
      end;
     
    var
      Model: TModel;
     
    implementation
     
    {$R *.dfm}
    //以下语句主要是sql server数据库的驱动写法,其他连接不同数据库语法,自己查询一下。
    procedure TModel.DataModuleCreate(Sender: TObject);
    begin
      conConnection.ConnectionString := 'Provider=SQLOLEDB.1;Integrated 
     
    Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名字;Data 
     
    Source=服务器名';
      conConnection.LoginPrompt := false;
      conConnection.Connected := true;
      FConnection := conConnection;
    end;
     
    function TModel.SqlExec(const ASql: string;
      var AQry: TADOQuery): Integer;
    begin
      Result := -1;
      AQry.Close;
      AQry.Connection := FConnection;
      AQry.SQL.Text := ASql;
     
      try
        try
          begin
            AQry.ExecSQL;
            Result := 1;
          end;
        except on e: Exception do
          begin
            AQry.Cancel;
            AQry.Close;
            Exit;
          end;
        end;
      except on e: Exception do
        ;
      end;
    end;
     
    function TModel.SqlQuery(const ASql: string;
      var AQry: TADOQuery): Boolean;
    begin
      Result := False;
      AQry.Close;
      AQry.Connection := FConnection;
      AQry.SQL.Text := ASql;
     
      try
        try
          begin
            AQry.Open;
            Result := True;
          end;
        except on e: Exception do
          begin
            AQry.Cancel;
            AQry.Close;
            Exit;
          end;
        end;
      except on e: Exception do
        ;
      end;
    end;
     
    end.
  • 相关阅读:
    Android UI开发 popupwindow介绍以及代码实例
    前端之Android入门(5) – MVC模式(下)
    前端之Android入门(4) – MVC模式(中)
    前端之Android入门(3) – MVC模式(上)
    前端之Android入门(2) – 程序目录及UI简介
    前端之Android入门(1) – 环境配置
    android之SQLite数据库应用(二)
    android之SQLite数据库应用(一)
    android 裁剪图片大小 控制图片尺寸
    Android应用盈利广告平台的嵌入方法详解
  • 原文地址:https://www.cnblogs.com/jijm123/p/10359324.html
Copyright © 2011-2022 走看看