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 12-04-2010
rodriguezwalter rodriguezwalter is offline
Registrado
 
Registrado: nov 2007
Posts: 4
Poder: 0
rodriguezwalter Va por buen camino
Question Stored Procedure con MySQL

Hola a todos.

Estoy comenzando a trabajar con Stored procedures en Delphi y no encuentro la forma correcta de llamarlos (invocarlos).

No creo que el problema sea tan grande pero ya no se que hacer.

La Base de Datos es MySQL.

Utilizo el TStoredProc y el TDataBase.

Conecto la Base de Datos, completo los campos de Base de Datos en el TStoredProc y Selecciono el nombre del procedimiento, lo cual indica que por lo menos hasta este paso el componente del Stored conecta.

Creo los parámetros en Params y al intentar correr la aplicación siempre sale algún error como por ejemplo:
project Project1.exe raised exception class ElistError with message 'List out bounds (0)'.
Este error no es el único. En ocaciones probando y arreglando los parámetros aparecen errores que justo no he copiado pero se refieren a que no están definidos o existe algun inconveniente en la definición de por ejemplo el primer parámetro (El cual sí está definido)

He averiguado y aparentemente el problema está en la definición pero lo que he ledido hasta ahora no aporta nada nuevo ya que el problema sigue.

Además, intenté correro el Stored Procedure con una sentencia call desde un tquery pero no logro correr nada.

¿Alguien sabe qué pasos debo seguir para poder correr un StoredProc desde Delphi contra una Base MYSQL.

Adicionales:
Utilizo una conector ODBC que bajé de MySQL para conectar el equipo del desarrollo (WIndows) al equipo de Base de Datos (Windows).

En caso de necesitar algunos datos más, los agrego.
Desde ya gracias por todo.

Última edición por rodriguezwalter fecha: 13-04-2010 a las 15:15:01.
Responder Con Cita
  #2  
Antiguo 15-04-2010
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

Revisa éste hilo que puede servirte de ayuda..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 12-01-2011
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Y todo es posible...

Hola, como vi que muchos preguntan lo mismo y hasta me vi en la misma situación y probé varias alternativas que vi en la web y no me funcionaron,
desde asignar parametros hasta crearlos y no funcionaba decidí probar de ésta manera y funcionó a la perfección. Nose si con las versiones de zeos
que usan les funciona los ejemplos aportados o no, pero a mi me daba siempre operación no soportada y uso la ultima version siempre.
Aclaración: Todas las pruebas las hacia desde la creación de un objeto TZStoredProc.

Código:
procedure TfrmOFFSET.btnOKClick(Sender: TObject);
var
    sSQL:string;
    qryEXEC:TZQuery;
begin
    sSQL := 'CALL SP_ORDEN_HEAD_INS' +
            ' ( ' +
                ':ID_CLIENTE, ' +
                ':FECHA_INICIO, ' +
                ':FECHA_ENTREGA, ' +
                ':DOMICILIO_ENTREGA, ' +
                ':TELEFONOS, ' +
                ':EMAIL, ' +
                ':ID_RUBRO, ' +
                ':MUESTRA, ' +
                ':OBSERVACIONES' +
            ' ) ';

    qryEXEC := TZQuery.Create( nil );
    qryEXEC.SQL.Add( sSQL );

    qryEXEC.ParamByName( 'ID_CLIENTE'            ).Value := iCliente;
    qryEXEC.ParamByName( 'FECHA_INICIO'            ).Value := dInicio;
    qryEXEC.ParamByName( 'FECHA_ENTREGA'        ).Value := dFin;
    qryEXEC.ParamByName( 'DOMICILIO_ENTREGA'    ).Value := sDomic;
    qryEXEC.ParamByName( 'TELEFONOS'            ).Value := sTel;
    qryEXEC.ParamByName( 'EMAIL'                ).Value := seMail;
    qryEXEC.ParamByName( 'ID_RUBRO'                ).Value := lngRubro; 
    qryEXEC.ParamByName( 'MUESTRA'                ).Value := Abs( StrToInt( BoolToStr( bMuestra ) ) );
    qryEXEC.ParamByName( 'OBSERVACIONES'        ).Value := sObserv;

    qryEXEC.Connection := Data.zConx;
    qryEXEC.ExecSQL;
    FreeAndNil( qryEXEC );
    Close;
end;
Así que acá posteo mi humilde fragmento de código, funciona a la perfección y aparte mucho más prolijo que andar concatenando cadenas de parámetros.
Así que bueh, espero que a alguien le sirva y pueda aprovecharlo.

Saludos gente del Club y gracias por existir!
Walter
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
Problema con Zeos + Stored Procedure+ MySql makina Conexión con bases de datos 4 18-02-2017 04:04:29
Llamar a un stored procedure de mysql y recuperar resultados tksko Conexión con bases de datos 4 05-11-2008 16:26:24
Ayuda con un Stored Procedure en MySQL enecumene MySQL 22 14-09-2008 23:17:57
stored procedure con mysql y delphi 7 didier Internet 2 13-10-2006 03:36:38
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22


La franja horaria es GMT +2. Ahora son las 21:08:51.


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