Una rutina de Caché (Mumps):
SYSQL(par,ind,xec,ret) ;*** Lectura Global ***
	N c,dir,exi,g1,g2,glo,i,ini,n,nin,nit,ok,pin
	I $G(par)="" Q ""
	S ind=$G(ind)
	S xec=$G(xec)
	S ret=$G(ret,"glo")
	D VAR
	D LEC
	G FIN
	;
LEC	;===== Lectura =====
	S exi=""
	I dir=0 S exi=$D(@glo),reg="",glo=$ZR,reg=$G(@glo) Q
	F  S glo=$Q(@glo,dir) Q:glo=""  D  I ok Q
	. I $QL(glo)'=nit Q
	. I $E(glo,1,$L(g1))'=g1 S ok=1,glo="" Q
	. I $E($RE(glo),1,$L(g2))'=$RE(g2) Q
	. D DAT
	. X xec
	Q
	;
DAT	;===== Datos =====
	S ok=1
	S ind="" F i=1:1:nin S $P(ind,S,i)=$QS(glo,pin+i-1)
	S reg=$G(@glo)
	Q
	;
VAR	;===== Variables =====
	S ok=0
	S glo=$P(par,P,1)
	S nin=$P(par,P,2) I nin="" S nin=1
	S dir=$P(par,P,3) I dir="" S dir=1
	S nit=$L(glo,",")+nin-1
	;
	S i=$G(@($P(glo,"*",1)_$C(34)_$C(0)_$C(34)_$P(glo,"*",2)))
	S i=$ZR
	S g1=$P(i,$C(34)_$C(0),1)
	S g2=$P(i,$C(0)_$C(34),2)
	;
	S ini="" F n=1:1:nin S i=$P(ind,S,n) Q:i=""  D
		. S c=$S($E(i)=$C(34):"",1:$C(34))
		. S $P(ini,",",n)=c_i_c
	I ini="" S ini=""""""
	S glo=g1_$S($L(ini,",")=nin:ini_g2,ini="":""""")",1:ini_")")
	;
	; Cálculo Posición 1er. Indice Variable (*)
	S i=$G(@(g1_0_")"))
	S pin=$QL($ZR)
	;
	Q
	;
FIN	;===== Final =====
	I glo="" S (ind,reg)=""
	F i=1:1:$L(ret,";") S $P(ret,";",i)=@($P(ret,";",i))
	Q ret
	;
HLP	;=================================================
	; par = parámetros:
	;		Global|NumInd|Direc.
	; ind = indice(s) inicial(s) (#)
	; xec = xecute por lectura
	; ret = variables a devolver (;)
	;		exi = existencia nodo (0/1)
	;		glo = global leído	
	;		ind = indices buscados
	;		reg = registro leído
	;		nin = nº indices variables (*)
	;		nit = nº indices totales
	;		pin = posición ($QS) 1er. indice variable
	;=================================================