首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Clipper在数据字典中创建索引

使用Clipper在数据字典中创建索引
EN

Stack Overflow用户
提问于 2012-12-12 00:07:24
回答 3查看 757关注 0票数 0

我正在将现有的Clipper代码从自由表转换为数据字典。我可以对表进行读写,但不能创建索引。

代码如下:

代码语言:javascript
复制
connSaisie := DacSession():new(GetSsoConnection(1))
connSaisie:SetDefault()
DbeInfo( COMPONENT_DATA, ADSDBE_RIGHTS_MODE, ADSDBE_CHECKRIGHTS  )
DbeInfo( COMPONENT_DATA, ADSDBE_LOCK_MODE, ADSDBE_PROPRIETARY_LOCKING )
DbeInfo( COMPONENT_DATA , ADSDBE_TBL_MODE, ADSDBE_CDX )
DbeInfo( COMPONENT_ORDER, ADSDBE_TBL_MODE, ADSDBE_CDX )

DBUSEAREA (.F., , "Nomencla", connSaisie, .F., .F.)  
cTag:="SEBTAG"
SELECT Nomencla
Index on Code_nomen + Padl(Alltrim(Nom_champ1), 5, "0") +;
Padl(Alltrim(Nom_champ2), 4, "0") +;
Padl(Alltrim(Nom_champ3), 3, "0") TAG (cTag)

Set Order to TAG (cTag)

(GetSsoConnection(1))语法负责检索正确的连接字符串。

问题是索引是在可执行目录中创建的,而不是在为数据字典定义的数据库或临时文件夹中创建的。

我期待着任何帮助或指针,并非常愿意提供一个sql脚本来创建一个示例表来重现这个问题。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2012-12-13 06:58:07

我认为您需要INDEX ON命令的TO子句,以便指定创建索引的目录(而不仅仅是订单的名称)。我没有尝试过,因为我没有Clipper (尽管我可能可以在工作中挖掘出来:-)。

此页面建议可以更改目录:http://www.itlnet.net/programming/program/reference/c53g01c/ngcc94d.html (适用于Clipper5.3)

代码语言:javascript
复制
INDEX ON <expKey> TAG <cOrderName> TO <cOrderBagName>

但是,它没有说明在TO子句中实际是如何指定目录的。

This page包含行'INDEX ON ID TO (cFileName)',所以我认为你可以使用INDEX ON blah TAG (cTag) TO ("d:\example\SEBTAG") (也许需要一个文件扩展名)

票数 2
EN

Stack Overflow用户

发布于 2012-12-14 00:35:47

如果我没记错的话,Advantage Clipper Library仅使用数据字典作为AIS (Advantage Internet Server)通信的身份验证机制,但是这些表是在字典之外打开的。

在这种情况下,我不相信Clipper对数据字典中的任何默认设置等有任何了解。

您是在使用裁剪程序,还是在使用支持裁剪语法但生成32位应用程序的其他语言中的一种?

票数 2
EN

Stack Overflow用户

发布于 2012-12-14 05:12:11

感谢您的帮助,但我已经通过删除所有这些调用并将其替换为永久索引来解决(或者更确切地说是绕过了)这个问题。

再次感谢您的投入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13823846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档