不支持DELETED()时排除“已删除”行

时间:2011-12-15 15:51:01

标签: sql coldfusion dbf

我正在尝试使用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吗?或者司机是我唯一的希望?

1 个答案:

答案 0 :(得分:1)

据我所知,dBase ODBC驱动程序都不支持deleted()SET DELETED ON | OFF。虽然更改驱动程序配置中的设置是最好的选择,但您也可以尝试使用FoxPro ODBC驱动程序,该驱动程序应该支持deleted()函数。

您还可以打包dBase表,以删除已删除的记录。