既存の Clipper コードをフリー テーブルからデータ ディクショナリに変換しています。テーブルの読み書きはできますが、インデックスを作成できません。
コードは次のとおりです。
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 スクリプトを喜んで提供します。
ありがとう !