|
MySQL как получить identity (auto_increment)
|
|||
---|---|---|---|
#18+
Всем доброго дня, Пришлось писать приложение на PB (10.5) для MySQL (5.6) .. и столкнулся с неожиданной проблемой - не могу получить значение @@identity после insert-a ... без использования Datawindow. Пытался через dynamic sql (prepare from sqlsa ... execute immediate ..) Сделал проц-ру ... чтото вроде : create procedure usp_add_media( in aobject_title varchar(255), out aobject_id int ) begin insert into media(object_title) values (aobject_title); set aobject_id = last_insert_id(); end; В PB описал ее как local external functions subroutine usp_add_media(string pmedia_title, ref int pmedia_id) RPCFUNC ALIAS FOR "usp_add_media" вызываю SQLCA.usp_add_media("fgdjhfdsf", li_id) получаю 0!!! где я не прав?? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 11:01 |
|
MySQL как получить identity (auto_increment)
|
|||
---|---|---|---|
#18+
_Drive_Пришлось писать приложение на PB (10.5) для MySQL (5.6) .. и столкнулся с неожиданной проблемой - не могу получить значение @@identity после insert-a ... А типа как в SA Код: sql 1.
не канает? _Drive_subroutine usp_add_media(string pmedia_title, ref int pmedia_id) RPCFUNC ALIAS FOR "usp_add_media" вызываю SQLCA.usp_add_media("fgdjhfdsf", li_id) получаю 0!!! А какой у Мускуля int ? Для SA нужно однозначно так: subroutine usp_add_media(string pmedia_title, ref long pmedia_id) RPCFUNC ALIAS FOR "usp_add_media" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:12 |
|
MySQL как получить identity (auto_increment)
|
|||
---|---|---|---|
#18+
Меня смущает использование last_insert_id() внутри процедуры Зачем? Используйте @@identity Кроме того есть небольшой глюк - если нет никакого return внутри процедуры или select, билдер некорректно отрабатывает. Ну и еще вопрос или совет, что вам мешает использовать dw или ds внутри функции? Так проще получить стабильный возврат ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:26 |
|
MySQL как получить identity (auto_increment)
|
|||
---|---|---|---|
#18+
Всем доброго дня, испробовал ВСЕ что знал ... ничего не получается :-( Создал Datawindow в Update Propertys описал unique key column и ее-же как identity column Внутри среды делаю insert ... заполняю некоторые колонки ... делаю update - в поле которое identity НИЧЕГО НЕ ПОЯВЛЯЕТСЯ ... делаю retrieve - все ОК ... все на месте ... PB 10.5.2 build 7858 Сервер MySQL 5.6 MySQL ODBC 5.3 ANSI и UNICODE тоже пробовал впал в ступор ... как-же так я же ВСЕ указал! PS: скрип для создания таблицы: create table Object ( object_id int not null auto_increment, ot_id int not null, tl_id int, object_title varchar(255), object_begin date, object_end date, primary key (object_id) ); ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:52 |
|
MySQL как получить identity (auto_increment)
|
|||
---|---|---|---|
#18+
spas2001, C select @@identity я начал ... выяснил что from dummy не работает.... тогда стал писать процедуры .. в которой делал select @@identity into потом поменял select на set outparam = @@identity потом поменял на set outparam = last_insert_id() Что интересно если вызывать в MySQL Workbench эту проц. типа вот так set @p_id= 0 call usp_add_object('blabla',@p_id); select @p_id; то все ОК! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:01 |
|
MySQL как получить identity (auto_increment)
|
|||
---|---|---|---|
#18+
_Drive_, Нашел!! на http://forums.mysql.com/read.php?37,139326,223231,quote=1 Надо править PBODB105.ini добавить секцию ... [MySQL] PBSyntax='MySQL_SYNTAX' to the Syntax Section: [MySQL_SYNTAX] GetIdentity='Select @@identity' После этого Datawindow identity column - ЗАРАБОТАЛО! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:21 |
|
|
start [/forum/moderation_log.php?user_name=%D0%BC%D0%B0%D0%B3%D0%B4%D0%B0%D0%BA]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 672ms |
total: | 845ms |
0 / 0 |