PepareStatement 使用 MS Access,其中一些值来自不同的表
Posted
技术标签:
【中文标题】PepareStatement 使用 MS Access,其中一些值来自不同的表【英文标题】:PepareStatement using MS Access where some values come from a different table 【发布时间】:2012-07-19 22:49:04 【问题描述】:我正在尝试使用 Servelts (PreparedStatement
) 和 html 表单将数据插入 MS Access DB。
可以在 MS Acces 插入查询方面帮助我吗?我的要求是将表单值插入 MS Access,并且 insert
期间的字段之一必须来自不同的表。
所以我是这样的:
insert into tablename(Col1, col2, col3)
values(?,?, select col3 from diffferent_table where name=col1))
我可以这样写吗?我必须根据我为 Col1 获得的输入从不同的表中获取 col3 的值
有人可以帮忙吗。
【问题讨论】:
你试过了吗?它应该可以工作。 【参考方案1】:这样做的一种方法是:
PreparedStatement insertStatement= connection.prepareStatement("insert into tablename(col1, col2, col3) values(?,?, select col3 from different_table where name = ?)");
//Then set your parameters accordingly. As per your requirement, the 1st and last paramter should've the same value
如果我是你,我会按照以下方式做一些事情:
PreparedStatement retrieveStatement= connection.prepareStatement("select col3 from diffferent_table where name=?");
PreparedStatement insertStatement= connection.prepareStatement("insert into tablename(col1, col2, col3) values(?,?, ?)");
//set the value
retrieveStatement.setXX(1,Col1);
然后,我将通过执行 retrieveStatement
从结果集中检索该值,并将该值设置在 insertStatement
中
如果您需要在将值从一个表插入另一个表时处理特定情况,第二个选项会有所帮助。 我想你可以按照这个来编写你自己的代码
【讨论】:
当然,没问题。希望这会有所帮助!以上是关于PepareStatement 使用 MS Access,其中一些值来自不同的表的主要内容,如果未能解决你的问题,请参考以下文章
为啥 MS-Access 中的 Teradata 查询比 SQL Server 更快