创建ACCESS数据库 ( 积分: 7 )

  • 主题发起人 主题发起人 jialiguo
  • 开始时间 开始时间
J

jialiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
ACCESS能象SQL那样写个脚本直接创建数据库中的所有表吗
 
建库需要用com
建表可以,最好一次建立一个表
 
可以的,我试过
 
http://delphibbs.com/keylife/iblog_show.asp?xid=13166
 
数据库好了,那表怎么创建?连续创建多个表吗
 
你就不会多个表分段执行吗
 
写到一个文件里,一执行就创建了所有表多好,一个一个创建,怎么处理?
 
写在一个文件里当然可以了,执行的时候可以是N次性执行对吧
 
可以象sqlserver2000 一樣通過角本建立表

try
szCmd:='CREATE TABLE t_ventes1 (F_Code char(20), f_date date';
szCmd:=szCmd+',F_SP char(12), F_REG_CODE char(10), F_PAYMODE char(2)';
szCmd:=szCmd+',F_TTC float, F_TVA float, F_TIMBRE float';
szCmd:=szCmd+',F_NETTTC float, F_kWh float, F_Jours int';
szCmd:=szCmd+',F_PartSold float, F_Part_Dhs float, F_INVOICE char(8)';
szCmd:=szCmd+',F_BANK char(2), F_AGENCE char(30), F_CHEQUE char(30)';
szCmd:=szCmd+',F_buytimes int, F_Operator char(8)';
szCmd:=szCmd+',f_totaluse float,f_max_kw float,f_balance float,f_ovd_trip int';
szCmd:=szCmd+',f_price char(4), f_wrtpwd char(18)';
szCmd:=szCmd+')';
cmd_mdb.CommandText:='';
cmd_mdb.CommandText:=szCmd;
cmd_mdb.Execute;
except
end;
 
我说话真是有问题啊,我的意识是
我想要一连续建立表
比如
create table Tempstat ( routeName varchar(255),PlaceName varchar(255),planNum int,OnTimeNum int,MissedNum int,EarlyNum int,LateNum int,NoplanNum int,rate varchar(10))

create table Tempcheckresult (id int,routeid int,classid int,CheckDate datetime,routeName varchar(255), MemberId int,beginTime datetime,OnTimeNum smallint,MissedNum smallint,EarlyNum smallint,LateNum smallint, result varchar(255),FirstDatetime datetime,LastDatetime datetime,RemarkType varchar(255),[memo] varchar(255),MemoId int)


create table Tempcheckresultdetail ( PlaceName varchar(255),checkdatetime datetime, Result varchar(10),Ontime varchar(255),Event varchar(255),Tempcheckdatetime varchar(255))


create table TempMemClass ( [id] int,RestWeekDay int,[Name] varchar(255), btime varchar(20),Etime varchar(20),week1 bit, week2 bit,week3 bit,week4 bit,week5 bit,week6 bit,week7 bit,team varchar(255),member varchar(255))


create table TempMemDateClass ( [id] int,RestWeekDay int,[Name] varchar(255), btime varchar(20),Etime varchar(20) ,team varchar(255),member varchar(255))


create table TempMemDetail ([Name] varchar(255), btime varchar(20),Etime varchar(20),week1 bit, week2 bit,week3 bit,week4 bit,week5 bit,week6 bit,week7 bit,team varchar(255),member varchar(255))


create table TempMemEvent (id int, name varchar(255), TempName varchar(255),CardName varchar(10) ,[Number] varchar(10),TempNumber varchar(10),Remark varchar(255),TempRemark varchar(255))

create table TempMemCard ( id int,cardname varchar(10), type varchar(10))

create table TempMemTerminal ( Termid int,[name] varchar(255),MemberName varchar(255))


create table TempMemLeft ( Id integer, Selstate bit ,[Name] varchar(255), state bit )

create table TempMemRight ( Id integer, Selstate bit ,[Name] varchar(255), state bit , roleflag bit )

create table TempSimplePatrol ( planDate datetime,id int,Name varchar(255),planNum int,RecordNum int,strtime varchar(255))
一下建立多张表
 
最后才用方案:
各个表中间都假了GO
一个一个表执行
try
strPath := GetAppPath+'/BSPatrol.mdb';
if FileExists(strPath) then
DeleteFile(strPath);
if FileExists(GetAppPath+'/BSPatrol.ldb') then
DeleteFile(GetAppPath+'/BSPatrol.ldb');
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+strPath);
except
Application.MessageBox('数据库正在使用!','提示',64);
end;
if not CreateDBCtrlAndConnDB then
begin
Application.MessageBox('连接数据库失败','提示',64);
Exit;
end;
strPath := GetAppPath+'BSPatrol.sql';
memExec := TStringList.Create;
s:=TStringList.Create;
memExec.LoadFromFile(strPath);
s.Clear;
try
for i := 0 to memExec.Count - 1 do
begin
if UpperCase(Trim(memExec.Strings)) <> '' then
begin
if UpperCase(Trim(memExec.Strings)) <> 'GO' then
s.Add(memExec.Strings)
else if UpperCase(Trim(memExec.Strings)) = 'GO' then
begin
try
strSql := s.Text;
Com_ExeSql(strSql);
s.Clear;
except
s.Clear;
ShowMessage(strSql);
end;
end;
end;
end;
finally
s.Free;
memExec.Free;
end;
Application.MessageBox('成功!','提示',64);
谢谢大家
 
多人接受答案了。
 
后退
顶部