メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

質問:
Access DB と、情報を格納SQLテーブルがあります。 SQL 7.0 のリンク サーバー機能では、SQL データベースの別のデータベースとして Access DB をSQLしました。 また、Access DB からテーブルにレコードをコピーするストアド プロシージャSQLしました。 ISQL/Query Analyzer から実行すると、ストアド プロシージャが実行され、正しく動作します。 Dexterity からストアド プロシージャを呼び出す場合、SQL Server から次のエラー メッセージが生成されます。異種クエリでは、接続に対して ANSI_NULLS オプションと ANSI_WARNINGS オプションを設定する
必要があります。 これにより、一貫性のあるクエリ セマンティクスが保証されます。 これらのオプションを有効にし、クエリを再発行します。Dexterity からこのストアド プロシージャを実行できますか。


回答:
はい。ただし、ストアド プロシージャを少し変更する必要があります。 失敗する理由は、dexterity で SQL テーブルを正しく読み取る場合、これらのオプションをオフにする必要があります。そのため、Dexterity のストアド プロシージャを呼び出すことによって、ストアド プロシージャを実行する前にこれらのコマンドが発行されます。 ユーザーは、これらのルールに違反するデータがテーブルに導入SQLがあります。 次の例では、table_accessテーブルを示します。 このtable_testテーブルSQLです。

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


INSERT INTO access_table ( DOCNUMBR, DOCAMNT )

SELECT access_test.DOCNUMBR, access_test.DOCAMNT

FROM access_test


GO



ストアド プロシージャを変更して、次のように警告を設定できます。

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


set ANSI_NULLS ON

SET ANSI_WARNINGS ON


exec access_table2 ( DOCNUMBR, DOCAMNT )


GO



この場合、ストアド プロシージャは、呼び出し元の属性を継承します。 このような場合、Dexterity は theaccess_tableprocedure を呼び出し、ANSI_NULLS & ANSI_WARNINGS をオンにし、実際のストアド プロシージャを呼び出してパラメーターを渡します。


この記事は TechKnowledge Document ID:10011 でした

TechKnowledge コンテンツ

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×