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 Zeos + Stored Procedure+ MySql
!Hola a todos¡
Tengo un problema con los Zeos tratando de ejecutar un Stored procedure, el stored procedure debe regresar datos de un select y he intentado correrlo con un TZQuery y con el TZStoredProcedure sin éxito, en el primer caso me manda el mensaje "db.sp cannot retunr a result set in the given context" y en el segundo caso me dice "unsupported operation". Cabe mencionar que no puedo utilizar el procedimiento ExecSQL debido a que necesito que me regrese el resultado del sp. el sp es el siguiente: Código:
DELIMITER $$ DROP PROCEDURE IF EXISTS `db`.`sp`$$ CREATE PROCEDURE "db"."sp"() BEGIN select Mensaje,tipo from mensaje where Numero='1000'; END$$ DELIMITER ; Código:
query.Close; query.SQL.Text:='call sp()'; {tambien lo he intentado con query.sql.ADD('call sp()')} query.Active:=true; Código:
z.Close; z.StoredProcName:='SP()'; z.Active:=true; Última edición por makina fecha: 17-10-2005 a las 02:17:12. |
#2
|
||||
|
||||
Solucion
Buscando en los foros de mysql.com me di cuenta de que no era el único con este problema, al parecer aun hay algunos problemas en cuanto a que la bd regrese el resultado de un sp al cliente, y por lo visto ni los zeos, dbexpress, ado, etc , ofrecen aun una solucion, sin embargo encontre los componentes MyDac (http://crlab.com/mydac/download.html) (no se que tiene mi browser que no pude insertar el link por eso pongo la url completa) , estos los estuve probando y me da gusto decir que funcionan a la perfeccion el unico inconveniente es que no son FW, pero si se ponen a pensar en todo el tiempo que se pueden ahorrar utilizandolos se daran cuenta de que el costo no es alto.. Saludos a todos los foristas. Feliz año nuevo makina.
|
#3
|
|||
|
|||
Resolver del problema de procedimeinto en ZEOSLIB
Bueno ya yo pase por ese asunto.
No esta documentado a ciencia cierta como se hace el trabajo, pero cuando uno tiene la necesidas de alguna forma se consigue el resultado. Resulta que se hace con el TZQUERY de la siguiente forma: oCnn: TZConnection; oQry: tzquery; oCnn.Properties.Clear; oCnn.Properties.Add('CLIENT_MULTI_STATEMENTS=1'); oCnn.HostName := 127.0.0.1; oCnn.protocol := 'mysql-5'; oCnn.Port := 3306; oCnn.User := root; oCnn.Password := ''; oCnn.Database := dbname; oCnn.Catalog := dbname; oCnn.Connected := true; Si no se incluye "CLIENT_MULTI_STATEMENTS=1" en la propiedad, nunca se ejecutara el procedimiento almacenado. oQry.Connection := oCnn; oQry.SQL.Clear; oQry.SQL.Text := 'CALL MYPROC 1,2,3'; oQry.ExecSQL; oCnn.reconnect; Los SELECT se executan con la sentencia "oQry.Open" para ejecutar o mejor dicho abrir los resultados de la consulta; pero resulta que para los procedimientos almacenados se deben usar "oQry.ExecSQL" el cual ejecuta el comando y devuelve los resultados. Y por último por alguna extraña razón hay que colocar reconect depues de ejecutar el comando del procedimiento; si no lo haces, no ejecutará correctamente la siguiente consulta. *A los desarrolldores de ZEOS. *Si existe alguna forma mas eficiente de hacer el trabajo por favor documentar como. Saludos: Johnn G. Gutiérrez Panamá, Ciudad. Rep. Panamá. |
#4
|
|||
|
|||
Problema con Zeos + Stored Procedure+ MySql
Problema con Zeos + Stored Procedure+ MySql
Leer arriba!!! |
#5
|
|||
|
|||
Cita:
Y ese codigo donde va? |
|
|
|