高分求教-如何建立数据库(用代码)
高分求教-如何建立数据库(用代码)
楼主knife001(风之刀)2002-07-20 10:39:07 在 Delphi / 数据库相关 提问如何用代码建立数据库 问题点数:100、回复次数:4Top
1 楼yctwfly(西风狂想)回复于 2002-07-20 10:41:55 得分 100
用OLEDB.4.0,创建ACCESS数据库,但用OLEDB.3.51就会出错,并提示 "不能使用,文件正在使用中 ",请问应该怎样创建ACCESS97的数据库,并同时建表。
下面的程序能同时创建ACCESS2000的数据库和数据表:
procedure TForm5.RzCreateBtnClick(Sender: TObject);
var
AppPath,tablename,x,y,z,str,sqlstr:string;
CreateAccess,NewTable,CUM:Variant;
begin
tablename:=DateTimeToStr(Now);
x:=copy(tablename,17,2);
y:=copy(tablename,20,2);
z:=copy(tablename,23,2);
tablename:="库"+copy(tablename,1,10)+"-"+x+y+z;
AppPath:=ExtractFileDir(Application.ExeName);
CreateAccess:=CreateOleObject("ADOX.Catalog");
CreateAccess.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source="+AppPath+"\"+tablename+".mdb");
showmessage("数据库创建成功!");
ADOQuery1.ConnectionString:="";
ADOQuery1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source="+AppPath+"\"+Tablename+".mdb";
ADOQuery1.Close;
tablename:=DateTimeToStr(Now);
x:=copy(tablename,17,2);
y:=copy(tablename,20,2);
z:=copy(tablename,23,2);
tablename:="表"+x+y+z;
sqlstr:="Create Table ";
sqlstr:=sqlstr+tablename+" (ID int NOT NULL,Name varchar(50) NOT NULL,Type varchar(50) NULL,";
sqlstr:=sqlstr+"length int NULL,CFormula text NULL,EFormula text NULL,Bvalue varchar(50) NULL";
sqlstr:=sqlstr+",Nodetype varchar(50) NULL,Parent int NULL,sort int NULL,Visible bit,SB bit,Readonly bit)";
With ADOQuery1 Do
Begin
Close;
SQl.Clear;
SQl.add(sqlstr);
ExecSQL;
End;
end;
---------------------------------------------------------------
uses ComObj;
function CreateDatabase(mDatabaseName: string): Boolean;
var
CreateAccess: OLEVariant;
begin
Result := False;
try
CreateAccess := CreateOleObject("ADOX.Catalog");
try
CreateAccess.Create(Format(
"Provider=Microsoft.Jet.OLEDB.3.51;Data Source=%s%s.mdb",
));
finally
CreateAccess := Unassigned;
end;
except
Exit;
end;
Result := True;
end;
function CreateTable(mDatabaseName: string; mADOQuery: TADOQuery): Boolean;
begin
Result := False;
try
mADOQuery.Close;
mADOQuery.ConnectionString := Format(
"Provider=Microsoft.Jet.OLEDB.3.51;Data Source=%s%s.mdb",
);
mADOQuery.SQL.Text := "CREATE TABLE Table1 (Field1 varchar(10), Field2 varchar(10))";
mADOQuery.ExecSQL;
except
Exit;
end;
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteFile(ExtractFilePath(Application.ExeName) + "test.mdb");
CreateDatabase("test");
CreateTable("test", ADOQuery1);
end;
(转录)请收索以前的旧贴
Top
2 楼knife001(风之刀)回复于 2002-07-20 10:43:20 得分 0
谢谢!Top
3 楼zxd_2000(潜龙勿用)回复于 2002-07-20 10:46:36 得分 0
有些复杂了,给我个邮箱,我将我以前的代码发给你。不过是用ADO组建实现的Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
