OK、上記はやや奇妙に思えるかもしれませんが、ご容赦ください...
私はレポートアプリを構築しています。SQLCE 3.5 sp1 データベースを含む .NET3.5 上の C# で。データベースを使用して、ユーザーが利用できるさまざまなレポートの sql を保存したいと考えています (したがって、ダーティ ビットについて何も知る必要はありません..)。
レポートを実行したい場合は、UI で適切なボタンを選択するだけで、データベースから関連する SQL が取得され、コードに挿入されてレポートが実行され、返されたデータが表示されます。
私はそのように構成されたテーブルを持っています -
- ReportIdx 数値、
- ReportName varchar(120),
- SQL_Txt varchar(MAX),
- コメント varchar(120)
以下の実行 -
INSERT INTO
SqlLib (ReportIdx, ReportName, SQL_Txt, Comments)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in('1', '2','3') ', 'これでうまくいくだろうか? ')<
次のエラー メッセージが表示されます -
INSERT INTO 句の値リストにエラーがあります。クエリ テキストを解析できません。エラー ソース: SQL Server Compact ADO.NET データ プロバイダー エラー メッセージ: クエリの解析中にエラーが発生しました。[ トークン ライン番号 = 3、トークン ライン オフセット = 90、トークン エラー = 1]
sql_txt 値内のコンマの前にスラッシュ (\) を挿入しようとしましたが、上記のエラーが再び表示され、SQL 挿入ステートメントが次のように変更されます -
INSERT INTO
SqlLib (ReportIdx, ReportName, SQL_Txt, Comments)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in(\' 1 \ ', \' 2 \ ',\' 3 \ ') ', 'これが機能するかどうか疑問に思いますか?')<
私が本当に知る必要があるのは、「レポートの sql を SQLCE 列に保存して、後で別のコードで簡単に取得して実行できるようにすることはできますか?」ということだと思います。SQL レポートで使用する前にさらに処理する必要がないように、内容をフォーマットすることはできますか?