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

📄 dataselect.pas

📁 p2pdbanywhere 可以通过之udp方式远程连接数据库的组件,这个组件非常好,是Delphi7,9,2006能够使用,包含源码.
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit DataSelect;

interface

uses
  SysUtils, Classes,db,adodb,DBClient, remotedataset, RemoteUdpConnection,
  RemoteDbTreeView,LocalDbTreeView,DBGrids,DBGridEh,forms,DataSelectForm,
  ExtCtrls,StrUtils,dialogs,Controls,StaticSelectForm,SynDataBase,RemoteHttpConnection;

type
  TFormStyle=(FSTree,FSGrid,FSTreeGrid);
  TDbGridStyle=(GSDbGrid,GSDbGridEh);
  TDataSetStyle=(DSRemote,DSLocal);
  TDataType=(DTDataBase,DTStaticText);

  TdataItem=class;
  //字段设置
  TFieldList=class(TCollectionItem)
  private

  protected

  public
    constructor Create(Collection: TCollection); override;
    destructor Destroy; override;
  published

  end;
  TFieldListClass = class of TFieldList;
  TFieldLists=class(TCollection)
  private
    FDataItem:TDataItem;
    function GetFieldSelect(Index:integer):TFieldList;
    procedure SetFieldSelect(Index:integer;Value:TFieldList);
  protected
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
  public
    constructor Create(DataItem: TDataItem; FieldListClass: TFieldListClass);
    function Add: TFieldList;
    property Items[Index: Integer]: TFieldList read GetFieldSelect write SetFieldselect; default;
  published
  
  end;

  TRemoteSetup=class(TPersistent)
  private
    FClassCodeFieldName:string; //级别字段
    FClassStep:integer;
    FClassNameFieldName:string; //级别名称字段
    FClassEndFieldName:string;  //末级字段(boolean)
    FRemoteDataSet:TRemoteDataSet;
    FTableName:string;
    FSelectedDataSet:TRemoteDataSet;
    FClassEndFieldValue:string;  //末级字段值(boolean)
    FOtherMarkValue:string;
    FOtherMarkField:string;
    FOtherMarkSign:string;
    procedure setclasscode(value:string);
    procedure setclassname(value:string);
    procedure setclassstep(value:integer);
    procedure setclassend(value:string);
    procedure setclassendv(value:string);
    procedure setdataset(Value:TRemoteDataSet);
    procedure setselecteddataset(Value:TRemoteDataSet);
    procedure settablename(value:string);
    procedure setothermarkvalue(value:string);
    procedure setothermarkField(value:string);
    procedure setothermarkSign(value:string);
  protected
    { Protected declarations }
  public
    constructor Create;
    destructor Destroy; override;
    { Public declarations }
    {(DataItem: TDataItem)}
  published
    property ClassCodeFieldName:string read FClassCodeFieldName write setclasscode;
    property ClassNameFieldName:string read FClassNameFieldName write setclassname;
    property ClassEndFieldName:string read FClassEndFieldName write setclassend;
    property ClassEndFieldValue:string read FClassEndFieldValue write setclassendv;
    property ClassStep:integer read FClassStep write setclassstep;
    property RemoteDataSet:TRemoteDataSet read FRemoteDataSet write setdataset;
    property SelectedDataSet:TRemoteDataSet read FSelectedDataSet write setselecteddataset;
    property TableName:string read FTableName write settablename;
    property OtherMarkValue:string read FOtherMarkValue write setothermarkvalue;
    property OtherMarkField:string read FOtherMarkField write setothermarkfield;
    property OtherMarkSign:string read FOtherMarkSign write setothermarksign;
    { Published declarations }
  end;
  TLocalSetup=class(TPersistent)
  private
    FClassCodeFieldName:string; //级别字段
    FClassStep:integer;
    FClassNameFieldName:string; //级别名称字段
    FClassEndFieldName:string;  //末级字段(boolean)
    FLocalDataSet:TAdoQuery;
    FTableName:string;
    FSelectedDataSet:TAdoQuery;
    FClassEndFieldValue:string;  //末级字段value(boolean)
    FOtherMarkValue:string;
    FOtherMarkField:string;
    FOtherMarkSign:string;
    procedure setclasscode(value:string);
    procedure setclassname(value:string);
    procedure setclassstep(value:integer);
    procedure setclassend(value:string);
    procedure setclassendv(value:string);
    procedure setdataset(Value:TAdoquery);
    procedure setselecteddataset(Value:Tadoquery);
    procedure settablename(value:string);
    procedure setothermarkvalue(value:string);
    procedure setothermarkField(value:string);
    procedure setothermarkSign(value:string);
  protected
    { Protected declarations }
  public
    constructor Create; 
    destructor Destroy; override;
    { Public declarations }
  published
    property ClassCodeFieldName:string read FClassCodeFieldName write setclasscode;
    property ClassNameFieldName:string read FClassNameFieldName write setclassname;
    property ClassEndFieldName:string read FClassEndFieldName write setclassend;
    property ClassEndFieldValue:string read FClassEndFieldValue write setclassendv;
    property ClassStep:integer read FClassStep write setclassstep;
    property LocalDataSet:TAdoQuery read FLocalDataSet write setdataset;
    property SelectedDataSet:Tadoquery read FSelectedDataSet write setselecteddataset;
    property TableName:string read FTableName write settablename;
    property OtherMarkValue:string read FOtherMarkValue write setothermarkvalue;
    property OtherMarkField:string read FOtherMarkField write setothermarkfield;
    property OtherMarkSign:string read FOtherMarkSign write setothermarksign;
    { Published declarations }
  end;  
  TDataSelect = class;
  TDataItem= class(TCollectionItem)
  private
    //固定信息窗口
    FStaticForm:TStaticSelectForm_Form;
    //生成基础信息窗口
    FDataForm:TDataSelectForm_Form;
    //表格信息
    FFieldLists:Tstrings;
    //基础信息表名
    FTableName:string;
    //选定显示字段(名称类字段)
    FNameField:string;
    //选定隐含字段(编码类字段)
    FCodeField:string;
    //显示表格
    //FGrid:TcustomDbGrid;
    //FGridEh:TcustomDbGridEh;
    //基础信息表格类型
    FFormStyle:TFormStyle;
    //Dbgrid的列
    //FDbGridColumns:TDbGridColumns;
    //DbGridColumnsEh:TDbGridColumnsEh;
    //表格类型
    FDbGridStyle:TDbGridStyle;
    //本地和远程类型
    FDataSetStyle:TDataSetStyle;
    //数据类型:从数据库提取,固定文本方式
    FDataType:TDataType;
    //SQL语句
    FSQL:Tstrings;
    //设置
    //FGrid:TCustomDbGrid;
    //FGridEh:TCustomDbGridEh;
    //UDP:TRemoteUdpConnection;
    FRemoteSetup:TRemoteSetup;
    FLocalSetup:TLocalSetup;
    //数据同步
    FADOConnection:TADOConnection;
    FRemoteHttpConnection:TRemoteHttpConnection;
    FRemoteUdpConnection:TRemoteUdpConnection;
    procedure settablename(value:string);
    procedure setnamefield(value:string);
    procedure setcodefield(value:string);
    procedure setformstyle(value:Tformstyle);
    //procedure setdbgridcol(value:TDbGridColumns);
    //procedure setdbgridehcol(value:TDbGridColumnseh);
    procedure setdbgridstyle(value:TDbGridStyle);
    procedure setdatasetstyle(value:TDataSetStyle);
    procedure setsql(value:Tstrings);
    procedure setrtsetup(value:TRemoteSetup);
    procedure setlcsetup(value:TLocalSetup);
    procedure setFieldLists(value:Tstrings);
    procedure setgrid;
    procedure setdatatype(value:Tdatatype);
    procedure setSetupHttpParent(value:TRemoteHttpConnection);
    procedure setSetupUdpParent(value:TRemoteUdpConnection);
    procedure setAdoConnection(value:TADOConnection);
    { Private declarations }
  protected
    function  CreateFieldLists: TFieldLists;dynamic;
    { Protected declarations }
  public
    //是否返回数据了
    resultok:boolean;
    //返回数据
    CodeFieldValue:string;
    NameFieldvalue:string;
    constructor Create(Collection: TCollection);override;
    destructor Destroy; override;
    //显示窗口
    procedure ShowModal;
    { Public declarations }
  published
    property TableName:string read FTableName write settablename;
    property NameField:string read FNameField write setnamefield;
    property CodeField:string read FCodeField write setcodefield;
    property FormStyle:TFormStyle read FFormStyle write setformstyle;
    //property DbGridColumns:TDbGridColumns read FDbGridColumns write setdbgridcol;
    //property DbGridColumnsEh:TDbGridColumnsEh read FDbGridColumnsEh write setdbgridehcol;
    property DbGridStyle:TDbGridStyle read FDbGridStyle write setdbgridstyle;
    property DataSetStyle:TDataSetStyle read FDataSetStyle write setdatasetstyle;
    property SQL:Tstrings read Fsql write setsql;
    property RemoteSetup:TRemoteSetup read FRemoteSetup write setrtsetup;
    property LocalSetup:TLocalSetup read FLocalSetup write setlcsetup;
    property FieldLists:Tstrings read FFieldLists write setFieldLists;
    property DataType:TDataType read FDataType write setdatatype;
    property RemoteHttpConnection: TRemoteHttpConnection read FRemoteHttpConnection write setSetupHttpParent;
    property RemoteUdpConnection: TRemoteUdpConnection read FRemoteUdpConnection write setSetupUdpParent;
    property ADOConnection: TADOConnection read FADOConnection write setADoConnection;
    { Published declarations }
  end;
  TDataSelectClass = class of TDataItem;
  TDataItems = class(TCollection)
  private
    FDataSelect:TDataSelect;
    FSyn:TSynDataBase;
    function GetdataSelect(Index:integer):TDataItem;
    procedure SetdataSelect(Index:integer;Value:TDataItem);
    { Private declarations }
  protected

    { Protected declarations }
  public
    constructor Create(DataSelect: TDataSelect; DataSelectClass: TDataSelectClass);
    function GetFromTableName(TableName:string):TDataItem;
    procedure SynDataBase(TableName:string);
    property Items[Index: Integer]: TDataItem read GetDataSelect write Setdataselect; default;
    { Public declarations }
  published

    { Published declarations }
  end;
  TDataSelect = class(TComponent)
  private
    FDataItems:TDataItems;
    procedure setdataitems(value:TDataItems);
    { Private declarations }
  protected
    function  CreateDataItems: TDataItems; dynamic;
    { Protected declarations }
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    { Public declarations }
  published
    property DataItems:TDataItems read FDataItems write setdataitems;
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('DbAnyWhere', [TDataSelect]);
end;
function TDataItems.GetdataSelect(Index:integer):TDataItem;
begin
  Result:= TDataItem(inherited Items[Index]);
end;
procedure TDataItems.SetdataSelect(Index:integer;Value:TDataItem);
begin
  Items[Index].Assign(Value);
end;
procedure TDataItem.settablename(value:string);
begin
  FTableName:=value;
  {self.SetDisplayName(value);
  changed(false);
  //if length(trim(FTableName))<>0 then self.SetDisplayName('hhhh');
  showmessage(self.DisplayName);  }
end;
procedure TDataItem.setnamefield(value:string);
begin
  FNameField:=value;
end;
procedure TDataItem.setcodefield(value:string);
begin
  FCodeField:=value;
end;
procedure TDataItem.setSetupHttpParent(value:TRemoteHttpConnection);
begin
  FRemoteUdpConnection:=nil;
  FRemoteHttpConnection:=value;
end;

⌨️ 快捷键说明

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