Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование переменной внутри запроса. [D7, MySQL]


Leo ©   (2008-05-21 15:36:00) 

Есть таблица значений AutoInc для всех таблиц базы. База многопользовательская, поэтому для каждого клиента нужен уникальный ID. Соответственно запрос

lock tables `autoinc` write;
select `value` into @val from `autoinc` where `table` = 'table2';
SET @val = @val + 1;
UPDATE `autoinc`
   SET `Value` = @val
   WHERE `table` = 'table2'
   LIMIT 1;
unlock tables;
select @val;

Выдает ошибку "Can not open s Resultset".
Локализовал проблему:
1. select `value` into @val from `autoinc` where `table` = 'table2';
2. select @val;
Та же ошибка, но когда выполняешь шаг 1, а затем шаг 2 по-отдельности, все ок.
MySql работает под WinXP. Пробовал под Линухом - все ок, работает.
Может кто-то сталкивался (думаю что-то в настройках).


Leo   (2008-05-24 14:00:00) [1]


> А нафига LIMIT?

Работает и без него, как вариант поле table проиндексить с unigue


Ega23   (2008-05-23 19:03:00) [2]

А нафига LIMIT?


Leo   (2008-05-23 17:45:00) [3]

Поставил вместо heidisql 3.0 -heidisql 3.2, заработало.


Наверх

Титульная страница Поиск, карта сайта Написать письмо