Форум » Clipper » Как такое может быть? » Ответить

Как такое может быть?

Funky1: Добрый день, уважаемые гуру. Проблема в следующем: есть програма написанная на Clipper'е. При запуске exe файла выполняется такая функция, которая проверяет наличие dbf файла: if file(sejf+"DBF\klientf.dbf") use (sejf+"DBF\klientf") exclusive new alias KLF if file(sejf+"DBF\klientf.ntx") set index to (sejf+"DBF\klientf") // индекс else index on fam to (sejf+"DBF\klientf") endif else tone(200,3) message("Нет доступа к БД КЛИЕНТЫ(klientf.dbf) !! Выполнение пpеpвано !!") return .f. endif DBF файл имеется и доступен. Самое смешное если в опеределенное поле типа ДАТА ввести дату больше 31.03.09 програма выдает "Нет доступа к БД КЛИЕНТЫ(klientf.dbf) !! Выполнение пpеpвано !!" Стоит только удалить дату или ввести меньше (например 30.03.09) - всё работает. КТО НИБУДЬ МОЖЕТ МНЕ ОБЪЯСНИТЬ КАК ТАКОЕ МОЖЕТ БЫТЬ? Откомпилировать заново не могу, т.к. писал прогу не я, компилятора нет, да и исходник не последний.

Ответов - 2

Dima: Судя по исходнику такого быть не может. Доступа нет если файл не найден. PS В конец функции нужно добавить Return .t.

Григорьев Владимир: В Clipper 5.x общая длина полного имени файла, включая символ диска с двоеточием не должна превышать 64 символа. Поэтому в вашем случае, во-первых, нужно знать, что из себя представляет sejf, во-вторых, вы сами можете промоделировать эту ситуацию, написав программу состоящую из данной функции, которую вы здесь привели, и посмотреть что получится.



полная версия страницы