Borland InterBase Server数据库损坏,通过ib fix 无法修复,提示,不可用数据库【unavailable database

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Borland InterBase Server数据库损坏,通过ib fix 无法修复,提示,不可用数据库【unavailable database相关的知识,希望对你有一定的参考价值。

Borland InterBase Server数据库损坏,通过ib fix 无法修复,提示,不可用数据库【unavailable database,请问还有没其它工具可修复??急用

参考技术A 3、进入Command命令窗口

4、为了避免在以下命令行中每次都输入用户名与密码,特设置以下两个变量:

SET ISC_USER=SYSDBA

SET ISC_PASSWORD=masterkey

5、对损坏的数据库进行检查:

gfix -v -full abc.gdb

6、如果上一条命令已指出这个数据库有问题,我们现在需要修复它:

gfix -mend -full -ignore abc.gdb

7、再检查一遍,看数据库是否修好:

gfix -v -full abc.gdb

8、如果仍有错误,你必须做一个数据备份与恢复操作:

gbak -backup -v -ignore abc.gdb abc.gbk

9、若上面方法备份失败,关闭垃圾收集功能试试:

gbak -backup -v -ignore -garbage abc.gdb abc.gbk

10、如果仍未备份成功,可能是在一个过渡状态的事务中记录损坏,加上-limbo参数试试:

gbak -backup -v -ignore -garbage -limbo abc.gdb abc.gbk

11、从备份文件中恢复数据(仍不成功,我也没办法了)

选择 AS 在 interbase 中不工作

【中文标题】选择 AS 在 interbase 中不工作【英文标题】:Select AS not working in interbase 【发布时间】:2011-02-18 13:52:46 【问题描述】:

作品

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff  
from Master  
where (bankcleared is not null)  
order by payeeid, DOW, DateDiff  

DateDiff 添加到Where - 不起作用

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff  
from Master  
where (bankcleared is not null)  AND (DateDiff >= 1)  
order by payeeid, DOW, DateDiff  

【问题讨论】:

对不起,我也想问....为什么将 DateDiff 添加到 where 会导致错误 - DateDiff Column unknown 因为 DATEDIFF 是一个内置函数,它检索两个日期时间戳之间的日期部分差异。 【参考方案1】:

您只能在 GROUP BY、ORDER BY 或 HAVING 子句中使用列别名。

标准 SQL 不允许您在 WHERE 子句中引用列别名。施加此限制是因为在执行 WHERE 代码时,可能尚未确定列值。

试试这个

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff
from Master
where (bankcleared is not null) AND ((bankcleared - checkdate)>= 1)
order by payeeid, DOW, DateDiff 

有关更多信息,请访问这些链接

Can you use an alias in the WHERE clause in mysql?

Unknown Column In Where Clause

【讨论】:

【参考方案2】:
select payeeid, 
       EXTRACT(WEEKDAY FROM checkdate) as DOW, 
       (bankcleared - checkdate) as DateDiff
from Master
WHERE (bankcleared is not null) 
AND   ((bankcleared - checkdate)>= 1)
Order by  payeeid, DOW, DateDiff 

【讨论】:

以上是关于Borland InterBase Server数据库损坏,通过ib fix 无法修复,提示,不可用数据库【unavailable database的主要内容,如果未能解决你的问题,请参考以下文章

从 Paradox 到 Borland C++ 5 中的 SQL Server

选择 AS 在 interbase 中不工作

Interbase 错误:SQLDA 缺失或版本不正确,或者变量的数量/类型不正确

查找旧版 firebird/Interbase 数据库密码

Interbase数据库如何删除或修改里面的资料?

firebird 数据库恢复 firebird数据库修复 interbase数据库恢复 firebird blob错误恢复