Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Интерфейсы для MySQL /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Поддержка ODBC в MySQL - Программирование от RIN.RU
Поддержка ODBC в MySQL



Как получить значение столбца AUTO_INCREMENT в ODBC


Существует распространенная проблема, заключающаяся в том, как получить значение автоматически сгенерированного ID из INSERT. С помощью ODBC можно сделать что-то наподобие следующего (предполагается, что auto представляет собой поле AUTO_INCREMENT ):


INSERT INTO foo (auto,text) VALUES(NULL,'text');
SELECT LAST_INSERT_ID();


Или, если вы просто собираетесь вставить данный ID в другую таблицу, то можно сделать так:


INSERT INTO foo (auto,text) VALUES(NULL,'text');
INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text');


См. раздел Как получить уникальный идентификатор для последней внесенной строки?.


Для некоторых приложений ODBC (по крайней мере, для Delphi и Access), чтобы найти недавно вставленную строку, можно использовать следующий запрос:


SELECT * FROM tbl_name WHERE auto IS NULL;




Составление отчетов о проблемах с MyODBC


Если встречаются трудности с применением MyODBC, то следует начинать с получения системного журнала менеджера ODBC (журнал, получаемый при затребовании записей в Администраторе ODBC) и журнала MyODBC.


Чтобы получить журнал MyODBC, необходимо выполнить следующие действия:


  1. Убедитесь, что вы используете 'myodbcd.dll', а не 'myodbc.dll'. Наиболее простой способ - получить файл 'myodbcd.dll' из дистрибутива MyODBC и скопировать его поверх файла 'myodbc.dll', который должен находиться в вашем каталоге 'C:\windows\system32' или 'C:\winnt\system32'. Однако после окончания тестирования целесообразно восстановить старый файл 'myodbc.dll', поскольку он намного быстрее, чем 'myodbcd.dll'.

  2. Включите опцию Trace MyODBC в окне подключения/конфигурации MyODBC. Информация будет записываться в файл 'C:\myodbc.log'. Если опция трассировки не запоминается при возвращении к предыдущему окну, то это означает, что сейчас драйвер 'myodbcd.dll' не используется (см. пункт выше).

  3. Запустите свое приложение и попытайтесь получить отказ в работе.


Проверьте трассировочный файл MyODBC, что бы попытаться выяснить, в чем дело. Можно также найти сделанные вами запросы в файле 'myodbc.log' - поищите в нем строку >mysql_real_query.


Попробуйте также выполнить дублирование этих запросов с помощью монитора mysql или admndemo, чтобы определить, где возникает ошибка - в MyODBC или в MySQL.


Если вы обнаружите какую-либо ошибку, то присылайте, пожалуйста, только строки, имеющие отношение к ней (максимум 40 строк), по адресу myodbc@lists.mysql.com. Просьба никогда не присылать полностью весь системный журнал MyODBC или ODBC!


Если у вас нет возможности определить, что именно у вас не так, остается последняя возможность - создать архив (tar или zip), содержащий трассировочный файл MyODBC, системный журнал ODBC и файл README с описанием своей проблемы. Вы можете послать это по адресу ftp://support.mysql.com/pub/mysql/secret/. В MySQL AB только мы будем иметь доступ к присланным вами файлам. Гарантируем, что с ними мы будем обращаться очень осторожно!


Если вы можете создать программу для демонстрации данной проблемы, присылайте, пожалуйста, и ее тоже!


Если эта программа работает с некоторыми другими серверами SQL, следует сделать системный журнал ODBC, где вы делаете в точности то же самое в другом сервере SQL.


Помните, что чем больше информации вы нам предоставите, тем больше вероятность, что мы сможем решить данную проблему!

<<<  Назад
 1  2  3  4 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Интерфейс PHP API для MySQL

Интерфейс Perl API для MySQL

Интерфейс C для MySQL

Интерфейс C для MySQL (окончание)

Интерфейсы C++ и не только

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь