Delphi程序中怎样创建一个Access数据库? Delphi程序中怎样创建一个Access数据库,以及数据表,然后往里面写数据??能否给个例子? 解决方案 » 免费领取超大流量手机卡,每月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:='c:\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;以下SQL语句在ACCESS XP的查询中测试通过建表: Create Table Tab1 ( ID Counter, Name string, Age integer, [Date] DateTime); 现在数据库是建起来了,但是不好意思,我还是不知道该怎么建表,或者说不懂该怎么执行上面说的sql语句。能不能给出详细点的代码? //创建access数据库(d:\dd.mdb)uses comobjconst CCreateMDB='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';procedure TForm1.Button1Click(Sender: TObject);var cat:Variant; fname:string;begin fname:='d:\dd.mdb'; cat:=CreateOleObject('ADOX.Catalog'); cat.Create(Format(CCreateMDB,[fname])); cat:=Unassigned;end;//建表//用adoquery动态创建access表举例 sqlstring := 'create table cc '+ '(tbid integer,' + ' tbindex integer,'+ ' tbname varchar(100),'+ ' tbpreid integer,' + ' rowser integer ,'+ ' cols integer ,'+ ' cellsta image,'+ ' appinfo memo,'+ ' tbre varchar(250),'+ ' primary key (tbid))' ; adoquery1.SQL.Clear ; adoquery1.SQL.Add(sqlstring); try adoquery1.ExecSQL; except showmessage( 'create failer'); end; adoquery1如何与前面创建的dd.mdb数据库关联? adoquery.connectionstring:='Provider=MSDataShape.1;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\dd.mdb;Persist Security Info=false' adoquery应该如何声明,我是把它声明为TADOQuery,然后我一运行上面的代码就出错:Access Violation at address .... 用ADOX可以的啦,具体代码我不记的了,可以上网查查。 请问clientdataset用append添加记录,对数据库取默认值的字段该如何处理呢? 编译资源文件出错 推荐一套很多人都嗤之以鼻的delphi中间件! 流中字符串的替换 用ado在sql的存储过程中用一个变量付给两个字段,为什么执行就会出错? 急!有关Indy UDP 的问题:为什么别人发给我的我收得到,我发给别人的别人收不到? RS232与RS485的区别是什么? 请问有没有第三方工具可以使DELPHI生成VXD或WDM文件 请问怎样动态访问表里面的某个字段的值, 收费控件怎么注册? 关于DELPHI使用环境的奇怪问题,请高手指教! 如何添加一个新用户?
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:='c:\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;以下SQL语句在ACCESS XP的查询中测试通过
建表:
Create Table Tab1 (
ID Counter,
Name string,
Age integer,
[Date] DateTime);
uses
comobj
const
CCreateMDB='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
procedure TForm1.Button1Click(Sender: TObject);
var
cat:Variant;
fname:string;
begin
fname:='d:\dd.mdb';
cat:=CreateOleObject('ADOX.Catalog');
cat.Create(Format(CCreateMDB,[fname]));
cat:=Unassigned;
end;
//建表
//用adoquery动态创建access表举例
sqlstring := 'create table cc '+
'(tbid integer,' +
' tbindex integer,'+
' tbname varchar(100),'+
' tbpreid integer,' +
' rowser integer ,'+
' cols integer ,'+
' cellsta image,'+
' appinfo memo,'+
' tbre varchar(250),'+
' primary key (tbid))' ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sqlstring);
try
adoquery1.ExecSQL;
except
showmessage( 'create failer');
end;