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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.