Чтение MDB файла без создания DataSourceName

Тема в разделе "WASM.ZEN", создана пользователем 640kb, 22 мар 2005.

  1. 640kb

    640kb New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2002
    Сообщения:
    3
    Приветствую!



    Кто разбирается в БД, помогите пожалуйста разобраться что к чему.



    Задачка у меня такова: необходимо написать просмотровщик существующего MDB файла. Делаю всё по туториалу Iczeliona, после SQLExecDirect идёт ошибка, SQLGetDiagRec выдаёт SQLSTATE 42000 (Syntax error or access violation), какой Syntax error может быть в строке "SELECT * FROM table2", поэтому я думаю что это access violation и нужно лезть в Control panel > ODBC Data Sources и настраивать там кучу ерунды.



    А прошу я помощи вот в чём, подскажите какие есть отдельные библиотеки функций (*.dll) для доступа к MDB файлам? Такие что-бы можно было просто положить рядом с MDB и моей будущей прогой и ничего не настраивать во всяких там Data Sources.
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Ничего там настраивать не надо. "Настраивание кучи ерунды" имеет место для DSN, что в данном случае не актуально. Пример из туториала работает? Таблица table2 точно существует? Файл указан правильно? Символ ";" в конце запроса желательно прописать.
     
  3. 640kb

    640kb New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2002
    Сообщения:
    3
    Пример работает.



    -Таблица table2 точно существует? Файл указан правильно?



    Всё правильно, иначе ошибка появилась бы раньше, на стадии SQLDriverConnect. Хм... про ";" в туториале ничего нет. Будем искать дальше...
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    640kb



    Значит и ваш код можно заставить работать!





    Там много ещё чего нет, на то он и туториал.



    Точно не помню (Access давно не использую и не уважаю), но Access вроде позволяет паролить базу (?) Хмм... Ещё он может не поддерживать голый "SELECT * FROM table;". Access вообще очень ограничен в плане SQL.





    Оптимально делать, как в туториале, т.е. через стандартный драйвер Access, который есть во всех виндах.