ADO动态创建数据库
#include
Variant CreateAccess ;
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess=CreateOleObject("ADOX.Catalog");
CreateAccess.OleFunction("Create","Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Aceco97.mdb");
CreateAccess.OleFunction("Create","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco2000.mdb");
//通过OLE方式创建Access2000格式的数据库
你出的这个问题一定是这两个文件已经存在了,我也遇到了,当时已经存在了一个文件所以出错了,删除掉文件就可以了。
回复人:BCB(:)) (2001-6-4 2:14:00) 得0分
我将Provider=中的串修改了一下,就可以,但win2000server并示提供
ADO3.51,所以将不能ACCESS97,这就烦了;
#include
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;
}
//-----------------------------------------------------------------
刚给别人答完又粘给你了。
#include
#include
Variant CreateAccess = CreateOleObject('ADODB.Connection');
CreateAccess.OleFunction("Open",'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data
Source=C:\BCB5\Aceco2000.mdb;Mode=Share
Deny None;Extended Properties="";Jet OLEDB:System database="";Jet
OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet
OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create
System Database=False;Jet OLEDB:Encrypt Database=False;Jet
OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without
Replica Repair=False;Jet OLEDB:SFP=False');
然后:
ReCord = CreateOleObject('ADODB.RecordSet');
ReCord.ActiveConnection = CreateAccess;
ReCord.OleFunction("Open",'Select * from 客户', CreateAccess, adOpenStatic,
adLockOptimistic, adCmdText); // 执行指令
其中:
ReCord.OleFunction("Open",'Select * from 客户', CreateAccess, adOpenStatic,
可以改成你需要的。
#include
Variant CreateAccess ;
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess=CreateOleObject("ADOX.Catalog");
CreateAccess.OleFunction("Create","Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Aceco97.mdb");
CreateAccess.OleFunction("Create","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco2000.mdb");
//通过OLE方式创建Access2000格式的数据库
你出的这个问题一定是这两个文件已经存在了,我也遇到了,当时已经存在了一个文件所以出错了,删除掉文件就可以了。
回复人:BCB(:)) (2001-6-4 2:14:00) 得0分
我将Provider=中的串修改了一下,就可以,但win2000server并示提供
ADO3.51,所以将不能ACCESS97,这就烦了;
#include
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;
}
//-----------------------------------------------------------------
刚给别人答完又粘给你了。
#include
#include
Variant CreateAccess = CreateOleObject('ADODB.Connection');
CreateAccess.OleFunction("Open",'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data
Source=C:\BCB5\Aceco2000.mdb;Mode=Share
Deny None;Extended Properties="";Jet OLEDB:System database="";Jet
OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet
OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet
OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create
System Database=False;Jet OLEDB:Encrypt Database=False;Jet
OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without
Replica Repair=False;Jet OLEDB:SFP=False');
然后:
ReCord = CreateOleObject('ADODB.RecordSet');
ReCord.ActiveConnection = CreateAccess;
ReCord.OleFunction("Open",'Select * from 客户', CreateAccess, adOpenStatic,
adLockOptimistic, adCmdText); // 执行指令
其中:
ReCord.OleFunction("Open",'Select * from 客户', CreateAccess, adOpenStatic,
可以改成你需要的。