急!!动态建立数据库. (100分)

  • 主题发起人 Wizard00
  • 开始时间
W

Wizard00

Unregistered / Unconfirmed
GUEST, unregistred user!
急!!动态建立数据库!
在delphi程序中,从无到有建立一个数据库,到底怎么建?
我要建立一个数据库,然后建立一些表(后者我会,用createtable),然后做数据库的基本操作
就是第一步不会

 
什么数据库,是bde还是ado.
 
创建access数据库可用adox.
如下例程在创建my.mdb:
db:=createoleobject('ADOX.Catalog');
db.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/my.mdb');

 
片断,谨供参考:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,db, dbtables,dbgrids;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
tb:TTable;
ds:TDataSource;
DG:TDbGrid;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
tb:=TTable.Create(form1);
tb.DatabaseName:='DBDEMOS';
tb.TableName:='clients.dbf';
ds:=TDataSource.Create(form1);
ds.DataSet:=tb;
dg:=TDBGrid.Create(form1);
dg.Align:=alTop;
dg.Height:=500;
dg.Parent:=form1;
dg.DataSource:=ds;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
tb.Active:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
tb.Active:=false;
end;
end.
 
To: hbezwwl
能说清楚点吗。使用ADOX,需要系统里有那些东西
比如那些*.ocx
 
什么是adox.catalog,系统为什么不认啊
 
我要自己在程序里建立一个新的access的数据库,这个数据库本来是没有的.
 
USE master
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'c:/program files/microsoft sql server/mssql/data/saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
FILENAME = 'c:/program files/microsoft sql server/mssql/data/salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
 
上面说的很清楚啊,你到底要什么,database desktop?
 
很简单 我只是想知道什么样的情况下可以使用ADOX
 
如果是在sql server中建立新的数据库,按‘天真’说的即可
 
但是,我要在程序里建,要求本地没有这个数据库.(在线等待)
 
我要建立一个数据库,然后建立一些表(后者我会,用createtable),然后做数据库的基本操作
就是第一步不会
 
你也应该说个清楚是不是桌面数据库 但看你的样子一定是建立桌面数据库了
那你还要说明白你用的是什么桌面数据库 不同的桌面数据库的建立方法也是不一样的
 
access 型的怎么建
 
我查了ACCESS的帮助,没有CREATE DATABASE的命令函数,
也可能是我的浅薄,
所以我的建议就是
新建一个TEMP.MDB作为一个模板当用户要新建库时,你就把此表拷过去,
然后你就可以用CREATE TABLE了!:)
 
To : 天真
你的方法当然可以,但这只是一个退而求其次的方法
我认为ADOX一定可以胜任 但我不知道ADOX在什么情况下可以使用
关于这个ADOX 我还在找资料

但你的方法 还有一个更好的加工 就是把temp.mdb做成资源 编译进执行文件中
需要的时候把它从资源中读出来 这样发布的时候就可以只用发部一个文件了

 
都是标准的SQL语句,看看SQL SERVER7.0这本书就知道了。
 
这个问题嘛,呵呵
可以采用动态SQL直接创建数据库,想怎么做就怎么做
当然我喜欢使用大型数据库
这主要看你的SQL功底了
 
还是用动态sql生成
 
顶部