Исключить «удаленные» строки, когда DELETED () не поддерживается - PullRequest
0 голосов
/ 15 декабря 2011

Я пытаюсь работать с некоторыми простыми файлами DBF в ColdFusion.Я настроил системный DSN в Windows с помощью драйвера dBase и успешно настроил источник данных в ColdFusion Administrator.Я могу выполнять обычные запросы SQL к источнику данных без проблем.

Я оставил «показать удаленные строки» на в конфигурации DSN.(Очевидный ответ - изменить этот параметр, но сейчас давайте притворимся, что я не могу.)

Как же тогда исключить строки, помеченные как удаленные в моих запросах?Из другой информации, например, в FoxPro, вы использовали бы функцию DELETED() для поиска этих строк.Однако, если я использую эту функцию в своем запросе CF, я получаю

[Macromedia] [Драйвер JDBC SequeLink] [Сокет 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 Ответ

1 голос
/ 15 декабря 2011

Насколько я знаю, ни один из драйверов ODBC dBase не поддерживает deleted() или SET DELETED ON | OFF. Хотя изменение настройки в конфигурации драйвера будет лучшим выбором, вы также можете попробовать использовать драйвер ODBC для FoxPro, который должен поддерживать функцию delete ().

Вы также можете УПАКОВИТЬ свою таблицу dBase, чтобы избавиться от удаленных записей.

...