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使用ADO组件访问ACCESS数据入门例程

在form上添加控件 一.方法一: 1.增加一个ADOConnection控件,点击ConnectionString属性,选Use Connection string 下面的例子中...
  • qq173684423
  • qq173684423
  • 2015年04月09日 13:17
  • 2354

delphi连接access数据库的步骤(详细教程)

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

delphi连接access数据库的步骤(简介)

一、放置adoconnection控件 (ADO组件板中) 1、设置name属性 :简单来说就是该控件的名字 为以后在代码中调用他用的 ,也可以不更改。 2、connectionstring属性:...
  • zisongjia
  • zisongjia
  • 2017年05月23日 15:24
  • 769

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

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

delphi7操作Access数据库完整实例

  • 2011年09月24日 16:55
  • 771KB
  • 下载

64位Win7、8、10中导入excel提示“因为 OLE DB 访问接口 'MICROSOFT.JET.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。”

64位Win7中导入excel提示“因为 OLE DB 访问接口 'MICROSOFT.JET.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。” 主要原因...
  • wozengcong
  • wozengcong
  • 2016年04月01日 09:30
  • 1614

delphi使用ado连接Excel

1. 设置ADOConnection的ConnectionString属性的OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider(这本来是用于连接Access数...
  • pojj123
  • pojj123
  • 2016年02月03日 17:01
  • 344

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别 在通过ADO对Excel对象进行连接时(此时Excel则认为是一个数据源),需要配置对Exce...
  • xifeijian
  • xifeijian
  • 2012年12月19日 20:30
  • 44423

Delphi操作ACCESS技巧集

版权声明请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。 Delphi操作ACCESS技巧集1.DELPHI中操作ACC...
  • tingsking18
  • tingsking18
  • 2006年05月10日 09:22
  • 1357

delphi 中操作access数据库的几个函数。

unit U_AccessFun;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, ...
  • jl820712
  • jl820712
  • 2006年04月06日 10:50
  • 1205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi之ADO操作Access
举报原因:
原因补充:

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