C++Builder 程序员博客
19 Jul
谁给我一段 自动创建ACCESS数据库的代码? 论坛上找了好多了,但就是不行
同盟用到哪些控件请说明一下
不行啊 有没有人给我详细讲一下啊
怎么不行?
可以的,呵呵,代码主要是loveshell完成的,它是原作者!
loveshell的那段代码我测试过的,后面的代码有些改动,你把整个帖子看完,包括后面的回复帖子!
bool TDM::CreateTempDataBase()
{//创建一个临时数据库
Variant CreateAccess ;
String dataname="Data\\temp.mdb"
if(FileExists(dataname))
DeleteFile(dataname);
String dir="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
String connstring=dir+dataname;
//通过建立ADOX(Microsoft ActiveX(R) Data Objects Extensions)对象进行访问
CreateAccess=CreateOleObject("ADOX.Catalog");
try{
CreateAccess.OleFunction("Create",connstring.c_str());//创建数据库
TADOCommand *comm=new TADOCommand(this);
comm->ConnectionString=connstring; //创建数据表
comm->CommandText="create table 上报汇总(段别 varchar(3),类型 varchar(10),名称 varchar(25),编号 varchar(15),生产厂家 varchar(20),生产日期 varchar(10),机车号 varchar(15),检修日期 datetime)";
comm->Execute();
delete comm;
return true;
}
catch(…){
return false;
}
}
//—————————————————————————
呵呵,最简单的做个模板文件放在那里,用时复制一份。好多程序就是这样做的。
请问LOVESHELL conn=conn+DbName; DBNAME是什么啊,没有定义过啊
还有那个DataModule1在哪里啊
那是我自己的代码,你得稍微改一下。DBNAME是你要生成的数据库的路径,DataModule1是放ADOCommand1的地方,代码用到了TADOConnection和TADOCommand两个控件。
我吧数据库放到资源文件中了,用的时候在拿出来用。。。
DataModule1是To create a new, empty data module, choose File ¦New ¦Data Module (or File ¦New ¦Other and click the Data Module icon) 这样生成的对吧? 然后再加入到原工程中, 但是编译时还是说DataModule1没有定义过 晕死了
注意包含Datamoudle1所在单元的头文件!
还不行,提示说 "ADOCommand1" is not a member of "TDataModule1" 又是为什么呢? 有点自卑了
顶!!!!!
你的ADOCommand1没有放在DataModule1里面.注意,凡是要用到ADO的地方,必须都包含头文件:DataModule1.h