当然可以,比如用ADOX可以建立MDB,不过我没试过。
我用另一种方式实现,建一个空库,打包到资源里...
我用另一种方式实现,建一个空库,打包到资源里...
解决方案 »
- delphi7.0 用sim508模块实现手机上网的程序(AT指令) 谁有
- 达人帮忙一个SQL的问题(在线急等)
- 120!~~~
- 用TMediaPlayer循环播放背景音乐的问题, 附原码,高分求解
- 怎样把程序外的文件托拽到程序中在DragDrop事件中处理?
- 求《Delphi 5.X ADO+_MTS_COM+高级程序设计篇》完整下载地址
- 各位高手,怎样对Dbgrid1中对应数据集的记录点击右键进行复制,把其记录粘贴到另一个Dbgrid对应的数据集中?
- sql2000输入的汉字为何成了乱码
- 如何在dbchart中同时显示多条曲线。横坐标是时间,纵坐标是指标值,一条曲线代表一个对象
- 如何显示击健的代码信息!
- 寻求资料!!!!!!!!!!!
- 大虾们请出手
Table1.TableName := (*DataMod.Option.ProjName+'-*)'List';
if not Table1.Exists then
begin
with Table1 do
begin
with FieldDefs do
begin
Clear;
Add('ID',ftAutoInc,0,false);
Add('PN',ftString,10,true);
Add('Part',ftString,20,false);
Add('Special',ftString,100,false);
Add('Display',ftString,20,false);
Add('Number',ftFloat,0,true);
Add('Ref',ftMemo,30,false);
Add('Note',ftMemo,30,false);
end;
with IndexDefs do
begin
Clear;
Add('','ID',[ixPrimary, ixUnique]);
end;
CreateTable;
end;
end;
Table1.TableName := 'List'; //要创建的表名。
搜一下,Hank的长项,贴子很多;
作者自述:原来的有点说明上的错误,其实用ADO、DAO都可以,创建access97/Access2000也都可以,即使添加用户、表、查询也可以,具体的在有些杂志上可能已经出现!下面是我的具体例子,具体解释部分现在可能不能全部贴出,代码部分如下:unit FirstFrm;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls;type
TOfficeForm = class(TForm)
Label1: TLabel;
edtOLECreate: TEdit;
spOLECreate: TSpeedButton;
Label2: TLabel;
edtOLECompact: TEdit;
spOLECompact: TSpeedButton;
Label3: TLabel;
edtDAOCreate: TEdit;
spDAOCreate: TSpeedButton;
Label4: TLabel;
edtDAOCompact: TEdit;
spDAOCompact: TSpeedButton;
procedure spOLECreateClick(Sender: TObject);
procedure spOLECompactClick(Sender: TObject);
procedure spDAOCreateClick(Sender: TObject);
procedure spDAOCompactClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
OfficeForm: TOfficeForm;implementationuses 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');
//通过OLE方式创建Access2000格式的数据库
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco2000.mdb');
end;procedure TOfficeForm.spOLECompactClick(Sender: TObject);
var
CompactAccess: OleVariant;
begin
//通过建立JRO(Microsoft Jet and Replication Objects)对象进行访问
CompactAccess:=CreateOleObject('JRO.JetEngine');
//通过OLE方式压缩Access97格式的数据库
CompactAccess.CompactDatabase('Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Aceco97.mdb',
'Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\Aceco97Back.mdb;Jet OLEDB:Encrypt Database=True');
//删除旧的数据库文件
DeleteFile('c:\Aceco97.mdb');
//将压缩后的数据库文件改回原名
RenameFile('c:\Aceco97Back.mdb','c:\Aceco97.mdb');
//通过OLE方式压缩Access2000格式的数据库
CompactAccess.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco2000.mdb',
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco2000Back.mdb;Jet OLEDB:Encrypt Database=True');
DeleteFile('c:\Aceco2000.mdb');
RenameFile('c:\Aceco2000Back.mdb','c:\Aceco2000.mdb');
end;procedure TOfficeForm.spDAOCreateClick(Sender: TObject);
var
AccessEngine: DBEngine;
begin
AccessEngine:=CoDBEngine.Create;
//通过DAO方式创建Access97格式的数据库
AccessEngine.CreateDatabase('c:\Aceco97.mdb',';LANGID=0x0804;CP=936;COUNTRY=0;',dbEncrypt);
end;procedure TOfficeForm.spDAOCompactClick(Sender: TObject);
var
AccessEngine: DBEngine;
begin
AccessEngine:=CoDBEngine.Create;
//通过DAO方式压缩Access97格式的数据库
AccessEngine.CompactDatabase('c:\Aceco97.mdb','c:\Aceco97Back.mdb','',0,'');
DeleteFile('c:\Aceco97.mdb');
RenameFile('c:\Aceco97Back.mdb','c:\Aceco97.mdb');
end;end.
回复人:yhec(^0^) (2001-4-27 9:54:00) 得0分
这好象是DAO方式,通过OLE调用DAO对象的方法;
要在目标机上注册Dao350.dll与dao360.dll
回复人:yhec(^0^) (2001-4-27 9:56:00) 得0分
前面是ADO,后面是DAO,脑子不够用了
回复人:luhongjun(过江项羽) (2001-4-27 10:00:00) 得0分
Hank(星星农场) ok
给分吧
回复人:yhec(^0^) (2001-4-27 10:04:00) 得0分
这种未封装的调用真不易搞懂,封装后的东西 却又丧失了一些关键、却不常用的
功能,咳!
回复人:Hank(星星农场) (2001-4-27 10:21:00) 得0分
TO:zhangzm(超级菜鸟)由于以前的那个贴子,杂志已经约稿,而且已经写好发出,现在当然不能将所有的解释贴出(总要讲点职业道德吧),结合http://www.csdn.net/expert/topic/53/53461.shtm 看就没问题了!当然,用DAO模式建立、修复Access2000格式的数据库需要下载Delphi5.0的补丁才可以,下面将版本对应情况写出:Access97 ------OLE DB 3.51------ADO 1.0------DAO3.5
Access2000------OLE DB 4.0 ------ADO 2.0------DAO3.6目前ADO是2.6版本!