zeoslib:程序中删除数据表后,GetTableNames语句仍然显示该表存在的处理

环境:firebird2.5,zeos7.0,lazarus1.1,fpc2.6.1。

问题描述:

    用程序创建一张数据库表,例如tb1,使用语句 drop table tb1 删除tb1表。

    不退出程序,在程序中使用语句 Conn.GetTableNames('', sTblList); 获取所有表的名称,已经删除的tb1表,仍然显示在 sTblList 列表中。

问题解决:

    在使用 Conn.GetTableNames('', sTblList); 语句之前,清除metadata缓存数据:


    ZConn.DbcConnection.GetMetadata.ClearCache; // 该语句清除元数据缓存
    ZConn.GetTableNames('', sTblList);     

(2014.2.10)

posted @ 2014-02-10 10:16  cuibq  阅读(150)  评论(0编辑  收藏  举报