ODBC: Microsoft dBASE Driver (*.dbf)

Тема в разделе "WASM.BEGINNERS", создана пользователем mc black, 14 янв 2009.

  1. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Использую ODBC, подключаюсь через Microsoft dBASE Driver (*.dbf), т.е. указываю каталог, где лежит файл DBF (формат dBase III). Подключение по всем этапам идет на ура (обработка ошибок это гарантирует).

    Дальше выбрать SELECT * FROM NEWIII и вот на команде SQLExecDirect вылетает обибка: ERROR_FILE_NOT_FOUND (00000002). Файл NEWIII.DBF у меня гарантированно существует!!! Может мне надо как-то переформулировать синтаксис SQL-запроса?

    Код (Text):
    1.     invoke SQLAllocHandle,SQL_HANDLE_STMT,hConn,addr hStmt
    2.     .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
    3.         invoke lstrlen,lpszSQL
    4.         inc eax
    5.         invoke SQLExecDirect,hStmt,lpszSQL,eax ;<--- здесь возникает ошибка
    6.         .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
     
  2. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Тему можно считать закрытой, ответ найден.

    Особенность: имя таблицы должно включать имя dbf-файла, включая расширение dbf. Мне достаточно было не убирать расширение из имени таблицы и все встало на свои места. SELECT * FROM NEWIII.DBF, а LastError осталась как была. Функция SQLAllocHandle c результатом SQL_SUCCESS_WITH_INFO.