简单问题,我想得到我的数据库大小,然后若大则将一个表中的记录写到一个新数据库中,然后删除。。。(100分)

  • 主题发起人 主题发起人 zxp_ping
  • 开始时间 开始时间
Z

zxp_ping

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在的问题是:
1。如何得到文件大小?
2。如何代码创建数据库,新建表。。
3。。。。?
 
没人回答?
 
这么看不起新手吗?
 
//若大则将一个表中的记录写到一个新数据库中
是什么意思
 
保持数据库不能过大!文件大小,如大于多少M呀。
 
写一个程序不断检测数据库文件大小,当超过以后,将数据BatchMove到别的另外的数据库中
 
用什么数据库呀?
 
1、仅仅是实现到表,我觉着没有必要判断数据库的大小,判断表不就行了吗?
2、创建数据库给你一段代码。
USE master
CREATE DATABASE TempDate
ON
PRIMARY
(
NAME = Data,
FILENAME = '[file_path]data.mdf',
SIZE = 101,
FILEGROWTH = 80%
)

LOG ON
(
NAME = TempLog
FILENAME = '[file_path]Templog.ldf',
SIZE = 25,
FILEGROWTH = 20%
)
创建表:
if exists (select * from sysobjects where id = object_id('a')
and sysstat & 0xf = 3)
drop table a
/*GO*/
CREATE TABLE a
(
...
)
/*GO*/
具体用法看sql的帮助
 
代码我拷过去不行呀!
 
为何没人回答?我只想导入导出数据库的一个表到一个新数据库而以。很难吗?
 
我觉得你应该使用ERwin,设计你的数据库,
这样你就可以根据ER图生成数据库的脚本,根本不用自己手写创建数据库!
 
我现在系统已经成型了,只是做一点小改动而以。因为数据库大了后会导致运行速度慢,故我想将
一些历史记录导出。。但已经用的ACCESS,是否有什么好方法??
 
把数据库升级到Sql server 或Oracle。
 
首先你要确定你的新表的字段和你旧表的字段是否相同
然后你先将旧表遍历取出其中所有的数据,然后付给新表就行了!
 
var
i,j:Integer;
begin
with 你要导出数据的表 do
begin
Close;
SQL.Clear;
SQL.add('SELECT * FROM 你要导出数据的表 WHERE 字段='''+ 条件+ ''');
Open;
for i := 0 to recordcount - 1 do
begin
for j := 0 to fieldcount - 1 do
FArray[i,j] := Fields[j].asInteger;//条件得到所有符合条件的记录
next;
end;
end;
end;
然后你只要把 FArray[i,j] 显示出来在把它们删掉就ok了!
 
问题是我要备分形式,先创建一个数据库,然后再建相同结构(如果有复制表的函数更好),
再将记录转移过去。。。
 
那你可以用你原来创建数据库时的代码啊!加在前面不就行了!
 
原来的数据库不是动态创建的呀。只对记录操作,。。
 
你可以将你的数据库生成sql脚本,这样不就行了!
 
生成脚本?什么意思?我是用ACCESS 97...
 

Similar threads

后退
顶部