Stored Procs + Tdolphin

Post Reply
jbrita
Posts: 506
Joined: Mon Jan 16, 2006 3:42 pm

Stored Procs + Tdolphin

Post by jbrita »

Buenos dias,, necesito un ejemplo del manejo stored procs con tdolphin.
saludos
User avatar
Antonio Linares
Site Admin
Posts: 42259
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Stored Procs + Tdolphin

Post by Antonio Linares »

https://tdolphin.blogspot.com/
Procedimientos Almacenados / stored Procedures
Creamos el procedimiento almacenado desde el cliente mysql de nuestra preferencia


DELIMITER $
DROP PROCEDURE IF EXISTS born_in_year;
CREATE PROCEDURE born_in_year( year_of_birth INT )
BEGIN
SELECT first_name, last_name, birth, death from president where year( birth ) = year_of_birth;
END $
DELIMITER ;

para ejecutarlo simplemento lo hacenmos pro medio de un query


cText = "CALL born_in_year( 1908 )"
oQry := oServer:Query( cText )

el siguiente llamdo es importante para "terminar" el proceso
oServer:NextResult()

veammos el ejemplo completo


#include "tdolphin.ch"

#define CRLF Chr( 13 ) + Chr( 10 )

PROCEDURE Main()

LOCAL cText := ""
LOCAL oQry, oServer

SET CENTURY ON
SET DATE FORMAT "dd/mm/yyyy"

D_SetCaseSensitive( .T. )

IF ( oServer := ConnectTo() ) == NIL
RETURN NIL
ENDIF
cls

cText = "CALL born_in_year( 1908 )"

oQry := oServer:Query( cText )

DolphinBrw( oQry, "Test" )

oServer:NextResult()

oQry:End()

cText = "CALL born_in_year( 1913 )"

oQry := oServer:Query( cText )

DolphinBrw( oQry, "Test" )

oServer:NextResult()

oQry:End()

cText = "call count_born_in_year( 1913, @count )"

oQry := oServer:Execute( cText )

oServer:NextResult()

oQry := oServer:Query( "select @count as count" )

? "count is:"
?? oQry:count

oQry:End()



RETURN









esto verifica que no exista otro query con resultado (por motivos de posibles multiples sentencias en los precedimeintos) y cierra el ciclo de existir otro query con resultado deberiamos hacer lo siguiente

oQry:LoadNextQuery( )

asi cargamnos automaticamente el proximo resultado de un query para multi sentencias

ejemplo de multiples sentencias


#include "tdolphin.ch"


FUNCTION Main()

LOCAL oServer, oQry

D_SetCaseSensitive( .T. )
Set_MyLang( "esp" )

IF ( oServer := ConnectTo() ) == NIL
RETURN NIL
ENDIF

oQry = oServer:Query( "select * from president; select * from student" )

DolphinBrw( oQry, "President" )

oQry:LoadNextQuery( )

DolphinBrw( oQry, "Student" )

oQry = NIL

oServer:End()

RETURN NIL


#include "connto.prg"
#include "brw.prg"




regards, saludos

Antonio Linares
www.fivetechsoft.com
jbrita
Posts: 506
Joined: Mon Jan 16, 2006 3:42 pm

Re: Stored Procs + Tdolphin

Post by jbrita »

Muchas Gracias Antonio
Saludos
Post Reply