基于 Jet(Access) DB 和表达式的列?
我偶尔会参与一个旧项目,该项目使用经典的 asp 作为前端,使用 access 数据库作为后端。
我想在其中一个表中创建一个新列,其中包含根据行中其他列计算其值的逻辑。
我知道如何在更现代的 DBMS 中执行此操作,但我认为访问不支持它。 请记住,我没有使用访问前端,只是通过 ODBC 使用 Jet DB 引擎。
有什么指点吗?
I occasionally work on an old project that uses classic asp as a front end and an access database as a backend.
I'd like to create a new column in one of the tables that contains logic to calculate its value from the other columns in the row.
I know how to do this in a more modern DBMS, but I don't think that access supports it. Keep in mind I'm not using the access frontend, just the Jet DB engine via ODBC.
Any pointers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以只做一个计算列吗?
Can you just make a calculated column?
乔纳森·霍兰德在评论中问道:
为什么您希望在后端执行类似的操作,而不是在 ASP 前端执行? Access 已保存查询,类似于视图,但是当通过 ODBC 使用时,它们不能在其中包含 VBA 函数(尽管 Jet 直接支持一些可以通过 ODBC 访问的命令,例如IIf() 和 Nz() —— 但这是一个很大的if)。
在 ASP 中检索记录集并执行逐行计算。 如果您通过 ODBC 使用 Jet,这是唯一的方法(顺便说一句,我认为 ADO 不会工作得更好)。
In a comment, Jonathan Holland asked:
Why would you want to do something like that in the back end, and not in your ASP front end? Access has saved queries, which are like views, but when used via ODBC, they cannot include VBA functions in them (though there are a few commands that Jet supports directly that may be accessible via ODBC, such as IIf() and Nz() -- but that's a big if).
Retrieve your recordset in ASP and perform your row-by-row calculations. That's the only way to do it if you're using Jet via ODBC (I don't think ADO would work any better, BTW).