【发布时间】:2014-04-10 10:44:20
【问题描述】:
我目前正在为使用 Visual Basic .NET 的客户端开发应用程序。这是对访问 Oracle 数据库、过滤列并对数据执行一些操作的应用程序的重写。现在,由于我无法控制的原因,客户希望为新应用程序使用 Access (.mdb) 数据库。这样做的问题是表的访问支持超过 255 列,因此客户建议将数据拆分为多个数据库/表。
即使表被拆分,在某些时候,我也必须同时查询所有列(我对两个表都进行了 INNER JOIN),这当然会产生错误。限制显然是同时可查询的列数而不是总列数。 是否有可能以某种方式规避 255 列的限制?我正在考虑使用 LINQ 来组合两个表的查询,即有一个适配器来模拟我可以执行查询的单个表。这样做的一个缺点是 .mdb 不是 LINQ-to-SQL 的一等公民(即不支持插入/更新等)。
作为一种解决方法,我可以重写我的东西,以便只需要所有列(我根据表中的列名动态创建控制元素)。因此,我需要查询前 250 列,然后查询接下来的 150 列。
是否有一个 Access-SQL 查询可以实现这样的功能。我想到了 SELECT TOP 255 * FROM dbname 或 SELECT * FROM dbname LIMIT 1,250 之类的东西,但这些都无效。
我还有其他选择吗?
非常感谢您的建议。
【问题讨论】:
-
您是否也考虑了 Access db 的所有其他限制?
-
我知道 Access 可能是最糟糕的选择,是的。不幸的是,客户明确希望使用 Access(我想是出于基础设施同质性的原因)
-
我会使用 MS SQL - Express 版本是免费的,没有 Access 的限制。
-
您会说客户有足够的知识来做出决定吗?我找不到任何合理的论据来坚持使用 Access 及其局限性。
-
完全同意@Constanta。我们的部分工作是告诉客户他们错了。 :)
标签: vb.net linq ms-access limit