如何动态创建ACCESS库:

nb2002273 2002-08-03 09:56:55
如何动态创建ACCESS库:
1.用COPYFILE
2.用如下ole方法,但我不成功,请问哪能否帮我一下,此外还有没别的方法?
我建立一ACCESS库(A库),我把它放在OLECONTAINER 中,我又建立一个B库,里面有一个表(Q)里一个字段为
OLE 类型(M 字段),我把A库写到M字段中,成功,如下:
procedure TForm1.Button1Click(Sender: TObject);
var
ms:tmemorystream;
begin
ms:=tmemorystream.Create;
olecontainer1.SaveToStream(ms);

ado_q.First;
ado_q.Edit;
TBlobField(ado_q.fieldbyname('aa')).LoadFromStream(ms);

但是我想要建立一个C库,同A库一模一样,我把M字段的东西去出来,用到如下代码,虽然建立
成功,但是ACCEESS打不开,提示不能识别的数据库类型,而且此C库比A库大.
代码如下:

adoTemp.SQL.Add('select * from Q');
adoTemp.Active :=true;
strpath:=extractfilepath(application.exename)+'\C.mdb';
if adoTemp.RecNo >0 then
(adoTemp.FieldByName('M') as tblobfield).SaveToFile(strPath);
adoTemp.Free;
adoCon.Free;
// curDataPath:=strPath;
//edtPath.Text :=strPath;
//WriteLastLoginInfo(curLastName,curDatapath);
//except
end;
...全文
32 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nb2002273 2002-08-05
  • 打赏
  • 举报
回复
nb2002273@sina.com
能不能发给我谢谢
nb2002273 2002-08-04
  • 打赏
  • 举报
回复
为啥那个OLE 的方法不行,能不能帮我看一下,
还有ADOX我不太知道,有没有例子
nb2002273@sina.com
gilbertz 2002-08-04
  • 打赏
  • 举报
回复
动态创建ACCESS数据库
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;
nb2002273 2002-08-04
  • 打赏
  • 举报
回复
哪里有ADOX
chenjiong 2002-08-04
  • 打赏
  • 举报
回复
你好象只是要复制一个access数据库吧?COPYFILE就行了。
动态创建access,可以用adox。其中分为建库与建表两步。建库可以用adox,建表可以用sql或是adox。感觉还是sql方便些,adox中有些不舒服。
闪光的小虫子 2002-08-04
  • 打赏
  • 举报
回复
ADOX 好像可以
注意是ADOX 不是ADO,他是ADO的一个扩展

别忘了给分
luoshumeng 2002-08-04
  • 打赏
  • 举报
回复
建库用ADOX,建库建议用SQL,因为有很多字段你想空的话用ADOX 好像办不到!用SQL 就好办了,建议你去查一下,里面有很多这样的贴子!
我这里也有LUOSHUMENG@163.COM
nb2002273 2002-08-04
  • 打赏
  • 举报
回复
up

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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