2010-11-05 53 views
0

我正在编写一个小型SQL数据库浏览器。需要的功能是选择,更新,插入,从两个通过键连接的表中删除。我使用OdbcAdapter从两个表中进行选择,并使用绑定到DataGrid,但是当我使用两个连接的表时,OdbcCommandBuilder不提供更新内容的可能性。 如何从任何数据库处理任何表格时能够实现此功能(未指定colums的数量)。已连接表上的SQL更新

是否可以针对特定字段值提出有关其可能值(可能的外键值)的建议。

+0

为什么你不能创建两个更新语句,并把它们放在一个事务中? – Dismissile 2010-11-05 13:19:46

回答

2

可更新的视图应该为您提供这一点 - Oracle不支持这些。这里是一个例子:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_8004.htm#i2126726

+0

嗯然而,这种方式,我将不得不创建视图开始和下一次开始检查,如果他们已经存在或删除退出。是否有任何方法不仅适用于Oracle? – mmatloka 2010-11-05 13:13:16

+0

我怀疑是否有解决方案可以在所有情况下都能正常工作,因为要采取的操作取决于联接的性质 - 从概念上讲,只有当联合使用两个表之间的一对一映射时才有效datagrid中的行对应于每个表中的单个行,并且这些表行不存在于任何其他datagrid行中。对于任何其他连接,更新网格中的单元格会导致其他行中的值发生更改(这对用户来说是违反直觉的) – 2010-11-05 13:20:16

+0

例如,假设我们将Employee添加到Department,并且生成的行的employee_name和department_name在我们的数据网格。如果用户输入了department_name的新值,那么预期的结果是什么?更新部门的名称?将员工更新为属于新部门(如果不存在,则创建新部门)? – 2010-11-05 13:24:05