完全代码地Access

    #ifndef Unit1H
    #define Unit1H
    #include <dao_2k.h>
    #include <ADODB.hpp>
    #include <Classes.hpp>
    #include <ComCtrls.hpp>
    #include <Controls.hpp>
    #include <DB.hpp>
    #include <StdCtrls.hpp>
    class TForm1 : public TForm
    {
      __published:
        TButton *Button1;
        TADOConnection *ADOConnection1;
        TADOQuery *ADOQuery1;
        TTreeView *TreeView1;
        TButton *Button2;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
      public:
        void addTmpData(int,int);
        void ChildNodeToTree(TTreeNode* ,int&);
        __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif

 

#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner):TForm(Owner){}
//---------------------------------------------------------------------------
void TForm1::addTmpData(int intNAME ,int intSON_NAME)
{
 ADOQuery1->Close();
 ADOQuery1->SQL->Clear();
 AnsiString Msg = Format("insert into TmpTable values(%d,%d)", ARRAYOFCONST((intNAME,intSON_NAME)));
 ADOQuery1->SQL->Add(Msg);
 ADOQuery1->ExecSQL();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if(FileExists("record.mdb")) return;

  Variant xx=CreateOleObject("ADOX.Catalog"); //#include <dao_2k.h>
  xx.OleFunction("Create","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=record.mdb");

  WideString ss;
  ss="Provider=Microsoft.Jet.OLEDB.4.0;/n/r"
    "Data Source="+ExtractFilePath(Application->ExeName)+"record.mdb;"
    "Persist Security Info=False";
  ADOConnection1->ConnectionString=ss;
  ADOQuery1->Connection=ADOConnection1;

  AnsiString sql;
  sql="CREATE TABLE TmpTable(NAME INTEGER,SON_NAME INTEGER)"; //权用整数
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add(sql);
  ADOQuery1->ExecSQL(); //创建新表TmpTable
  ADOQuery1->Close();

  addTmpData(1 ,11);
  addTmpData(1 ,12);
  addTmpData(1 ,13);
  addTmpData(1 ,17);
  addTmpData(1 ,15);
  addTmpData(1 ,123);
  addTmpData(1 ,312);
  addTmpData(1 ,412);
  addTmpData(1 ,231);
  addTmpData(2 ,12);
  addTmpData(2 ,22);
  addTmpData(2 ,23);
  addTmpData(2 ,123);
  addTmpData(2 ,312);
  addTmpData(2 ,412);
  addTmpData(2 ,231);
  addTmpData(12 ,123);
  addTmpData(12 ,312);
  addTmpData(12 ,412);
  addTmpData(23 ,123);
  addTmpData(23 ,231);
  addTmpData(123 ,1234);
  addTmpData(123 ,3412);

  ADOConnection1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if(!FileExists("record.mdb")) return;
  AnsiString sql;
  WideString ss;
  ss="Provider=Microsoft.Jet.OLEDB.4.0;/n/r"
    "Data Source="+ExtractFilePath(Application->ExeName)+"record.mdb;"
    "Persist Security Info=False";
  ADOConnection1->ConnectionString=ss;
  ADOQuery1->Connection=ADOConnection1;

  TreeView1->Items->Clear();
  int sum,theNum;

  ADOQuery1->SQL->Clear();
  sql="select distinct NAME from TmpTable order by NAME";
  ADOQuery1->SQL->Add(sql);
  ADOQuery1->Open();
  sum=ADOQuery1->RecordCount;
  while(sum-->0)
  {
  TreeView1->Items->Add(0,ADOQuery1->Fields->Fields[0]->AsString);
  ADOQuery1->Next();
  }
  ADOQuery1->Close();
 
  //以下正题
  sum=TreeView1->Items->Count;
  theNum=0;
  while(theNum<sum)
  {
  ChildNodeToTree(TreeView1->Items->Item[theNum],sum);
  theNum++;
  }

  TreeView1->FullExpand();
}
//---------------------------------------------------------------------------
void TForm1::ChildNodeToTree(TTreeNode* node,int& count)
{
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  AnsiString sql;
  sql="select SON_NAME from TmpTable where NAME="+node->Text;
  ADOQuery1->SQL->Add(sql);
  ADOQuery1->Open();
  while(!ADOQuery1->Eof)
  {
   TreeView1->Items->AddChild(node,ADOQuery1->Fields->Fields[0]->AsString);
   ADOQuery1->Next();
  }
  count+=ADOQuery1->RecordCount;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值