我正在尝试在基本 MVC(实验项目)中编写一个函数,应该使用以下(或接近)调用该函数:
datastore = myTable.FetchData({{column1, constraint1},
{column2, constraint2}, ...
{colN, conN}})
功能用途- 它查询具有传递给它的约束的表。例如,
FetchData({{Me.Fields("Price"), "<100"}, {Me.Fields("Type"), "=Component"}})
最终会产生查询
SELECT * FROM table a WHERE Price < 100 AND Type = "Component"
(查询产生比这更多,涉及定义的关系等等,但这超出了这个问题的范围)
我应该如何编写函数定义来获取这些参数?
`Public Function FetchData( ??? ) As foobar
本质上,它类似于字典,因为它是值对的列表。但是,它必须是非唯一的(例如可以调用它来生成col1 > 1 AND col1 < 5
)。还考虑了二维数组列表,但该对的每一半都需要是特定类型 - “键”需要是我的ColumnDefinition
对象类型或字符串,“值”应该始终是字符串。
处理这个问题的最佳方法是什么?
奖励问题:将运算符与约束 ( "=component"
) 合并看起来很难看。关于如何编写函数 def 与运算符分开的任何想法?我尝试了一个枚举,但这使它过于冗长 - 我希望这是一个相当易于使用的库。