ようこそゲストさん | ログイン |

掲示板

トップページ > 過去ログ > 記事閲覧
DBベクタの削除について
日時: 2008/07/15 17:42
名前: GEOSISサポート受付

環境;WindowsXP(SP3) Geosis Ver7.0010 開発環境 VB2005


DBベクターを削除していますが、mdbのテーブル関連は削除されるのですがレイヤテーブルのが削除されない場合があります。

Page: 1 |

Re: DBベクタの削除について ( No.1 )
日時: 2008/07/15 17:43
名前: NCG

レイヤーテーブルが削除されないというのは、EDSの定義が削除されないという事でよろしいでしょうか?
EDSの定義が削除されない原因として
EDS定義を削除する前にSAVELAYでレイヤー定義を保存し、削除後にRESTORELAYで戻している為ではないかと考えられます。
つまり、
SAVELAY←削除対象のレイヤーを含んだ状態で保存
レイヤー削除
RESTORELAY←削除対象のレイヤーを含んだ状態で復元
という事になります。

MDBのテーブル関連の削除が上手くいかない場合、SQLを実行する前にDSPREFRESHコマンドのパラメータ1にCACHEを渡して、MDBのコネクションを切断してから行ってみて下さい。
Re: DBベクタの削除について ( No.2 )
日時: 2008/07/15 17:44
名前: GEOSISサポート受付

回答、ありがとうございました。

DBレイヤの追加/名前変更でも同じ流れで行っているのですが、特に異常がなかったので同じ流れを採用していました。

実行したいことは、次の場合です
*全てのレイヤ定義が「表示=0(無効)、検索=0、編集=0」を基本としているテーブルがあります。
ここに、同じ定義でレイヤを追加する場合(削除や名前変更も同じ)ですが、、、
レイヤを追加する時、別のレイヤが表示状態にある場合は"SAVELAY"を実行すると表示しているレイヤが「表示有効」に保存されてしまいます。
このため、次回の起動時に表示されないはずのレイヤが表示されてくることになります。
これを避けるために、"SAVELAY"を実行するまえに現在の状態を保存しておき、全てのレイヤ定義を一旦基本状態に定義して、テーブルを保存し、レイヤの削除や追加が登録された時点で追加時の状態に戻したいのですが、、、

このような処理の流れはどのようにしたらいいでしょうか?
表示レイヤをコレクションなどに保存して、戻すとか・・・?ご指導をお願いします。
Re: DBベクタの削除について ( No.3 )
日時: 2008/07/15 17:50
名前: NCG

DELTABLEコマンド(ADDTABLEやEDITEDSPも同様)が成功した後、SAVELAYで状態を保存しておき、
SAVETABLEが終了した後にRESTORELAYコマンドを実行されては如何でしょうか?

流れとして

DELTABLE→失敗ならエラー処理
↓成功なら
SAVELAY

SETDLAY、SETSLAY、SETELAY

SAVETABLE

RESTORELAY

SAVELAYのタイミングで削除(追加、変更)された状態でテンポラリに保存されます。(表示設定等は現在のまま)
その後、SETDLAY等でテーブルを変更し、SAVETABLEでファイルに保存します。
ファイルに保存した後、RESTORELAYを行えば、SAVELAYした時の状態に戻ります。
Re: DBベクタの削除について ( No.4 )
日時: 2008/07/15 17:51
名前: GEOSISサポート受付

ありがとうございました。
ご指導いただいた順に変更してみます。

Page: 1 |



| 利用規約 |

(C) 2024 AS Locus INC.