Archive for the ‘PHP’ Category

Microsoft Access Database using Linux and PHP

Ноябрь 24, 2009
По мотивам «Microsoft Access Database using Linux and PHP«

Я веду в ХТТ практические занятия по курсу «Базы данных и СУБД».  Название курса само по себе довольно странное, но речь сегодня не об этом. Так как я «второй» преподаватель и отвечаю только за практические занятия со вторыми группами, то мне нет необхожимости парится про содержание практических работ, это забота «первого» преподавателя. Но проверять их то мне, а это ой как неприятно. Надо:

  • носится от одного ко второму
  • быстро соображать, что же за задание и как его быстро проверить
  • указывать на ошибки в случае их обнаружения
  • проверять тщательно, чтобы не сдавали хартуру
  • слушать нытьё «А вот вчера у меня работало, а тут чего не хочет».

Короче, проблем хватает.

И тут я вспомнил про практику использования автоматических систем. Серега Курило в своё время написал систему для тестирования решений задач, написанных на Pascal, С, С++ и т.д. Признаюсь честно, я так и не смог её развернуть.

Но тут то у меня задача другая, мне надо проверить, как умеют детишки писать SQL запросы на выборку данных (пусть хотя бы это умеют, оставим DDL в покое). Так как это техникум и дети не особо сильны, то единственной понятной для них средой можно считать Acess. Переносимость файлов acess, обусловленная установленным практическ на всех компьютерах пакетом Microsoft Office, позволяет закрыть на все остальные недостатки.

Решил я сделать систему, которая ставит тебе вопрос и предлагает написать SQL запрос, который отобразит нужные данные. Алгоритм проверки простой, если выбока, получившаяся в результате выполнения ученического SQL запроса, совпадают с выборкой от эталонного запроса совпадают, то можно считать запрос верным. Пока хватит и такой проверки. Если же не совпала, то отображаются результаты как первого, так и эталонного запросов, чтобы ученик смог понять, что от него хотят и что он в итоге то сделал.

Где разместить такую систему. Крнечно же на своём ноуте. Пришёл, врубил в сеть, дал детям линк… пусть «играются». Но у меня на ноуте не Windows :). Поэтому пришлось немного повозится, чтобы появилась возможность работать с Access файлами.

Я действовал практически так же, как и описано в статье. Но есть некоторые различия:

  1. Я устанавливал с репозитария Debian (а не скачиавал с сайтов) следующие пакеты
    • unixodbc
    • unixodbc-bin
    • libmdbodbc
    • php5-odbc
  2. Не использовал odbcinst -i -d -f. Вместо этого собственоручно модифицировал файлы. Сначала я попытался ODBCConfig. Но при первой же попытке создания он отругал меня, что я не root, и что он не может модифицировать файлы. Запустив его с правами root, наблюдал, как он падал при попытке создания записи ODBC драйвера или записи DNS.
  3. Создавал для файла System DNS, т.к. apache запускается из под root (не уверен точно).

Осталось только написать саму систему :) А что, конннектиться к MS Access базе уже умею.