C++ builder XE10 动态连接加密access2007的accdb数据库实例(可下载实例)

//--在此先要感谢麦子仲肥wg0517、元首BCB菜鸟提供的技术支持!!!

下载源码:https://download.csdn.net/download/lzksword/13948831

//注:没有Microsoft.ACE.OLEDB.12.0的,要先安装此驱动才可以用
// #include "StrUtils.hpp"  //调入Leftstr
#include <ADODB.hpp>
#include <vcl.h>
#pragma hdrstop

#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
const String strMdbFile = ExtractFilePath(ParamStr(0))+"ITdata.accdb";
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

//--------------------------------------------------------------------------
void __fastcall TForm4::Button1Click(TObject *Sender)
{

    TADOConnection *con1;
    TADOQuery *aq1;
    con1 = new TADOConnection(NULL);
    aq1  =new  TADOQuery(NULL);
        // 连接该MDB数据库
    try
    {

        if (con1->Connected)
            con1->Connected = false;

        AnsiString s;
        con1->ConnectionString ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+
                   strMdbFile +";Persist Security Info=False;Jet OLEDB:Database Password=123456.lzk";
//这个可以关闭database login提示对话框
//con->LoginPrompt=false;
        //con->ConnectionString ="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Administrator\Desktop\ITdata.accdb;Mode=Share Deny None;Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False";
        try
        {
        con1->Connected = true;

        aq1->Connection = con1;

        String SQLtxt="select * from ITKG";
        aq1->Close();
        aq1->SQL->Clear();
        aq1->SQL->Text = SQLtxt;
        aq1->Open();

        }
        catch(...)
        {
            ::MessageBox(0, TEXT("打开数据库失败!"),
                    TEXT("警告"), MB_OK | MB_ICONWARNING);
        }
       //-----------------------------------

       //显示格子
       ListView1->GridLines=true;
       带复选框
       ListView1->Checkboxes=true;
       //
       ListView1->ViewStyle=vsReport;
       //显示表头
       for(int i=0;i<aq1->FieldCount;i++)
       {
            ListView1->Columns->Add()->Caption = aq1->Fields->Fields[i]->FullName;
            //str = aq1->FieldList->Strings[i]; //error!! list index out of bounds(0);
            // ListView1->Columns->Add()->Caption = aq1->FieldList->Fields[i]->AsString;  //error:得到的是表数据,不是字段名
       }
       //---------------------------------------------
       //显示行记录
       TListItem *pItem=0;
       aq1->First();
       for(int i=0;i<aq1->RecordCount;i++)
       {
            pItem=ListView1->Items->Add();
            for(int j=0;j<aq1->FieldCount;j++)
            {
                if(j==0)
                {
                   pItem->Caption= aq1->FieldList->Fields[j]->AsString ;

                }
                pItem->SubItems->Add(aq1->FieldList->Fields[j]->AsString);
            }
            aq1->Next();
       }
         //ShowMessage(aq1->FieldByName("ITname")->AsString);

    }
    //--------------------------------------

    //---------------------------------------
    __finally
    {
        delete aq1;
        delete con1;
    }
}

//编译效果图

//实例下载地址:https://download.csdn.net/download/lzksword/11826782

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzksword

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值