C++Builder 程序员博客
19 Jun
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 ¦Share 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();是完事了,告訴別人沒事了,不用傻傻地等指令了,系統可以清除這對象了。