2016-07-08 13 views
0

私は、購入したレポートソフトウェアで正しく機能する必要のある定義済みのSQLデータベースを持っています。これまでに報告ソフトウェアを使用してデータの列を取得すると、system.indexoutofrangeexceptionエラーが発生します。最初のテーブルではすべてのセミコロンを置き換えました ';データ内にスペースを入れて問題を修正しました。この列には、データのみのセミコロン内に他の特殊文字はありません。サーバー2012 R2 SQLデータベースの変更列ntextからnvarcharへ

ただし、照会する必要がある2番目の列のデータには、おそらく無効なすべての種類の文字が含まれています。列の種類はntextで、新しいエントリがあるたびにSQLデータベースのデータを直接変更するか、形式をnvarchar(max)またはnvarchar(1024)に変更するだけで十分ですか?

私はsqlで緑を超えています。

+0

これはSQL自体の例外ではありません。私はあなたがこのレポートソフトウェアを作る会社に連絡する必要があると思う、または何とかこれは実際のプログラミングやデータベースの質問になるようにこのソフトウェアを超えてあなたの質問を得る。実際のデータベースステートメントが実行されているか(SQL Server Profiler?)、またはこのソフトウェアが実行されているコードを確認できますか? –

+0

レポートソフトウェアで実行されているコードを見ることができませんが、SQLサーバープロファイラを使用してデータを調べることができます。トレースファイルを保存しました。それは 'exec sp_cursor 18015003,40,1'に続きます。 この場合の最後の桁は、最大1055までインクリメントします。 – CAL

+0

ブラックボックスで誰かが手助けすることは非常に困難です。私は報告ツールに合うようにデータを変更すること、特にどのキャラクターがツールを壊しているのかを知ることを躊躇しています。 –

答えて

0

あなたの問題は、データベースのデータ型ではなくデータそのものに関係している可能性が高いです。

ご使用のレポートソフトウェアには、データが満たしていない特定の要件があるようです。

+0

私はあなたのコメントに同意します。データテーブル内のデータはレポートソフトウェアと連携していません。このソフトウェアはSQLクエリを生成し、データをExcelに取り込みます。制限があるため、レポートソフトウェアは、SQLデータテーブル内に無効な文字を自動的に取り除く方法を持っていますか? ソフトウェア SELECTレコードID、DateTimeOccurred、のEventSource、場所、リソース、ユーザー名、DateTimeLogged、AttachmentCount、メッセージ レコードID ASC BY [log_AuditEventLog] ORDER FROMために、次のようにSQL文があります – CAL

関連する問題