引用
uses ComObj,ActiveX
变量
var
Form1: TForm1;
Const
SConnectionString = 'PRovider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database PassWord=%s;';
implementation
函数
{$R *.dfm}
function GetTempPathFileName():string;
//取得临时文件名
var
SPath,SFile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(PChar(result));
end;
//=============================================================================
// Procedure: CreateAccessFile
// Author : ysai
// Date : 2003-01-27
// Arguments: FileName:String;PassWord:string=''
// Result : boolean
//=============================================================================
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.btndbcreateClick(Sender: TObject);
begin
ShowMessage(SConnectionString);
if CreateAccessFile(Self.edtdbname.Text,'') then
begin
self.ADOConnection1.ConnectionString:= Format(SConnectionString,['D:\delphisource\printpaper\bin\'+edtdbname.Text,'']);
Self.ADOConnection1.Connected:=True;
ShowMessage('创建'+edtdbname.Text+'数据库完成!');
end;
end;
创建表
procedure TForm1.btncreatedbtableClick(Sender: TObject);
begin
with self.ADOQuery1 do
begin
SQL.Clear;
SQL.Text:=self.mmosql.Text;
ExecSQL;
end;
end;