⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 Welcome to the ASTA 3 Help Tutorials. These are documented tutorials that included new user jump sta
💻 ~PAS
字号:
{*陈星佐(email_chen)2005-4-30                                            }
{*QQ:29795113                                                              }
{**************************************************************************}
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, kbmMemTable, kbmMWStreamFormat, kbmMWBinaryStreamFormat, DB,
  kbmMWCustomConnectionPool, kbmMWCustomDataset, kbmMWClientDataset,
  kbmMWCustomTransport, kbmMWClient, kbmMWTCPIPIndyTransport, StdCtrls,
  Grids, DBGrids, ExtCtrls, DBCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    kbmMWTCPIPIndyClientTransport1: TkbmMWTCPIPIndyClientTransport;
    kbmMWPooledSession1: TkbmMWPooledSession;
    kbmMWClientConnectionPool1: TkbmMWClientConnectionPool;
    kbmMWClientQuery1: TkbmMWClientQuery;
    kbmMWBinaryStreamFormat1: TkbmMWBinaryStreamFormat;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    Button2: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    DBGrid3: TDBGrid;
    kbmMWClientQuery2: TkbmMWClientQuery;
    DataSource2: TDataSource;
    DataSource3: TDataSource;
    kbmMWClientTransactionResolver1: TkbmMWClientTransactionResolver;
    kbmMWClientQuery3: TkbmMWClientQuery;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure kbmMWClientQueryResolveError(Sender: TObject;
      ErrorType: Integer; Message: String; RecordID: Integer;
      Current: Boolean; var Retry: Boolean);
    procedure kbmMWClientQuery2AfterInsert(DataSet: TDataSet);
    procedure kbmMWClientQuery3AfterInsert(DataSet: TDataSet);
  private
    { Private declarations }
    procedure RefreshDetail;
    procedure RefreshDetailDetail;
    procedure ResolveDataSet;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
  aReOpenQuery:TkbmMWClientQuery;
begin
  with kbmMWTCPIPIndyClientTransport1 do
  if Host<>trim(Edit2.Text) then
   begin
     Active:=False;
     Host:=trim(Edit2.Text);
     Active:=True;
   end;

   case PageControl1.ActivePageIndex+1 of
    1: aReOpenQuery:=kbmMWClientQuery1;
    2: aReOpenQuery:=kbmMWClientQuery2;
    3: aReOpenQuery:=kbmMWClientQuery3;
   end;

  with aReOpenQuery do
  begin
     Close;
     Open;
  end;


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ResolveDataSet;
end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin
  ResolveDataSet;
  case PageControl1.ActivePageIndex+1 of
    1: DBNavigator1.DataSource:=DataSource1;
    2: begin
         DBNavigator1.DataSource:=DataSource2;
         RefreshDetail;
       end;
    3: begin
         DBNavigator1.DataSource:=DataSource3;
         RefreshDetail;
         RefreshDetailDetail;
       end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  PageControl1.ActivePageIndex:=0 ;
  DBNavigator1.DataSource:=DataSource1;
end;

procedure TForm1.RefreshDetail;
begin
  with kbmMWClientQuery2 do
  if ParamByName['CustomerID'].AsString<>kbmMWClientQuery1.FieldByName('CustomerID').AsString then
  begin
    Close;
    ParamByName['CustomerID'].AsString:=kbmMWClientQuery1.FieldByName('CustomerID').AsString;
    Open;
  end;
end;


procedure TForm1.RefreshDetailDetail;
begin
  with kbmMWClientQuery3 do
  if ParamByName['OrderID'].AsString<>kbmMWClientQuery2.FieldByName('OrderID').AsString then
  begin
    Close;
    ParamByName['OrderID'].AsString:=kbmMWClientQuery2.FieldByName('OrderID').AsString;
    Open;
  end;
end;

procedure TForm1.ResolveDataSet;
begin
   kbmMWClientTransactionResolver1.Resolve([kbmMWClientQuery1,kbmMWClientQuery2,kbmMWClientQuery3]);
end;

procedure TForm1.kbmMWClientQueryResolveError(Sender: TObject;
  ErrorType: Integer; Message: String; RecordID: Integer; Current: Boolean;
  var Retry: Boolean);
begin
  Showmessage(Message);
end;

procedure TForm1.kbmMWClientQuery2AfterInsert(DataSet: TDataSet);
begin
  DataSet.FieldByName('CustomerID').AsString:=kbmMWClientQuery1.FieldByName('CustomerID').AsString;
end;

procedure TForm1.kbmMWClientQuery3AfterInsert(DataSet: TDataSet);
begin
  DataSet.FieldByName('OrderID').AsString:=kbmMWClientQuery2.FieldByName('OrderID').AsString;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -