ビューを使ったデータの表示(SQLサーバー)

[戻る]
田中さん 2007/03/25(日) 10:35:57
VisualC.Net, WindowsSDK, windows2003Sv, SQLServer2000にて開発をしています。

データベースで通常のデータなら問題なくデータが表示されるのですが
ビューのデータでは「オブジェクト ○○(ビュー名)は無効です」とのエラーメッセー
ジが
でてしまい、操作できません。

プログラムとしてはレコードセットに関連づけてデータを開こうとしています。
ただ、どのあたりに原因があるのか不明です。何かヒントになる事はありませんか?
ソースコードは以下のようになります。
下のSQL文はもちろんクエリアナライザで普通に結果が出ます。
ビューを使わないレコードの場合は以下のプログラムは問題なく動きます。


  //SQL文字を作成
  szStrSQL="SELECT * FROM ○○ビュー名"

    CoInitialize(NULL);    //Comライブラリのオープン

        //オープンコネクション
        TESTHR(lpConnection.CreateInstance(__uuidof(Connection)));
        lpConnection->Open (strCnn, "", "", adConnectUnspecified);

        //レコードセット作成し、値をリンク
        TESTHR(lpRecordset.CreateInstance(__uuidof(Recordset)));
        TESTHR(lpRecordset->Open
(szStrSQL,strCnn,adOpenStatic,adLockBatchOptimistic,adCmdText));
        ↑↑ここのレコードセットのオープンでエラーが出ている↑↑

        TESTHR(lpRecordset->QueryInterface(__uuidof
(IADORecordBinding),(LPVOID*)&picRs));

        TESTHR(picRs->BindToRecordset(&tbTestData));        //デー
タをローカル変数へ収納

    //レコードセット切断
    if(lpRecordset){
        if (lpRecordset->State==adStateOpen){
            lpRecordset->Close();
        }
    }

    //データベース切断処理
    if (lpConnection){
        if (lpConnection->State == adStateOpen){
            lpConnection->Close();
        }
    }

    CoUninitialize();

田中さん 2007/03/26(月) 10:37:44
[[解決]]
すみません。
別のテストテーブルを作って実験した所、
初めはViewだから特別な動きをしているというように思っていたのですが、
データベースのViewの作り方に問題があったのではないか?
という事が分かってきました。
解決はしていませんが ひとまず解決のチェックを入れます。

どうもすみませんでした

田中さん 2007/03/26(月) 16:21:20
最終的に解決しました。
クライアントによって権限レベルが違い、そこではじかれていたようでした。

古いスレッドには追加発言できません。