PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
4479 | 98/12/22 13:31:11 | RE(6):パイプラインの動的生成に失敗しました! By まこと |
4471 | 98/12/21 23:26:44 | RE(5):パイプラインの動的生成に失敗しました! By Taka |
4468 | 98/12/21 20:36:07 | RE(4):パイプラインの動的生成に失敗しました! By まこと |
4437 | 98/12/18 11:30:10 | RE(3): パイプラインの動的生成に成功しました! By Taka |
4425 | 98/12/17 18:51:26 | RE(2):PB6: パイプラインの編集は可能ですか? By まこと |
4413 | 98/12/17 14:39:53 | RE(1):PB6: パイプラインの編集は可能ですか? By Taka |
4403 | 98/12/17 13:10:29 | PB6: パイプラインの編集は可能ですか? By まこと |
カテゴリ:データベース
日付:1998年12月18日 11:30 発信者:Taka
題名:RE(3): パイプラインの動的生成に成功しました!
Takaです。ど?も。
>>PipeLine型の非表示オブジェクトを CREATE したら、その Syntax プロパティに構文を
>>設定すれば動くはずです。
>>(構文を調べるには、既存のパイプラインオブジェクトをエクスポートして見るのが早いと思います)
>
>できませんでした。
>結果は・・・ 異常終了しました。(ワトソン君が活躍します。)
くやしいので、私も時間とって実験してみました。
異常終了こそしませんでしたが、パイプラインの Start関数が -16を返してきました。
(転送元データベースでエラー。うぅ、残念。)
で、原因が解らないのでトレースとってみたら、以下のことが判明しました。
【DataObjectの設定で実行】
構文:RETRIEVE(statement=\"PBSELECT(TABLE(NAME=~\"table_name~\") COLUMN(NAME=~\"column_name~\") ?
が、\"SELECT column_name FROM table_name\" と翻訳される。
→ 正常
【Syntaxに直接構文を設定して実行】
構文:RETRIEVE(statement=\"PBSELECT(TABLE(NAME=~\"table_name~\") COLUMN(NAME=~\"column_name~\") ?
が、翻訳されずに \"PBSELECT(TABLE(NAME=~\"table_name~\")...\" と、「そのまんま」で実行される。
→ エラー (-16)
もしや!と思って、Syntaxに代入する文字列を以下のように編集してみました。
PIPELINE( ...略... )
SOURCE( ...略... )
RETRIEVE(statement=\"SELECT column_name FROM table_name\")
DESTINATION( ...略... )
この文字列を Syntaxに代入し、Startしたところ...おぉ!バッチリですね。
(でも、何で翻訳してくれないのだろう...疑問は残る)
つーわけで、まことさん、私のほうではこれで問題なく実行できました。
このテクニック、「パイプラインオブジェクト不要の汎用ツール」を作るのに使えます。えっへん。
DWの話:
>syntaxプロパティではなく、Create関数の引数なんですか?
そうです。dw_1.Object.Datawindow.Syntax は参照しかできません。
SyntaxFromSQLで得た構文を Create関数にかけるのと同じですね。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 2.3
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.