Как получить текст представления через ODBC?

josh1986

Новичок
Как получить текст представления через ODBC?

Имеется ODBC соединение с mdb файлом.
Подскажите можно ли получить sql-текст представлений (вьюшек) содержащихся в базе
 

tashkentchi

Новичок
Re: Как получить текст представления через ODBC?

А что за задача?
Соединяться из PHP с настольными базами (сначала .odb, теперь - .mdb), вытаскивать из них запросы CREATE VIEW. :confused: Чо с ними делать? Зачем это нужно?
 

josh1986

Новичок
ну просто надо чтоб пользователь мог посмотреть созданные представления, именно sql-код
 

tashkentchi

Новичок
А чем обусловлен выбор MS Access? Имхо, удобнее было бы пользовать, например, SQLite. Хотя бы из соображений бесплатности, доступности, кросплатформенности.
 

josh1986

Новичок
Если чесно не особо получилось, не все таблицы под вебом (через odbc) доступны для чтения.
Но через access я всёже глянул - код в чистом виде нигде не хранится он как попало разбросан :(

-~{}~ 26.02.09 05:44:

И еще я не со всеми командами odbc разобрался
Например odbc_columnprivileges, odbc_statistics, odbc_foreignkeys ругаются на параметры. Подскажите где можно посмотреть рабочий код и хорошее описание этих вещей. А то все мануалы которые я нашел без примеров либо неработают
 

josh1986

Новичок
А через SQLite никак не подключиться к mdb? он только со своими файлами работает?

Вечером напишу текст ошибки... там код ошибки был, что-то в роде "HY000", я почитал про него кажись это ошибка входных параметров
 

josh1986

Новичок
2tashkentchi
Попробуй плиз хоть просто законнектить SQLite с mdb или поделись файликом php_sqlite.dll а то нигде нету :(
 

tashkentchi

Новичок
Автор оригинала: josh1986
Попробуй плиз хоть просто законнектить SQLite с mdb
У меня под рукой нет MS Access, равно как и винды в целом. :) Сижу под Линуксом, форточки ставить не хочу, чего-то коннектить под ними тем более не хочу. И вообще я сейчас в отпуске.

или поделись файликом php_sqlite.dll а то нигде нету :(
Вот здесь все найдешь: http://sqlite.org/

-~{}~ 27.02.09 01:36:

Покури еще вот это: http://pecl.php.net/package/mdbtools Может быть поможет.
 

josh1986

Новичок
Вот такая ошибка вылетает Warning: odbc_primarykeys() [function.odbc-primarykeys]: SQL error: Failed to fetch error message, SQL state HY000 in SQLPrimaryKeys

Вот код который я пишу:
$Path = substr (str_ireplace ('\\', '\\\\', realpath ($_SESSION['DSN'])), 0, -4);
odbc_primarykeys ($this->GetConnection (), $Path, "", $Table);

-~{}~ 28.02.09 21:33:

в общем путь, кодключение и все остальное корректны... у меня такое подозрение что odbc_primarykeys неработает с mdb
 

josh1986

Новичок
само собой :) мне для таблицы надо, просто тему еще одну не хотел создавать, а решил тут спросить

-~{}~ 01.03.09 07:54:

вот немного конкретизирую
$Path = 'C:\\WebServers\\home\\localhost\\www\\Diplom\\Users\\Stud\\Stud\\3_11';
$Table = 'ШТ_РАСП';
odbc_primarykeys ($this->GetConnection (), $Path, "", $Table);
 

tashkentchi

Новичок
Плохой я советчик по m$ access. Но:

1. Что за путь? Какое отношение имеет он к базе? Вместо него следует пользовать имя базы/схемы.

2. Почему вместо логина пустая строка? Access это разрешает?

3. Строка 'ШТ_РАСП' - в какой кодировке? Сначала добейся результата с латинскими именами таблиц, потом будешь тренироваться с кириллицей.
 

josh1986

Новичок
ну собственно $Path - путь до БД, 3_11 - это на самом деле 3_11.mdb. В других командах Path ввожу такой же и всё норм работает.

Owner - NULL, смотрел через odbc_tables

А вот на счет имен попробую...мож надо писать [ШТ_РАСП] х его з :) но с русязом в других местах проблем небыло. Хотя я видел пример в инете там всё также только owner есть, чё-то у меня подозрение что это какой-нибудь баг
 

tashkentchi

Новичок
Попробуй так:
PHP:
$Table = 'MYTABLE';
odbc_primarykeys($this->GetConnection(), '', '', $Table) or die(odbc_errormsg());
Создай предварительно таблицу с латинским именем. И убедись, что у нее есть PRIMARY.
 

josh1986

Новичок
Чё-то не pаботает всёравно :(
Вот что пишет
Warning: odbc_primarykeys() [function.odbc-primarykeys]: SQL error: Failed to fetch error message, SQL state HY000 in SQLPrimaryKeys in ...

-~{}~ 09.03.09 18:11:

хотя у меня смутное подозрение что с owner`ом что-то не то, походу отрабатывает нормально но т.к. owner`а направильные поэтому и результат пустой и идет warning. Как ownera узнать?

-~{}~ 10.03.09 17:07:

И еще что такое qualifier??? я совсем запутался...

-~{}~ 10.03.09 17:15:

Я явно чё-то путаю с параметрами, люди кто-нибудь разобрался с командой odbc_primarykeys()?

-~{}~ 10.03.09 18:40:

-------------------------------------------------
Я всё понял, всё предельно просто - многие команды не работают т.к. обращаются за инфой к системным таблицам, которые запрещены для чтения. Вот хз как это обойти
 

tashkentchi

Новичок
Ну и не надо выше башки прыгать. Подойди к своему препу, скажи, что access не позволяет лазить в свои системные таблицы по odbc. Поэтому задача не имеет нормального решения. Пусть изменит задачу с mdb на sqlite. Тем более, что последний позиционирует себя, помимо прочего, как Database Pedagogy.
 
Сверху