Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2008
tksko tksko is offline
Registrado
 
Registrado: nov 2008
Posts: 5
Poder: 0
tksko Va por buen camino
Llamar a un stored procedure de mysql y recuperar resultados

Hola a todos!

bueno tengo un stored procedure en mi base de datos mysql.
resumiendo es algo asi

procedure conectar(IN elcospel INT UNSIGNED,IN elparq INT UNSIGNED)

hace cosas en el medio....... y antes de finalizar hago un select para devolver resultados:

SELECT 'cierre' as operacion,minutos as tiempo,newsaldo as saldo_actualizado;

ahora necesito desde Delphi llamar a ese procedimiento con parametros que el usuario ingresa y luego recuperar la informacion que este procedimiento me devuelve para poder mostrarla en delphi en un mensaje o hacer otras cosas.

El problema es que no me sale! ya probe con varios componentes, entre ellos ADOQuery con ExcecSQL y tambien ADOStoredProc.

Con AdoQuery.Excec funciona correctamente pero no me deja recuperar el resutlado que devuelve el procedimiento..

ADOQuery2.Active:= false;
ADOQuery2.SQL.Text:='CALL conectar('+idcospel+','+idparq+')';
ADOQuery2.ExecSQL;


con el Adostoredproc no me deja ni ejecutarlo, nose porque delphi insiste en agregarle llaves a la consulta ( {}) y esta falla.

with ADOStoredProc1 do begin
ProcedureName:='conectar';
Parameters.ParamByName('idcospel').Value:=strtoint(idcospel);
Parameters.ParamByName('idparq').Value:=strtoint(idparq);
ExecProc;
end;


me da un error de excepcion diciendo por ejemplo
Error en la sintaxis bla bla bla y pone {call conectar (2,55) }
no se porque le agrega llaves si yo en ningun momento las pongo :S


ya no se que hacer

si alguien puede ayudarme

gracias
Responder Con Cita
  #2  
Antiguo 05-11-2008
Avatar de 2-D@monic
2-D@monic 2-D@monic is offline
Miembro
 
Registrado: may 2007
Posts: 94
Poder: 17
2-D@monic Va por buen camino
Si te devuelve registros el procedimiento es ADOQuery2.Open de igual forma con ADOStoredProc1.Open; ........ si no funciona ninguno........ probaste en la consola de mysql si el procedimiento funciona?
__________________
Soy pésimo en lo que mejor hago y por eso me siento bendecido.
Responder Con Cita
  #3  
Antiguo 05-11-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
¿idcospel y idparq, qué son?, ¿variables delphi o del mysql o son campos?, ¿probaste con la consola a ver si te muestra los datos?, coincido con 2-D@monic, en vez de Exec usa Open.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 05-11-2008
tksko tksko is offline
Registrado
 
Registrado: nov 2008
Posts: 5
Poder: 0
tksko Va por buen camino
hola gente!
Si en la consola funciona correctamente.
Con el ADOstoredProc defino los parametros con un editor de parametros que tiene y despues durante la ejecucion del programa le asigno valores.

Parameters.ParamByName('idcospel').Value:=strtoint(idcospel);
Parameters.ParamByName('idparq').Value:=strtoint(idparq);

ParamByName('idcospel') es un parametro y strtoint(idcospel) es una variable ke recupera mas atras un valor entero.

como les digo, delphi me tira una excepcion y en la misma me muestra la consulta correcta, por ejemplo
call conectar (2,2) pero entre llaves y dice que tengo un error de sintaxis con mi version de mysql y bla bla

voy a probar lo que me dicen a ver si funcione!

si no se me ocurrio que voy a tener que agregar parametros de salida y luego consultar dichos parametros para obtener resultados :S
Responder Con Cita
  #5  
Antiguo 05-11-2008
tksko tksko is offline
Registrado
 
Registrado: nov 2008
Posts: 5
Poder: 0
tksko Va por buen camino
Pues no funciona.
al utilizar Open en ambos obtengo lo siguiente:
-adoquery no realiza el call, osea, no hay cambios en la base de datos. y luego tampoco me deja recuperar los datos.

-adostoredproc el mismo error que antes, me tira un error en la sintaxis que forma delphi. :S

yo una vez que se ejecuta el adoquery trato de recuperar los datos asi:

ADOQuery2.FieldByName('operacion').Text

y me dice que no existe el campo operacion, cuando si se ejecuta el sotred procedure correctamente devuelve entre ellos un atributo operacion.

salu2
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con Zeos + Stored Procedure+ MySql makina Conexión con bases de datos 4 18-02-2017 05:04:29
Ayuda con un Stored Procedure en MySQL enecumene MySQL 22 15-09-2008 00:17:57
stored procedure con mysql y delphi 7 didier Internet 2 13-10-2006 04:36:38
Llamar Un Stored Procedure Desde Un Trigger ibuser Firebird e Interbase 3 26-08-2004 10:51:48
Llamar stored procedure con BDE Ricardo Alfredo Conexión con bases de datos 3 12-09-2003 04:09:31


La franja horaria es GMT +2. Ahora son las 14:54:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi