Ver Mensaje Individual
  #5  
Antiguo 18-02-2017
sabroso sabroso is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 13
Reputación: 0
sabroso Va por buen camino
Cita:
Empezado por jg_gutierrez Ver Mensaje
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á.

Y ese codigo donde va?
Responder Con Cita