我正在尝试使用ColdFusion中的一些简单的DBF文件。我使用dBase驱动程序在Windows中设置了一个系统DSN,并在ColdFusion Administrator中成功设置了数据源。我可以毫无问题地对数据源执行常见的SQL查询。
我在DSN配置中离开了“显示已删除的行” 。 (显而易见的答案是改变那个设置,但现在让我们假装我不能。)
那么,如何在查询中排除标记为已删除的行?从其他地方的信息,例如,在FoxPro中,您可以使用DELETED()
函数来查找这些行。但是,如果我在我的CF查询中使用该函数,我会得到
[Macromedia] [SequeLink JDBC驱动程序] [ODBC套接字] [Microsoft] [ODBC dBase驱动程序]未定义的函数'已删除'在表达式中。
我尝试过这两种技巧:
SELECT ID, fName, lName, deleted() AS isDeleted
FROM myTable
SELECT ID, fName, lName
FROM myTable
WHERE NOT deleted('myTable')
还有另一种方法可以使用ColdFusion吗?或者司机是我唯一的希望?
答案 0 :(得分:1)
据我所知,dBase ODBC驱动程序都不支持deleted()
或SET DELETED ON | OFF
。虽然更改驱动程序配置中的设置是最好的选择,但您也可以尝试使用FoxPro ODBC驱动程序,该驱动程序应该支持deleted()函数。
您还可以打包dBase表,以删除已删除的记录。