我在C#和Java中构建查询构建器模块,用户可以根据指定的连接表达式来连接表,例如[Table1].[ID] = [Table2].[ID]
。字段需要等同于什么标准?
用户可以修改连接表达式,并可以选择将Table1
中的任何字段与Table2
中的任何字段等同。
我想过检查列数据类型和长度是否相同,但例如可以将varchar(10)
列与nchar(10)
列连接起来。只要长度相同,就可以选择这些不同的数据类型。
因此,我应该在我的检查中指定哪些条件以查看用户选定的连接表达式是否有效?我不能单靠PK/FK限制。
该标准可以适用于C#或Java - 无所谓,因为一旦我有一个普遍的答案,我可以转换我的解决方案,以适应两者。
您如何访问数据库?你甚至可以告诉你代码中的字段是什么类型的? – Bobson 2013-03-11 17:40:29
@Bobson - 是的,这很容易做到。存在许多库以及对sys.INFORMATION_SCHEMA执行的SQL语句。这不是我要问的。 – 2013-03-11 17:41:55
您可以使用'size(columnName)'来检查列的大小。如果这两个表的列的大小相同,则允许加入..ELSE闪烁一条错误消息。 – 2013-03-11 17:43:36