uses ComObj, DAO97;{$R *.DFM}procedure TOfficeForm.spOLECreateClick(Sender: TObject);
var
CreateAccess: OleVariant;
begin
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess:=CreateOleObject('ADOX.Catalog');
//通过OLE方式创建Access97格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Aceco97.mdb');
end;如何改成C++BUILDER,这个Create()是普通方法还是构造函数?
var
CreateAccess: OleVariant;
begin
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess:=CreateOleObject('ADOX.Catalog');
//通过OLE方式创建Access97格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Aceco97.mdb');
end;如何改成C++BUILDER,这个Create()是普通方法还是构造函数?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
Variant AdoObj;
AdoObj=Variant::CreateObject("ADOX.Catalog");
//通过OLE方式创建Access97格式的数据库
AdoObj.OleProcedure("Create","Provider=Microsoft Jet 3.51 OLE DB Provider;Data Source=c:\\ba_97.mdb");
AdoObj.OleProcedure("Create","Provider=Microsoft Jet 4.0 OLE DB Provider;Data Source=c:\\ba_2000.mdb");// AdoObj= Unassigned;
}
我将Provider=中的串修改了一下就可以了,但win2000Sever并未提供ADO 3.51
所以不能产生Access97库,这个问题就烦了;
改成 Provider=Microsoft Jet 3.51 OLE DB Provider;
就正常了,你们用DELPHI,用前者会不会出现"发生意外"的错误!
ok. Access97用Dao3.5, Access2000用ADO 4.0 !!!!!关于Create()中的参数:
Provider=Microsoft.Jet.OLEDB.3.51;
要改成 Provider=Microsoft Jet 3.51 OLE DB Provider;
我用后者才成功,但你提供的是前者,前者也能成功?! 关注