FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con procedimiento almacenado (dbexpress)
Hola que tal, foro de clubdelphi, queria pedirle ayuda:
- Uso delphi xe2 - Mysql - Dbexpress - Uso un modulo de datos( querys, dataset), y utilizo por el lado del formulario (providers, clientdataset, datasource.) estoy usando el componente SQLstoredproc y nose como hacerlo funcionar, coloco la conexión, y en Storedprocname=validar (así se llama el procedimiento ) les coloco el procedimiento. que es como validar un usuario si existe y me devuelve un valor 0 o 1 en caso de que exista, para poder entrar al sistema.
la cosa es que cuando hago todo, se activan los parametros y lo que ago es del lado del formulario en clientdataset (creo los parametros) y utilizo este codigo:
los errores que me tira son: invalid parameter, y otro return mause algo asi. eh, buscado y leido un monton pero no encuentro la solucion. lo pongo aca porque es delphi. Desde ya muchas gracias. |
#2
|
||||
|
||||
Hola liito16.
Cita:
Pero de este modo el componente TSQLStoredProc tendría que funcionarte sin ningún problema: (Las propiedades SQLConnection y StoredProcName las configuré por código para dar mas claridad al ejemplo) Te dejo un enlace al manual de referencia de MySQL: [CREATE PROCEDURE y CREATE FUNCTION] Tal vez también te pueda ser útil este: [MySQL Stored procedure Tutorial] Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Hola, primero muchas gracias por responder, ,
y con respecto claro lo configuro en el componente. y lo probé en mysql workbench y funciona perfecto. osea me da 0 cuando no existe y 1 si existe. obviamente probando así: call validar("juan","651574",@res); |
#4
|
||||
|
||||
Hola liito16.
En el código que te puse, ¿ Notaste que ejecuto el procedimiento almacenado llamando al método ExcecProc en lugar de Open ? Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Así probé, y sigue tirando invalid parameter, pero es lógico que yo tenga el modulo de datos? y haga with DM_ventas.sp_ventas... antes que con el client directamente?, digo por como lo estoy armando yo, si se puede hacer así lo hago. lo que hice fue pasarle directamente los datos correctos pero sigue tirando el mismo error. |
#6
|
||||
|
||||
Hola liito16.
Cita:
Otra consulta: ¿ Agregaste parámetros en tiempo de diseño (desde el Object Inspector) ? Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
ehm me exprese mal, jaja en realidad es que utilizo por ejemplo la conexión así
En el modulo de datos coloco el storedproc y del lado del formulario provider, clientdataset y datasoruce el provider esta conectado al modulo de datos y al procedimiento. mi pregunta es si es lo mismo que lo coloque así como dm_ventas.storedproc, o lo hago a mi manera. que es with clientdataset ......, solo pregunto si es lo mismo , Osea al usar el componente lo configure no con codigo sino en tiempo de diseño y se crean solo los parametros, si lo hago como me dices con código. los creo yo en la propiedad params y al ejecutarlo me dice parameter 'user' not found. |
#8
|
||||
|
||||
Cita:
Para salir de toda duda, renombrá a sp_validar como sp_validar_old, poné otro componente TSQLStoredProc y nombralo como sp_validar. De este último sólamente configura la propiedad SQLConnection con su SQLConnection (nada mas) y proba con el siguiente código: Si no funciona el problema está en otro lado. Tal vez en el SQLConnection, tal vez algun tratamiento especial que necesite MySQL con estos componentes (o los componentes con MySQL ) , pero como te dije antes no conozco MySQL. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
|||
|
|||
Cita:
En el stored procedure Clave es Integer y en el codigo del boton Clave, parece ser que es texto: Params.ParamByName('clave').Value:=edt_clave.Text; |
#10
|
|||
|
|||
nono, va la clave la puse varchar(6), osea el campo con el cual se iguala es key_user varchar(6) y asi también declare la variable de entrada in clave varchar(6) porque es en realidad un login de usuario como "pedorro" por asi decirlo, es solo para ver si existe el usuario y si existe que entre al sistema.
lo que voy a hacer ahora es probar con interbase haber que pasa, solo que me tira error en el if. -.-! me dice precompiler error: me dice que es el if pero busque y se hace asi. ahora estoy bajando otro EMS interbase manager para probar. muchas gracias, cualquier ayuda es bienvenida. |
#11
|
||||
|
||||
Hola liito16.
Si lo vas a hacer en Interbase o Firebird (es casi lo mismo) ya la cosa cambia.... Esto si te funcionará correctamente:
Y puedo asegurártelo por que está probado. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-09-2012 a las 19:52:36. |
#12
|
|||
|
|||
Si muchas gracias estaba pensando algo asi. justamente. el tema ahora es que no me deja conectar con la base de datos delphi -.-! me tira error
yo tengo windows 7 - 64 bits. así que capas reinstalo todo de nuevo. muchas gracias!!!, y ni bien pruebe pongo como corresponde la respuesta de como me fue. saludos! |
#13
|
|||
|
|||
Revivo, porque nose como solucionarlo ese es el error que aparece, e intentado por forma de metodo de ejecucion y por propiedades del componente y no funciona y probado con un dataset de dbexpress y tampoco, pero eh probado traer campos y mostrarlos en un grid y funciona todo. Desde ya muchas gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ejecución Procedimiento Almacenado dbexpress | nejamube | Firebird e Interbase | 1 | 10-04-2011 02:13:29 |
problema con procedimiento almacenado | aladelta | Firebird e Interbase | 7 | 14-02-2007 01:52:34 |
Problema con Procedimiento almacenado | Tauro78 | Firebird e Interbase | 6 | 12-02-2007 17:43:06 |
problema con procedimiento almacenado | Choclito | Firebird e Interbase | 2 | 04-11-2004 20:58:46 |
Problema con procedimiento almacenado | juziel | Firebird e Interbase | 4 | 20-09-2004 18:31:41 |
|