在delphi中怎么样利用ado控件生成新的蔘access数据库(100分)

  • 主题发起人 yuanhong
  • 开始时间
Y

yuanhong

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
小虾在利用ado控件开发数据库管理系统中,用ado控件关联access数据库是遇到一个问题
,就是利用ado控件生成一个新的access数据库,请各位大吓帮忙,十万火急,万分感激。

 
const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';

function GetTempPathFileName():string;
var
SPath,SFile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(result);
end;

function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
 
你給的代码,我在调试时出现(CreateOleObject)。通不过中,我调试很
 
老兄:
引用 comobj单元。
 
大侠:
我很笨,我不知道这两个函数怎么样用,请帮帮忙呀
 
编译能不能通过???
 
函数在申明时不能通过,代码没什么问题
 
我帮你看看。。。
 
没问题啊! 下面代码:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,comobj;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';

function GetTempPathFileName():string;
var
SPath,SFile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(result);
end;

function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
CreateAccessFile('d:/test.mdb','a');
end;

end.
 
谢谢大哥:
小弟还有一个小小问题说是怎么样向里面加数据表呀(也是用ado,我需要代码)
 
接受答案了.
 
var
i:integer;
begin
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/test.mdb;Jet OLEDB:Database Password=a;';//d:/test.mdb是数据文件,a是密码
ADOConnection1.Open;
ADOConnection1.Execute('create table test(dd char(1))',i,[eoExecuteNoRecords]);//执行create table命令
放个adoconnection,
 
顶部