怎样在delphi中动态新建MS Access 的数据表,以及数据库别名? 想在一台机器上建立一个原本不存在的数据库别名,“DBtest” , 路径是“c:\dbtest\”. 数据库文件是“test.mdb”, 库文件中包含一个表“users”,里面有字段“id (int), name (String),age(int)”。求教:如果用delphi动态建立以上这些东西,该如何做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;'; function CreateAccessFile(FileName:String;PassWord:string=''):boolean; //建立Access文件,如果文件存在则失败 var STempFileName:string; vCatalog:OleVariant; begin STempFileName:='d:\temp\123.mdb'; 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.Button2Click(Sender: TObject); var AccessDB:OleVariant; begin try AccessDB:=CreateOleObject('ADOX.Catalog'); AccessDB.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydb.mdb'); finally AccessDB:=VarNull; end; end; 建表直接用ADOQuery1.sql.add('create table okok(a int,b char(20))'); 明白了吧! 建别名可以用:session.addalias()//参数记不太清了自己查一下吧建数据库用sql 使用database.session.addalias()需要安装BDE //创建ACCESS2000数据库 function CreateAssess2000Database(const DatabaseName : string) : Boolean; var Cat:OleVariant; begin Cat:=CreateOleObject('ADOX.Catalog'); Cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DatabaseName); end; 赋默认值:创建:ADOQuery1.SQL.Text:='create Table tablename (字段1 Char(10) NOT NULL Default 1,字段2....)';ADOQuery1.ExecSQL;修改:ADOQuery1.SQL.Text:='Alter Table tablename2 ALTER COLUMN 字段1 number(10)';ADOQuery1.ExecSQL; 创建新窗口的几种方式比较 怎样在WebBrowser1中打开一张网页? 一个更新数据库内容的问题! 求像combobox的控件,但用户不可更改内容只能选,在线等,马上给分 如何动态设置IP,请高手指点 线程数目多少是合适的? 小问题,今日必结贴:如何在局域网内共享MODEM上网? 关于出库循环减库存的问题 龙游图:每个人都想吃肉的观念是非常错误的 l_jia(_):你好!来领分 求连接Internet上SQL数据库的连接字符串 哪位大哥能让RichEdit不能输入中文?很多大论坛都没能结决!
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:='d:\temp\123.mdb';
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;
var AccessDB:OleVariant;
begin
try
AccessDB:=CreateOleObject('ADOX.Catalog');
AccessDB.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydb.mdb');
finally
AccessDB:=VarNull;
end;
end;
建表直接用ADOQuery1.sql.add('create table okok(a int,b char(20))');
明白了吧!
建数据库用sql
function CreateAssess2000Database(const DatabaseName : string) : Boolean;
var
Cat:OleVariant;
begin
Cat:=CreateOleObject('ADOX.Catalog');
Cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DatabaseName);
end;
ADOQuery1.SQL.Text:='create Table tablename (字段1 Char(10) NOT NULL Default 1,字段2....)';
ADOQuery1.ExecSQL;修改:
ADOQuery1.SQL.Text:='Alter Table tablename2 ALTER COLUMN 字段1 number(10)';
ADOQuery1.ExecSQL;