你先了解下VFP中数据库的 *** 作:
1、创建并打开一个数据库。
CREATE
DATABASE
[DatabaseName
|
]
参数
[
DatabaseName|
]
指定要创建或打开(创建对话框)的数据库名,可以指定一个数据库名及其保存位置。忽略这些参数也会打开创建(Create)对话框。数据库文件以扩展名
dbc
保存。注意:
如果
SET
SAFETY
命令设置为
ON,且在用户指定的路径中已经存在同名的数据库,Visual
FoxPro
将提示用户为数据库指定一个不同的路径或名称。
2、打开数据库。
OPEN
DATABASE
[FileName
|
]
[EXCLUSIVE
|
SHARED]
[NOUPDATE]
[VALIDATE]
参数
FileName
指定要打开的数据库名。如果没有为文件指定扩展名,则
Visual
FoxPro
自动指定为
dbc
扩展名。如果省略
FileName,则显示打开对话框。可以指定路径名作为数据库名的一部分。
注意:
如果磁盘或目录名中包含叹号(!),则
Visual
FoxPro
将不能识别路径名。
3、关闭各种类型的文件。
CLOSE
[ALL
|
ALTERNATE
|
DATABASES
[ALL]
|
DEBUGGER
|
FORMAT
|
INDEXES
|
PROCEDURE
|
TABLES
[ALL]]
参数
ALL
关闭当前及所有工作区中所有打开的数据库,
表,
和索引,并选择
1
号工作区。CLOSE
ALL
也关闭任何使用
FCREATE(
)
和
FOPEN(
)
低级文件函数打开的文件,以及任何使用
SET
PROCEDURE
打开的过程文件。CLOSE
ALL
不关闭使用
SET
打开的文件。CLOSE
ALL
也关闭:
表单设计器
“项目管理器”
标签设计器
报表设计器
查询设计器
CLOSE
ALL
不关闭这些:
命令窗口
调试(Debug)窗口
帮助
“跟踪”窗口
CLOSE
ALTERNATE
关闭使用
SET
ALTERNATE
打开的替代文件。
CLOSE
DATABASES
[ALL]
关闭当前数据工作期中的当前数据库和表。如果没有当前数据库,所有当前数据工作期的所有工作区中打开的自由表,
索引,
和格式文件都被关闭,并选择
1
号工作区。
注意:NEW
如果数据库在“项目管理器”的节点中展开或在一个运行的表单的私有工作期中被打开,则在“命令”窗口中使用
CLOSE
DATABASES
命令不能关闭此数据库。在此情况下,直至“项目管理器”关闭它或使用它的表单关闭它,否则该数据库一直是打开的。
指定
ALL
关键字,则关闭当前和所有非活动数据工作期中的以下项目,并选择
1
号工作区:
所有打开的数据库及其中的表,
除了在其他数据工作期中当前选择的数据库
或
在其他数据工作期中打开的数据库及其中的表
以外。
所有打开的自由表。
所有工作区中的全部索引及格式文件。
CLOSE
DEBUGGER
关闭
Visual
FoxPro
调试器。
CLOSE
FORMAT
关闭使用
SET
FORMAT
命令打开的当前工作区中的格式文件。
CLOSE
INDEXES
关闭当前工作区中所有打开的索引文件(只有
单项索引idx
和
独立复合索引cdx
文件
二者)
。不关闭结构复合索引(与表自动同时打开的
cdx
文件)。
CLOSE
PROCEDURE
关闭使用
SET
PROCEDURE
打开的过程文件。
CLOSE
TABLES
[ALL]
关闭当前选择数据库的所有表。如果没有已打开的数据库,CLOSE
TABLES
关闭所有工作区中的所有自由表。包含
ALL
将关闭所有数据库中的所有表,及所有自由表。所有数据库仍保持打开。当执行一个事务时,不应执行
CLOSE
TABLES
命令;否则
Visual
FoxPro
将产生一条错误信息。
在服务中关闭:
OracleOracle_homeTNSListener 对应于数据库的监听程序
OracleServiceSID 对应于数据库的例程
OracleDBConsoleSID 对应于Oracle Enterprise Manager(OEM)
其中,Oracle_home表示Oracle主目录,如Oracle11g_home1;SID表示Oracle系统标识符,如OracleServiceMAG01的MAG01。
比较好的启动顺序是:OracleOracle_homeTNSListener,OracleServiceSID,OracleDBConsoleSID。
关闭时次序相反。
下面给出了自己写的已经排好顺序的启动和停止服务的两个批处理文件:
//启动Oracle
Start Oraclebat
@echo off
echo 确定要启动Oracle 11g服务吗?
pause
net start OracleOraDb11g_home1TNSListener
net start OracleServiceMAG01
net start OracleDBConsolemag01
echo 启动Oracle 11g服务完成,请确认有没有错误发生。
Pause
//关闭Oracle
Stop Oraclebat
@echo off
echo 确定要停止Oracle 11g 服务吗?
pause
net stop OracleDBConsolemag01
net stop OracleServiceMAG01
net stop OracleOraDb11g_home1TNSListener
echo 停止Oracle 11g服务完成,请确认有没有错误发生。
Pause
1、shutdown normal (从字面就可理解这是一个用正常的方式来关闭数据库。) 2、shutdown immediate (立即方式关闭数据库。) 当执行shutdown immediate时,数据库并不立即关闭,而是在Oracle</A>执行完内部的必要的工作后才关闭,shutdown immediate可以完成shutdown不能对数据库关闭的 *** 作。建议DBA们常用此方法关闭数据库 3、shutdown abort (直接关闭数据库) 这个停止的方法不推荐,因为对于正在访问数据库的会话会被突然终止,可能会造成数据库的数据丢失,并且如果数据库中有大量 *** 作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。 举例说明: 1、停Oracle # su – oracle $ lsnrctl stop $ svrmgrl >connectinternal >shutdown immediate >exit 相应的启动Oracle的方法如下: # su – oracle 以ORACLE用户身份进入 $ svrmgrl 打开ORACLE的管理器 >connectinternal 建立库的连接 >startup 启动数据库 >exit 退出管理器 $ lsnrctl start 启动监听 $lsnrctl status 查看监听的状态
跟你举个例子,
内存是一个有10个蹲位的厕所
而你上面那个就代表了有一个人进入一个蹲位,当这个人解决问题后,则必须dbclose(),也就是你要离开这个蹲位,不离开可以吗,不离开当然可以,但问题是如果你不离开,对你也没有什么好处,如果10个人都这样不离开(不进行dbclose()),那么第11个人只能在外面忍着了。简直就是损人不利己的事
以上就是关于在vfp中怎么关闭指定的数据库全部的内容,包括:在vfp中怎么关闭指定的数据库、Oracle数据库如何关闭、如何用语句关闭oracle数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)