2

MS SQL Server 2008 で TVP ストアド プロシージャを作成しました。

CREATE PROCEDURE [TVPSP] @CID INT
    ,@OID INT = NULL
    ,@GAS ParamTypeTVP readonly
    ,@ErrorText VARCHAR(100) OUTPUT
AS
BEGIN
    select 1

    RETURN
END

TVP タイプも作成しました。

CREATE TYPE [MDF].[ParamTypeTVP] AS TABLE(
    [ParamID] [int] IDENTITY(1,1) NOT NULL,
    [pInt1] [int] NULL,
    [pVarchar1] [varchar](777) NULL,
    PRIMARY KEY CLUSTERED 
(
    [ParamID] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)

Powerbuilder 組み込みメソッドを使用して宣言を生成しました。結果は次のとおりです。

function long TVPSP(long CID,long OID,string GAS,ref string ErrorText) RPCFUNC ALIAS FOR "TVPSP"

ご覧のとおり、PB は TVP パラメータの文字列変数を生成しましたが、これは false です (もちろん、PB からの呼び出しは失敗します)。どうにかして機能させることは可能ですか?もちろん、回避策のアイデアはありますが (たとえば、TVP パラメーターを無視するようにラッパー sp を作成するなど)、TVP でこのように機能させる方法を知りたいです!

事前にt​​hx!

ガボール

4

1 に答える 1

1

悪いニュースです。PB12.5 ドキュメントのこれに基づいてサポートされていない可能性があります。

サポートされていない SQL Server 2008 の機能

PowerBuilder SNC インターフェイスは、SQL Server 2008 で導入されたユーザー定義テーブル タイプ (テーブル構造の定義を表すユーザー定義タイプ) をサポートしていません。

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.help.pb.12.5/title.htm

試し続けたい場合 (意志がある場合は方法があります)、文字列の代わりに「任意」のデータ型を使用するか、テーブルに一致する構造を作成して、代わりに構造の配列をパラメーターとして渡します。文字列。

于 2013-07-18T18:22:28.807 に答える