【问题标题】:store a sql report in a sqlce text field?将 sql 报告存储在 sqlce 文本字段中?
【发布时间】:2012-06-28 20:34:21
【问题描述】:

好的,以上内容可能看起来有些奇怪,但请多多包涵……

我正在构建一个报告应用程序。在 .NET3.5 上的 C# 中,它包含一个 SQLCE 3.5 sp1 数据库。 我想使用数据库来存储可供用户使用的各种报告的 sql(这样他们就不必知道任何关于脏位的事情......)。

当他们希望运行报告时,他们只需在 UI 上选择适当的按钮,然后它就会离开并从数据库中获取相关的 sql 并将其插入一段代码以运行报告,随后向他们展示返回数据。

我有一个这样的表格 -

  • ReportIdx 数字,
  • 报表名称 varchar(120),
  • SQL_Txt varchar(MAX),
  • 评论 varchar(120)

运行以下 -

插入
SqlLib (ReportIdx、ReportName、SQL_Txt、评论)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in('1', '2','3') ', '想知道这是否可行?')

我收到以下错误消息 -

INSERT INTO 子句中的值列表错误。 无法解析查询文本。 错误来源:SQL Server Compact ADO.NET 数据提供程序 错误消息:解析查询时出错。 [Token line number = 3, Token Line offset = 90, Token in error = 1]

我尝试在 sql_txt 值内的逗号前插入正斜杠(\),但上述错误再次出现,sql insert 语句更改如下 -

插入
SqlLib (ReportIdx、ReportName、SQL_Txt、评论)
VALUES (3, 'TestRowInsert02', 'select * from test_table where testid in(\' 1 \ ', \' 2 \ ',\' 3 \ ') ', '想知道这是否可行?')

我想我真正需要知道的是'我可以将报表的 sql 存储在 SQLCE 列中,以便可以简单地检索它并随后在另一段代码中运行吗? 我可以对内容进行格式化,以便在我可以在 SQL 报告中使用之前不需要进一步处理?

【问题讨论】:

  • 编辑 - 第二个示例中的正向(转义)斜杠实际上都被 SQLCE 查询解析器加倍...

标签: visual-studio-2008 .net-3.5 sql-server-ce


【解决方案1】:

请参阅link 了解在 SQLCE 中使用抽象的想法。 (一种封装一组 SQL 语句以将底层存储与编程模型隔离的方法)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多