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

📄 frm_main.pas

📁 利用Windows自带的ADOX组件实现Delphi 程序自动创建、控制带密码的Access数据库及表、查询。
💻 PAS
字号:
unit Frm_Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  ComObj,Dialogs, StdCtrls;

type
  TMain = class(TForm)
    cmd_Create_TD: TButton;
    cmd_Create_DB: TButton;
    cmd_Cteate_TQ: TButton;
    procedure cmd_Create_TDClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cmd_Create_DBClick(Sender: TObject);
    procedure cmd_Cteate_TQClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;
  Cnn1,Cnn2,Cat1,Cat2:variant;
  FName1,FName2,CnnStr1,CnnStr2:String;

implementation

{$R *.dfm}

function AppDir:String;
begin
    Result:=ExtractFilePath(Paramstr(0));
end;

procedure TMain.FormCreate(Sender: TObject);
begin
  FName1:=AppDir+'ADOX_DB.MDB';
  FName2:=AppDir+'示例数据库.MDB';
  CnnStr1:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FName1 + ';Jet OLEDB:Database Password=wjn';
  CnnStr2:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FName2 + ';Jet OLEDB:Database Password=wjn';
  If FileExists(FName1) Then
    cmd_Create_DB.Enabled:=False
  else
    cmd_Create_TD.Enabled:=False
end;

procedure TMain.cmd_Create_DBClick(Sender: TObject);
begin
  Cat1:= CreateOleObject('ADOX.Catalog');
  Cat1.Create(CnnStr1);
  Cat1:=Null;
  cmd_Create_DB.Enabled:=False;
  cmd_Create_TD.Enabled:=True;
end;

procedure TMain.cmd_Create_TDClick(Sender: TObject);
const
  adInteger=0003;
  adDate=0007;
  adVarWChar=0202;
  adColNullable=0002;
  adKeyPrimary=0001;
  adIndexNullsAllow=0000;
var
  TD,Field,Key:variant;
begin
  Cnn1:= CreateOleObject('ADODB.Connection');
  Cat1:= CreateOleObject('ADOX.Catalog');
  Cat1:=Cnn1.Open(CnnStr1);
  TD:= CreateOleObject('ADOX.Table');
  TD.Name:='ADOX_TD';
  TD.Columns.Append('adInteger',adInteger);
  TD.Columns.Append('adDate',adDate);
  Cat1.Tables.Append(TD);
  Cat1.Tables.Refresh;

  TD:=Cat1.Tables('ADOX_TD');
  TD.Columns.Append('NewField',adInteger);
  Field:= CreateOleObject('ADOX.Column');
  Field.Name:='FaxPhone';
  Field.Type:=adVarWChar;
  Field.DefinedSize:=24;
  Field.Attributes:=adColNullable;
  Cat1.Tables('ADOX_TD').Columns.Append(Field);
  Cat1.Tables.Refresh;

  Key:= CreateOleObject('ADOX.Key');
  Key.Type:=adKeyPrimary;
  Key.Columns.Append('FaxPhone');
  Cat1.Tables('ADOX_TD').Keys.Append(Key);
  Cat1.Tables('ADOX_TD').Keys.Refresh;
  Cat1.Tables('ADOX_TD').Keys.Delete('FaxPhone');
  TD.Columns.Delete('FaxPhone');
  Cat1.Tables.Delete(TD.Name);
end;

procedure TMain.cmd_Cteate_TQClick(Sender: TObject);
const
  adCmdText=0001;
var
  TQ,RS:variant;
  SqlStr:String;
begin
  SqlStr:='SELECT * From 订单 WHERE 货主地区="华东"';
  Cnn2:= CreateOleObject('ADODB.Connection');
  Cat2:= CreateOleObject('ADOX.Catalog');
  TQ:= CreateOleObject('ADODB.Command');
  RS:= CreateOleObject('ADODB.Recordset');

  Cat2:=Cnn2.Open(CnnStr2);
  TQ.CommandType:=adCmdText;
  TQ.CommandText:=SqlStr;
  Cat2.Views.Append('Query',TQ);
  Cat2.Views.Refresh;
  RS:=TQ.Execute;
  Cat2.Views.Delete('Query')
end;

end.

⌨️ 快捷键说明

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