Delphi之ADO操作Access

原创 2012年03月30日 11:26:54
unit frm_Ado;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB;

type
  TForm_Ado = class(TForm)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    procedure FormCreate(Sender: TObject);
  private

    { Private declarations }
  public
    function AdoAddInfo(AppName: string; AppType: integer;AppPath: string): Boolean;
    function GetAppPath(AppName: string): string;
    function UpDateAppPath(AppName, mAppPath: string): Boolean;
    function DelAdoInfo(AppName: string): Boolean;
    function GetAppCount(AppName: string): integer;

    { Public declarations }
  end;

var
  Form_Ado: TForm_Ado;

implementation

{$R *.dfm}

procedure TForm_Ado.FormCreate(Sender: TObject);
begin
  // 联接access数据库
  ADOConnection1.ConnectionString :=
    'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + SysUtils.ExtractFilePath
    (application.ExeName) + 'AppPath.accdb;Persist Security Info=False';
  ADOConnection1.KeepConnection := true;
  ADOConnection1.LoginPrompt := false;
  ADOConnection1.Connected := true;
end;

function TForm_Ado.DelAdoInfo(AppName: string): Boolean;
var
  sqlStr: string;
begin
  result := false;
  sqlStr := 'delete FROM Tb_AppPath where(AppName=' + #39 + AppName + #39 + ')';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sqlStr);
  ADOQuery1.ExecSQL;
  ADOQuery1.Close;
  result := true;
end;

function TForm_Ado.AdoAddInfo(AppName: string; AppType: integer;AppPath: string): Boolean;
var
  sqlStr: string;
  counter: integer;
begin
    result := false;
    sqlStr := 'INSERT INTO Tb_AppPath(AppName,AppType,AppPath) Values(' + #39 +
      AppName + #39 + ',' + inttostr(AppType) + ',' + #39 + AppPath + #39 + ')';
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(sqlStr);
    ADOQuery1.ExecSQL;
    ADOQuery1.Close;
    result := true;
end;

function TForm_Ado.UpDateAppPath(AppName: string; mAppPath: string): Boolean;
var
  sqlStr: string;
begin
  result := false;
  sqlStr := 'update Tb_AppPath Set AppPath=' + #39 + mAppPath + #39 +
    'where(AppName=' + #39 + AppName + #39 + ')';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sqlStr);
  ADOQuery1.ExecSQL;
  ADOQuery1.Close;
  result := true;
end;

function TForm_Ado.GetAppPath(AppName: string): string;
var
  sqlStr: string;
begin
  result := '';
  sqlStr := 'select AppPath from Tb_AppPath where(AppName=' + #39 + AppName +
    #39 + ')';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sqlStr);
  ADOQuery1.open;

  result := ADOQuery1.FieldByName('AppPath').AsString;
  ADOQuery1.Close;
end;

function TForm_Ado.GetAppCount(AppName: string): integer;
var
  sqlStr: string;
begin
  result := 0;
  sqlStr := 'select count(AppName) from Tb_AppPath where(AppName=' + #39 +
    AppName + #39 + ')';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sqlStr);
  ADOQuery1.open;

  result := ADOQuery1.fields[0].Asinteger;
  ADOQuery1.Close;
end;

end.

 

//添加
procedure TForm_Ado.AdoSetNTPolcy(SvrAdmin, SvrPsw: string);
var
  sqlStr: string;
  counter: integer;
begin
  sqlStr := 'select Count(*) from tb_ntpolcy where(ntname=' + #39 + SvrAdmin + #39 + ')';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sqlStr);
  ADOQuery1.open;
  counter := ADOQuery1.Fields[0].AsInteger;
  ADOQuery1.Close;

  if counter = 0 then
  begin
    sqlStr := 'INSERT INTO tb_ntpolcy(ntname,ntpsw) Values(' + #39 + SvrAdmin +
      #39 + ',' + #39 + SvrPsw + #39 + ')';
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(sqlStr);
    ADOQuery1.ExecSQL;
    ADOQuery1.Close;
  end;
end;

//遍历结果集
procedure TForm_Ado.AdoGetNTPolcy(var listNTPolcy: Tlist);
var
  sqlStr: string;
  pNtPolcy: PAccount;
begin
  sqlStr := 'select * from tb_ntpolcy';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sqlStr);
  ADOQuery1.open;
  while not ADOQuery1.eof do
  begin
    New(pNtPolcy);
    pNtPolcy.ntname := ADOQuery1.FieldByname('ntname').AsString;
    pNtPolcy.ntpwd := ADOQuery1.FieldByname('ntpsw').AsString;
    if pNtPolcy.ntname <> '' then
    begin
      listNTPolcy.Add(pNtPolcy);
    end;
    ADOQuery1.Next;
  end;
  ADOQuery1.Close;
end;


控件属性设置:

TADOConnection/
TADOQuery/Connection:=ADOConnection1
TDataSource/DataSet:=ADOQuery1

相关文章推荐

Delphi 7中ADO控件打开Access数据库文件

delphi7中ADO控件打开Access数据库文件最近在学习delphi7编程,尽管已经这门语言已经落寞了,但是作为新手,我目前觉得delphi难度比其他的小,可能与可视化环境有关,尤其很多控件拖拖...

Delphi使用ADO组件访问ACCESS数据入门例程

在form上添加控件 一.方法一: 1.增加一个ADOConnection控件,点击ConnectionString属性,选Use Connection string 下面的例子中...

一次Delphi访问access数据库的总结

 由于项目需要写一个门禁接口,要使用Delphi访问access数据库的一个表,不得已要使用以前都没用过的access数据库,现在接口写的差不多了,把自己在这当中学到的一些access记一下,以免到时...

Delphi连接Access数据库图文教程(1)

前几天,有个网友刚开始学Delphi,想学一下Delphi连Access数据库,可是怎么都连不成功,我就答应给他做个图文教程,现在闲下来了,就来做一个教程。首先我们来确认一下所用到的环境Delphi7...

Delphi下的原生ADO使用方法

本文向您揭示在Delphi中使用ADO是如何轻而易举,结合了ADO的Delphi应用程序,将不再依赖于BDE。 ADO的精髓在于利用简单的COM指令来快速方便的访问ODBC数据源,微软的表格、...
  • Hmillet
  • Hmillet
  • 2016年03月30日 09:55
  • 2171

Delphi ADO 连接 Excel (附Excel各个版本的版本号)

引用ComObj这个单元 Type Conn: TADOConnection; qry: TADOQuery; var Excel: OLEVariant; ExcelVersio...

Delphi中用ADO连接数据库

此文适合Delphi新手阅读,特别是连接数据库方面还一懂半懂甚至根本不懂的新手;     --------------------------但总体显得有点乱---------------------...

delphi ADO连数据库学习实例(初级+高级)

delphi ado 连数据库------初级 1.在窗体上添加ADOConnection,ADOTable,DataSource控件各一个 2.把ADOTable关联到ADOConnectio...

delphi错误提示查询 (ADO+ACCESS)

  • 2006年01月13日 09:51
  • 318KB
  • 下载

一通进销存delphi源码(ADO+ACCESS)

  • 2006年02月23日 09:05
  • 2.01MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi之ADO操作Access
举报原因:
原因补充:

(最多只允许输入30个字)