为什么使用postgresql odbc驱动程序访问2010会调用IDENT_CURRENT?
我正在将 access 2003 应用程序迁移到 access 2010。该应用程序使用 postgres odbc 驱动程序来访问其数据。
在access 2010上,它尝试使用postgresql服务器上的IDENT_CURRENT函数(如wireshark所示)来识别最近插入的行的id...不幸的是,据我所知,IDENT_CURRENT不是postgresql支持的函数...
我我正在使用最新的 postgresql ODBC 驱动程序 (9.0) 和 postgresql 8.3 数据库。
I am migrating an access 2003 application to access 2010. The application uses the postgres odbc driver to access its data.
On access 2010 it tries to use the IDENT_CURRENT function on the postgresql server (as seen with wireshark) to identify the id of a recently inserted row ... Unfortunately IDENT_CURRENT is not a function supported by postgresql as far as I know ...
I am using the latest postgresql ODBC driver (9.0) with a postgresql 8.3 database.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
currval
是正确的方法去(强调我的):将其包装在 IDENT_CURRENT 函数中是一种完全合理的移植技术。
您还可以使用
返回 id
在你的 INSERT 语句中(再次强调我的):这可能会更快、更干净,但仍然会遇到一些可移植性问题。 OTOH,我认为无论你做什么,你都会遇到可移植性问题。
Using
currval
is the right way to go (emphasis mine):And wrapping it up in an
IDENT_CURRENT
function is a perfectly reasonable porting technique.You could also use
RETURNING id
on yourINSERT
statements (again, emphasis mine):That might be a bit quicker and cleaner but you'd still have some portability issues. OTOH, I think you're going to have portability issues no matter what you do.