InterBase 数据库的 TTable 连接怪问题——By CJ(50分)

  • 主题发起人 主题发起人 CJ
  • 开始时间 开始时间
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!

改别人的一个程序,开发环境如下:
数据库:BCB 4的Interbase 5.5 对方用的版本不详!
工 具:Borland Delphi 4 Client/Server Suit
连 接:TwwTable->TwwDataBase->SQL Links->InterBase client->InterBase Server //Info power
平 台:对方用 98 我用 NT SRV
错 误:General SQL Error,Column unknown
R.RDB$FIELD_SOURCE//每个表都是这错误
Server-206
BDE error:13059 [$33] [$ 3]
注:TwwDatabase 连接是正常的。
==============================================================================
目前进展:
1、用 InterBase ISQL 查询此表无问题;
2、用 TTable 连接此表也有同样问题;
3、用 TTable/TwwTable 连接其它表均无问题;
4、用 TQuery 连接此表无问题;
5、用 DataBase Desktop 可以打开数据库,但无法打开表!
==============================================================================
不知哪位大侠遇到过类似问题,请不吝赐教!
不要告诉我用 TQuery,是人家的程序,没办法的!
==============================================================================
解决过程:
抱着死马当活马医的态度:
[Server Manager->DataBase validate]
database file appears corrupt ()
-bad checksum
-checksum error on database page 76
再试一次:
[DataBase validate]
bad parameters on attach or create database
-secondary server attachments cannot validate databases
原来是数据库损坏!可怎么会用Query 能够访问呢?
再来:
[DataBase Shutdown]
[DataBase Restart]
[DataBase validate]
No database error validate detected
?好了?用Delphi打开,错误依旧!
????
再看看!
[DataBase validate->选Record validate]
12 index page errors
[按Repaire]
哈哈,这下好了,保险期间,再来!
[DataBase validate->选Record validate]
12 index page errors
啊?怎么???
[按Repaire]
重复,每次都这样!修不好???
火大了!
[开ISQL]
[Extract Database]
[Run script]
重新建个一模一样的数据库算了!
==============================================================================
后记:
可能是版本冲突遇到的问题。不知道类似问题还有什么好的解决方法?
 
CJ 君:
能否给Edu.cn我处发个D4?空间无问题!
 
jams:发 D4?我没有断点续发呀,80 多 M呀!
你的两处,这里和你发给我的我都发过了,都没退,不知道是否收到
另:怎么在没人回答的问题上贴帖子呀
 
E-mail都收到了,169的信箱小,Edu.cn大。你是在Edu.cn吗?
 
CJ : 其实你的解决问题的过程已经是非常好的方法了.
逐渐缩小问题范围, 估计问题可能性, 一步步试验, 绕过一个个难以解释的
问题, 最后"退"到重建数据库. 终于完成了一个任务
如果后面还有十七、八个怎么办。

如果是我, 我会增加一个
试验, 就是删除索引,重建索引, 我估计是主键索引的问题 TTable需要
主键定位, 以便于更新. 而Tquery的问题就很少,毕竟只是一个结果集。操作时
可能会不使用索引。 Select * from Table 的方式 毕竟同Ttable 的方式有区别。
 
SeaSky:的确如此,后面还有三个数据库(不是十七八个:)))
贴完帖子,我又试过,删过索引了,没用!
我还BACKUP了数据库,然后RESTORE,也没用,唉!
一个个来吧?
faint
如果没人有好的解决方法,问题到期,分数给Seasky了
 
算了,算了,又是无头悬案
 
后退
顶部