Подключился к базе через ODBC, выбрал данные - нормально. Пытаюсь в базе создать таблицу - не получается. Ошибка - [Microsoft][Драйвер ODBC Microsoft Access] Невозможно изменение структуры таблицы 'userlist'. База данных доступна только на чтение., Как открыть базу на запись? ps Внешней программой база нормально открывается и допускает редактирование. Код (Text): $conn = odbc_connect('HRT', '', '', SQL_CUR_USE_DRIVER ); $rst = odbc_exec($conn, 'select * from Banks where id<10 order by id'); while($row = odbc_fetch_array($rst)) { echo "Id= ".$row['Id']." Name=".$row['Name']."<br>"; } // в этой строке возникает ошибка $rst = odbc_exec($conn, 'create table userlist (id int, fio string, name string, sname string, login string, pwd string)'); odbc_close($conn);
Имя пользователя и пароль прописаны в DSN ( в текущем случае он имеет имя HRT ). Как видно из Код (Text): $conn = odbc_connect('HRT', '', '', SQL_CUR_USE_DRIVER ); в php логин не указывается. Внешняя программа тоже запрашивает логин, который не вводится и берется из DSN. В базе пользователь всего один - root. Такое впечатление, что где-то в PHP есть настройки ODBC. Как подтверждение тому, когда внешняя программа подключена к базе, тогда PHP к ней подключится не может, требует монопольного режима. Хотя две внешних программы свободно подключаются к базе. Похоже, что PHP переопределят настройки, которые прописаны в DSN. Во внешней программе я вижу настройки ODBC (кроме тех, которые прописаны в DSN), а вот где увидеть эти настройки в PHP?
В документации нашел предопределенную константу SQL_CONCUR_READ_ONLY. Что она обозначает в документации написать забыли. В ходе выполнения скрипта выяснилось, что значение этой константы 1. Оно это или нет - неизвестно. http://php.ru/manual/uodbc.constants.html