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 03-03-2011
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
Problemas con Zeos

Estimados colegas , me he creado un procedimiento almacenado en mysql..
lo probe en el entorno y funciona correctamente.
El caso que de acuerdo ha algunos post habria que utilizar desde delphi
el componente TzQuery .

Código:
with zq_empresa do begin
       //si nuestro procedimiento tiene parametro de entrada entoces seria asi
     SQL.Text:='Call [/sql]MantencionEmpresa(:emp_rut,:emp_nf,:emp_rs,:emp_gr,:emp_dir,:emp_com,:emp_tel,:emp_fx,:emp_rl,:emp_rr);'; //Al poner dos puntos (:) Delphi
      //crea los parámetros automáticamente

     ParamByName('emp_rut').AsString:=datos.reg_emp_rut;
     ParamByName('emp_nf').AsString:=datos.reg_emp_nf;
     ParamByName('emp_rs').AsString:=datos.reg_emp_rs;
     ParamByName('emp_gr').AsString:=datos.reg_emp_gr;
     ParamByName('emp_dir').AsString:=datos.reg_emp_dir;
     ParamByName('emp_com').AsString:=datos.reg_emp_com;
     ParamByName('emp_tel').AsString:=datos.reg_emp_tel;
     ParamByName('emp_fx').AsString:=datos.reg_emp_fx;
     ParamByName('emp_rl').AsString:=datos.reg_emp_rl;
     ParamByName('emp_rr').AsString:=datos.reg_emp_rr;
      ShowMessage(ParamByname('emp_rut').AsString);
      Prepare;
      Open;
 // ExecSQL;
  Data_conecta.Conecta.Reconnect;
Lo anterior al ejecuarlo me da el siguiente error:
'SQL Error : You have an error in your SQL syntax: check the manual that corresponds to your Mysql server fot the right syntax to use near',,,,,,,)' an line 1

He revisado la sintaxis del porc.alm. y esta bien
Quisiera ver si alguien ya ha manejado estos componente , haber si me saca de este apuro..

De ante manos se agradece sus comentarios
Responder Con Cita
  #2  
Antiguo 03-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno sino me equivoco ese código es mio....
Viendo el error me hace pensar en que dicho error no es dentro de delphi sino más bien al hacer o llamar el procedimiento almacenado en MySQL.humm... de todas formas haber intenta de ésta forma:
Código Delphi [-]
with zq_empresa do begin
       //si nuestro procedimiento tiene parametro de entrada entoces seria asi
     SQL.Text:='Call MantencionEmpresa(:emp_rut,:emp_nf,:emp_rs,:emp_gr,:emp_dir,:emp_com,:emp_tel,:emp_fx,:emp_rl,:emp_r  r);';
                                                      {Al poner dos puntos ( : ) Delphi crea los parámetros automáticamente}

     ParamByName('emp_rut').AsString:=datos.reg_emp_rut;
     ParamByName('emp_nf').AsString:=datos.reg_emp_nf;
     ParamByName('emp_rs').AsString:=datos.reg_emp_rs;
     ParamByName('emp_gr').AsString:=datos.reg_emp_gr;
     ParamByName('emp_dir').AsString:=datos.reg_emp_dir;
     ParamByName('emp_com').AsString:=datos.reg_emp_com;
     ParamByName('emp_tel').AsString:=datos.reg_emp_tel;
     ParamByName('emp_fx').AsString:=datos.reg_emp_fx;
     ParamByName('emp_rl').AsString:=datos.reg_emp_rl;
     ParamByName('emp_rr').AsString:=datos.reg_emp_rr;
      Open;
 // ExecSQL;
 end;
...
Si sigues teniendo problemas pues rogaría que pusierás el código de tu procedimiento almacenado "MantencionEmpresa"
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 03-03-2011
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
Código SQL [-]
CREATE DEFINER=`root`@`localhost` PROCEDURE `MantencionEmpresa`( emp_rut varchar(14),emp_nf  varchar(50),emp_rs  varchar(50),
                          emp_gr  varchar(50),
                          emp_dir varchar(50),
                          emp_com varchar(50),
                          emp_tel varchar(20),
                          emp_fx  varchar(20),
                          emp_rl  varchar(50),
                          emp_rr  varchar(14))
begin

if exists(select adq_emp_rut from empresa where adq_emp_rut = emp_rut) then
      BEGIN
       update empresa             
        set  adq_emp_nf=emp_nf,
             adq_emp_rs=emp_rs,        
             adq_emp_gr=emp_gr,        
             adq_emp_dir = emp_dir,        
             adq_emp_com = emp_com,        
             adq_emp_tel = emp_tel,        
             adq_emp_fx  = emp_fx,        
             adq_emp_rl   = emp_rl,        
             adq_emp_rr  = emp_rr       
       where adq_emp_rut = emp_rut; 
          
     END;      
else
     insert into empresa (adq_emp_rut,adq_emp_nf,adq_emp_rs,adq_emp_gr,adq_emp_dir,adq_emp_com,adq_emp_tel,adq_emp_fx,
     adq_emp_rl,adq_emp_rr) values(emp_rut,emp_nf,emp_rs,emp_gr,emp_dir,emp_com,emp_tel,emp_fx,emp_rl,emp_rr);
         
end if;

end;
Remito Codigo del Porc.Almacenado...Estimado colega no se que estoy haciendo mal....y por cierto efectivamente el codigo delphi lo tome prestado de uno de tus post...gracias por ese aporte..

Última edición por rgstuamigo fecha: 03-03-2011 a las 20:33:04. Razón: Estética en el código
Responder Con Cita
  #4  
Antiguo 03-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question Pregunto

Has probado a ejecutar ese procedimiento almacenado directamente en el servidor para ver si te funciona correctamente??
No conoco la estructura de tu tabla "Empresa" pero tambien deberías verificar si los tipos de datos que se introduce como parámetros en el prodecimiento "MantencionEmpresa" son compatible con los campos de tu tabla "Empresa"
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 03-03-2011
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Has probado a ejecutar ese procedimiento almacenado directamente en el servidor para ver si te funciona correctamente??
No conoco la estructura de tu tabla "Empresa" pero tambien deberías verificar si los tipos de datos que se introduce como parámetros en el prodecimiento "MantencionEmpresa" son compatible con los campos de tu tabla "Empresa"
Estimado he revisado el codigo que me remitiste pero no puedo observer la rectificacion ,,serias tan amable de destacar cual es...

Saludos
Responder Con Cita
  #6  
Antiguo 03-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno... yo de ser tú, lo primero que haría sería probar primeramente el procedimiento directamente en el servidor... con alguna herramienta de consultas SQL ... si todo funciona ahí... pues entonces recien voy y lo pruebo desde delphi.
Yo por ejemplo utilizo MySQL Query Browser que es una herramienta de consultas SQL,etc que viene dentro del paquete MySQL GUI Tools, no se cuál estarás usando tú,ya que existen muchas, pero te recalco que primero lo pruebes directamente en el Server para que puedas deducir si el error es en el procedimiento almacenado o és dentro de Delphi.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 03-03-2011
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Bueno... yo de ser tú, lo primero que haría sería probar primeramente el procedimiento directamente en el servidor... con alguna herramienta de consultas SQL ... si todo funciona ahí... pues entonces recien voy y lo pruebo desde delphi.
Yo por ejemplo utilizo MySQL Query Browser que es una herramienta de consultas SQL,etc que viene dentro del paquete MySQL GUI Tools, no se cuál estarás usando tú,ya que existen muchas, pero te recalco que primero lo pruebes directamente en el Server para que puedas deducir si el error es en el procedimiento almacenado o és dentro de Delphi.
Saludos...
Bueno he seguido tu consejo y baje la herramientas que mensionas , ejecute el procedimiento directamente en el servidor y no tube problemas, por lo que pieso el tema estaria en delphi.Lo que no entiendo que segui al pie de la letra tus instrucciones en cuanto al codigo y el error persiste.
No se que mas podria hacer, haber si me tienes paciencia y me sigues ayudando
saludos
Responder Con Cita
  #8  
Antiguo 03-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Ya... entonces quieres decir que el procedimiento almacenado se ha creado sin errores? me confirma por favor...
Me imagino que has ejecutado la siguiente sentencia SQL desde el "MySQL Query Browser" para probarlo:
Código SQL [-]
Call MantencionEmpresa('Dat1','dat2','dato3',etc....);
Al ejecutar la anterior sentencia con datos de pruebas, no tienes ningun error?¿Te hace correctamente la actualizacion o insercion en tu tabla "Empresa"?, es decir trabaja correctamente el procedimiento almacenado?
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 03-03-2011 a las 22:02:46.
Responder Con Cita
  #9  
Antiguo 03-03-2011
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Ya... entonces quieres decir que el procedimiento almacenado se ha creado sin errores? me confirma por favor...
Me imagino que has ejecutado la siguiente sentencia SQL desde el "MySQL Query Browser" para probarlo:
Código SQL [-]
Call MantencionEmpresa('Dat1','dat2','dato3',etc....);
Al ejecutar la anterior sentencia con datos de pruebas, no tienes ningun error?¿Te hace correctamente la actualizacion o insercion en tu tabla "Empresa"?, es decir trabaja correctamente el procedimiento almacenado?
Si trabaja bien el procedimiento
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con ZEOS knnibal MySQL 2 26-01-2009 22:06:33
Problemas con la conexion con Zeos Pachangero MySQL 5 24-01-2009 19:04:26
zeos lib problemas instalar vroa74 OOP 0 10-10-2008 22:09:10
problemas con zeos...ayuudaaaa Jheysson13 Conexión con bases de datos 33 25-06-2008 00:02:00
Problemas con Zeos + Interbase pyanqn Conexión con bases de datos 2 02-11-2005 15:40:34


La franja horaria es GMT +2. Ahora son las 20:24:50.


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