Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-09-2005
Mefistofeles Mefistofeles is offline
Registrado
 
Registrado: abr 2005
Posts: 9
Poder: 0
Mefistofeles Va por buen camino
Question Llamar a Procedientos Almacenados de MySql

Hola gente... estoy teniendo un problema al hacer la llamada a un procedimiento almacenado en MySql. Mediante un Query utilizo un 'call proc(param)', activo la consulta y me devuelve un error de que el procedimiento no existe. Estoy utilizando MySql 5 y me da el mismo error cuando trato de ejecutar el procedimiento desde el MySql Query Browser. Pero cuando lo llamo desde el MySql Front 3.2 no me da problemas. Alguien me puede explicar por que??
Responder Con Cita
  #2  
Antiguo 12-09-2005
Avatar de fredo
fredo fredo is offline
Miembro
 
Registrado: oct 2003
Ubicación: Chile, Valparaiso
Posts: 318
Poder: 21
fredo Va por buen camino
Question

¿con que componentes estas trabajando par llamar a tu procedimiento.... ?
__________________
^_^

http://stna.cl
Responder Con Cita
  #3  
Antiguo 13-09-2005
Mefistofeles Mefistofeles is offline
Registrado
 
Registrado: abr 2005
Posts: 9
Poder: 0
Mefistofeles Va por buen camino
Estoy usando Delphi 6 y los componentes BDE Query, es necesario usar el componente StoreProc ?? . Luego les posteo el codigo del procedimiento, es un select simple, pero antes de que se defina el procedimiento tiene una linea que dice DELIMITER $$ y despues de la definicion un DELIMITER ; que hasta el momento no se para qué.
Responder Con Cita
  #4  
Antiguo 13-09-2005
Avatar de fredo
fredo fredo is offline
Miembro
 
Registrado: oct 2003
Ubicación: Chile, Valparaiso
Posts: 318
Poder: 21
fredo Va por buen camino
Question

supongo que el driver ODBC que estas usando no soporta aun los SP, tendrias primero que averiguar eso, ¿has probado con SP's (Store Procedure) simples?, te dan errores?, probaste llamarlo en SQLQuery de DBExpress directamente, saludos.
__________________
^_^

http://stna.cl
Responder Con Cita
  #5  
Antiguo 13-09-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Mefistofeles, recuerda que la versión de Mysql 5 está en beta todavía, puede que por ahí el asunto no te resulta con distintos software, tal como tú lo mencionaste...
Otra cosa, quizás esos software no soporten aún el MySQL 5

Saludos...
__________________
No todo es como parece ser...
Responder Con Cita
  #6  
Antiguo 26-09-2005
Mefistofeles Mefistofeles is offline
Registrado
 
Registrado: abr 2005
Posts: 9
Poder: 0
Mefistofeles Va por buen camino
El problema que tenia era que me olvide de especificar el nombre de la base de datos al llamar al procedimiento. Tendría que haber puesto 'call DB.procedure()'.
Si quiero hacer una consulta y poder ver el resultado de la consulta deberia usar una función o un procedimiento? por ejemplo, quiero hacer un listado de afiliados que ya pagaron el mes de agosto, y visualizar el resultado en un dbgrid. Mi consulta la unica linea que tiene es:

select * from pagos where estado='pagado' and periodo='08-2005';

el mensaje que obtengo es "DB.procedure Can´t return a resultset in the given context".
El ODBC que estoy utilizando es el 3.51, quiero usar el 5.0 pero me presenta conflictos al conectar la base de datos.
Responder Con Cita
  #7  
Antiguo 27-09-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por Mefistofeles
Si quiero hacer una consulta y poder ver el resultado de la consulta deberia usar una función o un procedimiento? por ejemplo, quiero hacer un listado de afiliados que ya pagaron el mes de agosto, y visualizar el resultado en un dbgrid. Mi consulta la unica linea que tiene es:

select * from pagos where estado='pagado' and periodo='08-2005';
Por qué no pruebas esa consulta con un Tquery ??

Cita:
Empezado por Mefistofeles
Si quiero hacer una consulta y poder ver el resultado de la consulta deberia usar una función o un procedimiento?
Esto no lo entiendo, un función o un procedimiento, donde ? en Delphi o MySQL ?.

Saludos.
__________________
No todo es como parece ser...
Responder Con Cita
  #8  
Antiguo 28-09-2005
Mefistofeles Mefistofeles is offline
Registrado
 
Registrado: abr 2005
Posts: 9
Poder: 0
Mefistofeles Va por buen camino
Siempre me refiero a funciones o procedimientos almacenados de MySQL. Hasta el momento estoy usando TQuery para mis consultas pero quiero comenzar a usar procedimientos almacenados en MySQL y llamarlos desde delphi.
Responder Con Cita
  #9  
Antiguo 29-09-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por Mefistofeles
.
Si quiero hacer una consulta y poder ver el resultado de la consulta deberia usar una función o un procedimiento?
Yo te recomiendo procedimientos, las funciones devuelven un resultado y depende de los quieras hacer...

Puedes llamar a los procedimientos almacenados desde un TQuery como de una consulta se tratará, yo llamo a los procedimientos de SQL Server desde un TQuery con la siguiente instrucción..

Código SQL [-]
  Exec MiProcedimiento

y creo que debería funcionarte para MySQL, sólo debes averiguar con que instrucción ejecutas un procedimiento almacenado en MySQL.

Saludos y cualquier cosa insisté...
__________________
No todo es como parece ser...

Última edición por lucasarts_18 fecha: 29-09-2005 a las 00:13:01. Razón: Correción Ortográfica
Responder Con Cita
  #10  
Antiguo 22-12-2005
Avatar de makina
makina makina is offline
Miembro
 
Registrado: oct 2005
Ubicación: Mexico DF.
Posts: 27
Poder: 0
makina Va por buen camino
Wink

Cita:
Empezado por Mefistofeles
Estoy usando Delphi 6 y los componentes BDE Query, es necesario usar el componente StoreProc ?? . Luego les posteo el codigo del procedimiento, es un select simple, pero antes de que se defina el procedimiento tiene una linea que dice DELIMITER $$ y despues de la definicion un DELIMITER ; que hasta el momento no se para qué.
El DELIMITER $$ se usa para decirle a mysql que cambie el caracter delimitador de ";" a "$$" para que puedas usar el ";" dentro de la estructura de tu sp, y al final del sp vuelve a cambiar el "$$" por el ";" (DELIMITER ; )

espero se comprenda la explicación, Saludos,. por cierto yo tengo el mismo problema si encontraste la solucion porfavor compartela.
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 03:18: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