请教高手:如何用Delphi创建一个空的Access数据库?谢谢! 请教高手:如何用Delphi创建一个空的Access数据库? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Db, ADODB, comobj;type TForm1 = class(TForm) ADO: TADOConnection; ADOQuery1: TADOQuery; Button2: TButton; Button3: TButton; Memo1: TMemo; procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button2Click(Sender: TObject);var Source,str_sql:string; CreateDB:Variant;begin //判断数据库是否已经存在 if FileSearch('DB.MDB',ExtractFileDir(Application.ExeName)+'\')<>'' then begin Application.MessageBox('数据库已经存在!','提示',64); exit; end; // 创建数据库 Source:=' Provider=Microsoft.Jet.OLEDB.4.0; ' +' Data Source= ' +ExtractFileDir(Application.ExeName) +'\DB.MDB'; try CreateDB:=CreateOleObject('ADOX.Catalog'); CreateDB.Create(Source); Application.MessageBox('数据库创建成功','提示',64); except Application.MessageBox('数据库创建失败','提示',64); end; //创建数据库中的表 ADO.ConnectionString:=Source; ADO.Connected:=true; ADOQuery1.Connection:=ADO; ADOQuery1.Close; ADOQuery1.SQL.Clear; str_sql:=' create table T ( ID char(10) ) '; ADOQuery1.SQL.Add(str_sql); try ADOQuery1.ExecSQL; Application.MessageBox('数据表创建成功','提示',64); except Application.MessageBox('数据表创建失败','提示',64); end;end;procedure TForm1.Button3Click(Sender: TObject);var DBName,s_sql:string;begin//删除数据表 ADOQuery1.Close; ADOQuery1.SQL.Clear; s_sql:=' drop table T '; ADOQuery1.SQL.Add(s_sql); try ADOQuery1.ExecSQL; Application.MessageBox('数据表删除成功','提示',64); except Application.MessageBox('数据表删除失败','提示',64); end;// 删除数据库 DBName:=ExtractFileDir(Application.ExeName)+'\DB.MDB'; try DeleteFile(DBName); Application.MessageBox('数据库删除成功!','提示',64); except Application.MessageBox('数据库删除失败!','提示',64); end;end;end. http://expert.csdn.net/Expert/topic/749/749317.xml?temp=.9471399 为什么我做的文件管理器里的 复制 粘贴 和剪切不能用啊? 设置页边宽边距 建了一个FORM1,再建一个FORM2,怎么 建? 怎么把内存中OpenPictureDialog里的内容清空? 散分啊,120分啊,我 几个问题 都没有回答啊, 紧!! 100分購買treeview源碼 Excel控件 超级初级的问题,除了我之外,这的人似乎都会。 Delphi5中有TRegistry类吗? 为什么在别人的程序上只有加一个空FORM然后运行就出错了,这样这样帮这人改程序呀究竟这人的程序做了什么手脚 【回家了,散分,再问个买火车票的问题】
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;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB, comobj;type
TForm1 = class(TForm)
ADO: TADOConnection;
ADOQuery1: TADOQuery;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button2Click(Sender: TObject);
var Source,str_sql:string;
CreateDB:Variant;
begin
//判断数据库是否已经存在
if FileSearch('DB.MDB',ExtractFileDir(Application.ExeName)+'\')<>'' then
begin
Application.MessageBox('数据库已经存在!','提示',64);
exit;
end;
// 创建数据库
Source:=' Provider=Microsoft.Jet.OLEDB.4.0; '
+' Data Source= '
+ExtractFileDir(Application.ExeName)
+'\DB.MDB';
try
CreateDB:=CreateOleObject('ADOX.Catalog');
CreateDB.Create(Source);
Application.MessageBox('数据库创建成功','提示',64);
except
Application.MessageBox('数据库创建失败','提示',64);
end; //创建数据库中的表
ADO.ConnectionString:=Source;
ADO.Connected:=true; ADOQuery1.Connection:=ADO;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
str_sql:=' create table T ( ID char(10) ) ';
ADOQuery1.SQL.Add(str_sql);
try
ADOQuery1.ExecSQL;
Application.MessageBox('数据表创建成功','提示',64);
except
Application.MessageBox('数据表创建失败','提示',64);
end;end;procedure TForm1.Button3Click(Sender: TObject);
var DBName,s_sql:string;
begin
//删除数据表
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
s_sql:=' drop table T ';
ADOQuery1.SQL.Add(s_sql);
try
ADOQuery1.ExecSQL;
Application.MessageBox('数据表删除成功','提示',64);
except
Application.MessageBox('数据表删除失败','提示',64);
end;// 删除数据库
DBName:=ExtractFileDir(Application.ExeName)+'\DB.MDB';
try
DeleteFile(DBName);
Application.MessageBox('数据库删除成功!','提示',64);
except
Application.MessageBox('数据库删除失败!','提示',64);
end;
end;end.