阅读:2084回复:6
请教:Delphi7+MapX5中紧缩表出错的问题!
<P> 如题,在图层操作时要删除选择的图元,删除后pack表,来删除tab表中的黑条如果是点图元没有任何问题,如果是线图元就出错,代码如下:</P>
<P>Map.Layers.Item[LayerName].Pack(miPackAll);</P> <P>Pack的参数如下,请高手指点! </P> <P> miPackGraphics,miRebuildGraphics,miPackIndex,miRebuildIndex,miPackData, miPackCompactDB,miPackAll </P> |
|
|
1楼#
发布于:2004-12-29 17:05
<P> 语法</P><P> OBJECT.Pack (PackType)</P><P> 部分 说明
OBJECT 表示 Layer 对象。 PackType 一个或多个 LayerPackConstants,指定要执行的打包类型。 去除已删除的记录 重建图形 打包图形 重建索引 打包索引 压缩数据库(只对 Access 表有效) 注解</P><P> 尽管打包文件的图形信息可以保存磁盘空间,但是将会导致该文件中的图形更新操作较慢,获取磁盘 控件将会牺牲处理速度。此外,如果您通过执行导入操作创建了一个 TAB 文件,可能需要打包图形 数据。</P><P> 在打包表之前,务必确保有足够的磁盘空间来存储作为初步文件的数据库复本。您不能打包只读文件。如果表的文件无法锁定用于写入访问,则将无法对表执行打包。不调用 Layer.EndAccess 方法,将无法打包为之调用 Layer.BeginAccess 方法的表。</P><P> 要重建索引和/或图形文件,不去除已删除的记录,可分别指定重建选项(例如重建图形和/或重建索引)。要使用更高的压缩比来打包索引和/或图形文件,可指定用于索引和/或图形的打包选项。如果表为 Access (DAO) 表,则您还可以在其他选项之外或通过其本身指定 "压缩" 。</P><P> 在调用 Pack 之前调用 Layer.SupportsPack 方法,查看是否 Layer 的表支持预期的打包操作。</P> |
|
2楼#
发布于:2004-12-29 09:56
<P>问题最终知道答案:tab表中的索引值不允许重复,这样就可以了!</P><P>结贴:千山暮雪(100)</P>
|
|
|
3楼#
发布于:2004-12-27 11:33
关于这个问题,还是继续要顶,难道就没有用MapX5编辑功能的吗?
|
|
|
4楼#
发布于:2004-12-20 23:47
ding
|
|
|
5楼#
发布于:2004-12-13 11:49
<P>错误信息</P><P>Project NXJTT.exe raised exception calss EAccessViolation with message 'Access violation at address OA94AD66 in module 'daengine.dll'.Read of address 00000000'.Process stopped.Use Step or Run to continue.</P>
|
|
|
6楼#
发布于:2004-12-13 11:38
顶
|
|
|