CBuilder中動態創建ACCESS數據庫的問題(已經給出DELPHI源碼,如何改寫為BCB源代碼),來者有分


在DELPHI中有動態創建ACCESS數據庫是很easy的事,源碼如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  AppPath:string;
  CreateAccess:Variant;
begin
    
    AppPath:=路徑;
    CreateAccess:=CreateOleObject('ADOX.Catalog');
    CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+AppPath+'\'+庫名+'.mdb');
    showmessage('數據庫創建成功!');
  
end;
但上述代碼移植到BCB中該如何寫,特別是其中的CreateAccess.Create()該如何表達。另外,Provider指定用Microsoft.Jet.OLEDB.4.0,但如果操作系統不提供4.0,而只有3.5版,程序會不會出錯。該如何檢測當前操作系統中Microsoft.Jet.OLEDB的版本。

8 个解决方案

#1


看看CSDN到底有沒有BCB高手,是大蝦的就站出來吧!

#2


沒有
。。。

#3


看來是不能等靠要。
這個問題以前有人問過,當時 Sammo(三毛) 回答了這個問題。方法如下:
  TCOM_DBEngine Engine=new CoDBEngine->Create();
  DeleteFile("D:\\Mydata.MDB");
  WideString DatabaseName="D:\\Mydata.MDB";
  WideString LocalString=";LANGID=0x0409;CP=1252;COUNTRY=0;USERFDID=Administrator;PASSWORD=123";
  Engine->CreateDatabase(DatabaseName.c_bstr(),LocalString.c_bstr(),dbVersion40);
  delete Engine;
  ShowMessage("建表成功!");
但有關CreateDatabase函數的文檔就找不到,比如想在建庫時設一個密碼,就不知道該如何處理(當然,建好庫后再改密碼也可以)。

#4


不知道能不能把分給自己,要不這100分就浪費了

#5


我勸你不要在有任何想法把delphi的源代碼翻譯成c++,我吃近了苦頭.你還是從BCB中尋找相關函數吧,重新編寫。

#6


void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString   AppPath, DBName;
 Variant      CreateAccess;
 Procedure    CreateDB("Create");

 AppPath = "d:\\temp";
 DBName = "Test.mdb";
 CreateDB << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppPath + "\\" + DBName;
 CreateAccess = CreateOleObject("ADOX.Catalog");
 CreateAccess.Exec(CreateDB);
 ShowMessage("ok!");
}

我已試過了,可以生成ACCESS文件的,至於版本的問題你自己再想法子吧。COM編程不是一下兩下能學好的。有一個組件叫KADAO很好用,所有ACCESS能完成的功能它全搞定。http://www.delphi.pari.bg/上去下吧。

#7


有兩種辦法,你可以引入ADOX的類型庫,也可以直接利用ole來做。
這里告訴你第二種吧:
需要頭文件:#include <utilcls.h>
代碼如下:
  Variant v;
  v = CreateOleObject("ADOX.Catalog");
  v.OleProcedure("Create", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\a.mdb");  

  簡單吧? :)
  我試過的,完全可以。

其實,delphi翻譯成bcb程序不是太麻煩。

#8


boyla(土著巫師) 的方法比較好,因為在出現異常時可以返回完整的錯誤信息。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com