如何动态创建Access数据库

BoyMgl 2003-11-30 01:20:05
同上
...全文
70 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsyd 2003-12-07
  • 打赏
  • 举报
回复
</
tsyd 2003-12-07
  • 打赏
  • 举报
回复
测试 &
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
void __fastcall TForm1::New1Click(TObject *Sender)
{
AnsiString S;
if (SaveDialog1->Execute())
S = SaveDialog1->FileName + ".mdb";
if (S.IsEmpty())
return;
AnsiString S1 ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+S;
Variant ovDatabase;
ovDatabase = CreateOleObject("ADOX.Catalog");
ovDatabase.OleFunction("Create",S1.c_str());
}
这样就可以了!
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
Engine->CreateDatabase(DatabaseName.c_bstr(),LocalString.c_bstr(),dbVersion40);
系统在这里报错,说找不到CreateDatabase函数
Persistent8813 2003-11-30
  • 打赏
  • 举报
回复
我的方法不好吗?
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
WideString LocalString=";LANGID=0x0409;CP=1252;COUNTRY=0";
这行啥意思?
pzoon 2003-11-30
  • 打赏
  • 举报
回复
UP
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
TCOM_DBEngine Engine=new CoDBEngine->Create();
这行有错误
chifengwatch 2003-11-30
  • 打赏
  • 举报
回复
同意Big_foolcat(大笨猫)

#include <DAO_2k.h>
TCOM_DBEngine Engine=new CoDBEngine->Create();

WideString DatabaseName="C:\\test.mdb";
WideString LocalString=";LANGID=0x0409;CP=1252;COUNTRY=0";
Engine->CreateDatabase(DatabaseName.c_bstr(),LocalString.c_bstr(),dbVersion40);

delete Engine;
你可以用ADO连接这个Access数据库,动态的配置连接串,然后建表。。。
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
到底哪里有问题?
Persistent8813 2003-11-30
  • 打赏
  • 举报
回复
dj_data.mdb是名,我还没有改为变量。。。。
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
void __fastcall TForm1::New1Click(TObject *Sender)
{
AnsiString S;
if (SaveDialog1->Execute())
S = SaveDialog1->FileName + ".mdb";
if (S.IsEmpty())
return;
Variant ovDatabase;
ovDatabase = CreateOleObject("ADOX.Catalog");
ovDatabase.OleFunction("Create","Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+S);
}
这段代码哪里有问题?
提示:不正确的变量类型(OleFunction)
Persistent8813 2003-11-30
  • 打赏
  • 举报
回复
这是我程序中的一个,如下

#include <ComObj.hpp>

//******************************************************************
// 函数原型:void mdb_create();
// 函数功能:建立一个名为FName的ACCESS2000数据库
// 函数来源:2003.11.01
//******************************************************************
void mdb_create(String FName)
{
AnsiString DataPath = ExtractFilePath(Application->ExeName);
if(FileExists(DataPath+FName))
ShowMessage("该库文件已经存在!");
else
{
try
{
Screen->Cursor = crHourGlass; //光标变为沙漏
try
{
//建立一个ACCESS2000数据库
Variant ca = CreateOleObject("ADOX.Catalog");
ca.OleProcedure("Create","Provider=Microsoft Jet 4.0 OLE DB Provider;Data Source=dj_data.mdb");
}
catch(...)
{
ShowMessage("ACCESS数据库建立失败!");
}
}
__finally
{
Screen->Cursor = crDefault; //光标复原
}
}
}
////////////////////////////////////////////////////////////////
BoyMgl 2003-11-30
  • 打赏
  • 举报
回复
你用的是不是DAO连接Access数据库?我想用ADO连接Access数据库
Wolf0403 2003-11-30
  • 打赏
  • 举报
回复
帮你 UP 一下
Big_foolcat 2003-11-30
  • 打赏
  • 举报
回复
如下方法1:
#include <DAO_2k.h>

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");

方法2:
#include <DAO_2k.h>
TCOM_DBEngine Engine=new CoDBEngine->Create();

WideString DatabaseName="L:\\test.mdb";
WideString LocalString=";LANGID=0x0409;CP=1252;COUNTRY=0";
Engine->CreateDatabase(DatabaseName.c_bstr(),LocalString.c_bstr(),dbVersion40);

delete Engine;

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧