hur.cn - 华软网

 热门搜索

数据库菜鸟问题

  作者:未知    来源:网络    更新时间:2017/9/29
我建的ASA数据库有3个文件.db、.log、.mlg
这是我在备份数据库时的一些问题,请各位大侠帮帮我这个菜鸟啊,跪谢!
1、我把这三个文件剪切到别处再剪切回来数据库就连不上了,好像是数据库文件损坏,但是用正常的数据库备份再粘贴确没出现问题,不知道这是为什么?
2、我用filecopy命令来备份数据库文件,为什么只能创建新的文件,而无法再覆盖呢,第三个参数我用了TRUE。
3、filedelete("文件路径及文件名")不知道对不对,我好像什么也删不掉。
4、我建的数据库方式不太一样,只备份.db和.log好像不行(好像内容都在mlg里),还要备份.mlg文件,不知道这个是什么文件,怎样能让数据库不再产生它呢?
5、怎样用dbbackup命令来备份.mlg文件呢?我只会备份.db和.log。
大家谁知道哪个请帮我解答一下。谢谢!!!
------华软网友回答------
1、有没有再重新设置了ODBC配置
2、integer li_FileNum
   li_FileNum = FileCopy ("jazz.gif" ,  "C:\emusic\jazz.gif", FALSE)//TRUE覆盖,FALSE不覆盖

3、如果文件正在被调用是删除不了的,如果硬性删除(不管打开与否),则用API的deletefile函数(参考API大全 )

4、mlg没见过,是什么版本的ASA
------华软网友回复------
你在连接数据库时无法移动数据库
.mlg为镜像文件,在建立数据库时你选择的,可以不选。
------华软网友回复------
1.我没有从新设置ODBC也是在没有连接数据库的情况下去剪切的。连接情况下无法剪切吧。
3.我是把数据库文件复制到了另一个文件夹下,不会被调用。
.mlg是我选的,看来很麻烦,有办法在数据库内容不变的情况下去除这个选项吗?
------华软网友回复------
啊,你的第一个问题,我也遇到过啊!我还以为是ASA数据库自己的BUG呢!那时好郁闷啊!客户和我都快疯了!求高手指点,我帮你顶!
------华软网友回复------
回答你第二个问题:
FileCopy ()
功能:复制文件也可以指定是否覆盖同名的目标文件
语法FileCopy ( sourcefile, targetfile {, replace } )
参数sourcefile String 类型指定要复制文件的名称源文件名
targetfile String 类型指定复制到哪一个文件目标文件名
replace Boolean 类型指定当目标文件已经存在时是否覆盖同名文件True
– 覆盖同名文件False – 不覆盖同名文件
返回值Integer 函数执行成功时返回1 不能打开源文件时返回1 不能写入目标
文件时返回2
注意:当源文件名或目标文件名中未指定全路径时则根据当前目录搜索路径即文件的路
径是用相对于当前目录的相对路径如果未指定replace 那么就像将replace 参数指定为
False 那样不覆盖已有文件。
看看你是不是这个问题的原因。
------华软网友回复------
我帮你查了FileDelete()函数:
功能:删除指定的文件。
语法:filename:string类型,指定要删除文件的文件名,其中可以包含路径。
返回值:Boolean,函数执行成功是返回TRUE,发生错误时返回FALSE,如果filename参数的值为NULL,那么返回NULL。
举个例子:下面的代码删除用户在“打开文件”对话框中选择的文件:
integer ret,value
string document ,named
value = GetFileOpenName("select file,"docname,named,"DOC","Doc Files(*.DOC),*.DOC")
if value = 1 then
ret = messagebox("删除","删除文件么?",Question!,OKCancel!)
end if
if ret = 1 then
FileDelete(docname)
end if
------华软网友回复------
啊,那第一个问题,早先我经常遇到,只要换一个目录去连接数据库,刚开始连几次还可以,过几次就再也连不上了,好像就损坏了,我感觉好像与.log文件有点关系。

filedelete("c:\abc\backup\aaa.db")这样直接给出路径,并且不检查返回值按道理可以成功吗?

还有个问题,在程序运行时,我断开数据库,然后用filecopy()来拷贝文件.mlg .db .log 但是只能考.mlg 和 .log,而.db确无法拷贝,不知怎样才能用filecopy()命令来拷内它呢?
------华软网友回复------
FileDelete //删除上次输出的原文件
------华软网友回复------
在sql anywhere5.0\win32\ 目录中可以找到dbbackup.exe。再在Ms-dos方式下用命令dbbackup /? 或者在sql anywhere中的帮助下查看其命令开关。如想将C:\hello目录下的数据库文件hello.db备份到d:\backup目录下,其用法如下:
  dbbackup -c "uid=dba;pwd=sql; dbf=c:\hello\hello.db" d:\backup 
  在pb脚本中用run函数运行:
  run("dbbackup -c ~"uid=dba;pwd=sql; dbf=c:\hello\hello.db~" d:\backup")。
  恢复时将备份的文件考回即可。
  详细用法可以查帮助。


------华软网友回复------
.log 运行记录 .mlg 系统错误信息      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。