0

サーバーで実行されているJSで単純なSQLステートメントを使用しています。声明は

SELECT Record FROM RecordMap

ここでは、変数から「Map」という単語をプラグインします。このクエリを try/catch 内で実行すると、キャッチされた例外からログに記録されたエラーが発生します - 要求された名前または序数に対応するコレクションに項目が見つかりません。

SQL+ を使用して同じクエリを実行すると、正しい結果が返されます。

コード スニペットを以下に貼り付けます。(ログ機能は、渡された文字列をtxtファイルに記録するだけです。このエラーをデバッグするために使用しています)

(ローカル マシンで MS SQL Server 2005 を使用しています)

        var sqlText = "SELECT Record FROM " + batch[i].map;
        Log(sqlText);
        var Record = "";     
        try
        {
            var rs = sqlConnection.Execute( sqlText );
            if ( !rs.EOF )
            {
                if(rs(1).value != null)  Record = rs(1).value; 
            }
        }
        catch(x)
        {
            Log(x.message);
        }
        rs.close();
4

1 に答える 1

0

クライアント側のコーディングを行ってからしばらく経ちました。

ただし、序数位置は通常、 x が範囲外である rs(x) を参照しようとしていることを意味します。レコード セットが 1 ベースまたは 0 ベースであると確信していますか。

また、sqlText を出力して、正しい T-SQl を SQL Server に渡していることを確認します。

乾杯

于 2013-08-13T20:51:08.020 に答える