CoInitialize(NULL);
    Variant ca=Variant::CreateObject("ADOX.Catalog");
      AnsiString temp="Provider=Microsoft Jet 4.0 OLE DB Provider;Data Source="+要生成的数据库路径+";Jet OLEDB:Database Password=123";
      ca.OleProcedure("Create",temp.c_str());
      ca.Clear();
      //刚才创建的数据库文件
      AnsiString  conn;
      ADOConnection1->Close();
      conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
      conn=conn+DbName;
      conn=conn+";Mode=Share Deny Read &brvbarShare Deny Write;Persist Security Info=True;Jet OLEDB:Database Password=123";
      ADOConnection1->ConnectionString=conn;
      ADOConnection1->Open();
      DataModule1->ADOCommand1->CommandText="Create Table 表名(字段名 类型,字段名 类型)";
      DataModule1->ADOCommand1->Execute();
      CoUninitialize();

CoInitialize(NULL);//用来初始化ADO环境
Variant ca=Variant::CreateObject("ADOX.Catalog"); //创建一个ADO对象
ca.OleProcedure("Create",temp.c_str());
CoUninitialize();//退出刚刚创建的ADO环境
ca.Clear(); //释放对象

CoInitialize(NULL); //調用前初始化
CoUninitialize();  //不用了通知系統析構。
這是調用COM類型庫需要做的動作,在DLL中使用時需要。在主程序中,因VCL會自行調用,所以不需要重復調用了。
Variant ca=Variant::CreateObject  //建立COM物件
ca.OleProcedure                  //運行指令
ca.Clear();                      //釋放
//這是執行ole操作,也就是傳遞指令到相應的COM物件上去,讓別人幫你做事。
ca.Clear();是完事了,告訴別人沒事了,不用傻傻地等指令了,系統可以清除這對象了。