FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Parametros Out y Variables Delphi MySql
Buenas gente,
Estoy en un dilema con MySQL y delphi.... Uso los componentes BDE de delphi con un conector MySql (3.5.1) para acceder a la BD, no tengo problemas con las consultas pero si con los store procedures... El tema es que yo necesito hacer un insert, cosa no muy complicada, pero necesito un parametro out para obtener el id de auto incremento del registro que inserte, por lo que vi la funcion a utilizar es last_insert_id() el tema es que en un TQUERY coloco el call NEW_REG(:Param1,:Param2,....etc) y el ultimo de lo parametros es de tipo OUT y es el que me devuelve id del registro insertado. Desde delphi cargo los parametros y luego ejecuto el SQL con ExcSql que no tiene problema salvo por la definicion del parametro out el cual me arrija el siguiente error: "out or inout argument for routine (nombre store procedure) is not a variable" el Store es algo simple como esto.. (no es el mismo pero para que se den una idea..): CREATE PROCEDURE `pCreatecontentitem`( INOUT param_ContentItemId int , param_Title varchar(255) , param_Content varchar(4000) ) Begin insert into tablename ( Title , Content ) values ( param_Title , param_Content ) ; set param_ContentItemId = LAST_INSERT_ID(); End; lo que necesito saber como se trabajan las variables locales en los stores de mysql y los parametros out???.. para con esto poder obtener desde delphi el valor devuelto con Store.ParamByName('param_ContentItemId').AsInteger por ejemplo.. Espero que se haya entendido mi problema.. Saludos Ahora no puedo ejecutar el sql porque me ar |
#2
|
|||
|
|||
Solucion por parte
Buenas, ya solucione una parte y es que si llamo al store en vez de con el parametro OUT :aId por ejemplo, lo llamo como una variable @aId entonces ahi a la salida del store tengo el nuevo Id generado por el autocommit de la tabla.. ahora el problema lo tengo cuando quiero obtener ese valor de variable en un parametro out desde delphi.. probe sin exito con..
NEW_ITEM(@aId,... demas parametros in); Select @aId into :aId; /* siendo :aId un parametro out */ o begin NEW_ITEM(@aId,... demas parametros in); Select @aId as aId; end; /* a ver si lo podia sacar como un field del resultset pero tampoco..*/ Les agradeceria su respuesta porque estoy colgado con esto y no puedo seguir si no lo soluciono.. Gracias... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Para pasar variables de Delphi a FastReport | David | Impresión | 3 | 11-05-2007 20:14:22 |
Parametros Delphi 2006 | raorre | OOP | 3 | 28-07-2006 18:18:58 |
Parámetros con Zeos y MySQL | AzidRain | Conexión con bases de datos | 1 | 20-01-2006 07:35:13 |
Declarar variables Locales en Delphi?? | JELIRM | Varios | 6 | 09-07-2005 01:22:54 |
ayuda con delphi^interbase^sql^variables | julio2484 | Conexión con bases de datos | 4 | 17-09-2004 05:23:01 |
|