Hay dos formas de enviar parámetros a un stored procedure si usas Visual FoxPro:

1ª forma:

Private pcMiVar1, pcMiVar2, pnMiVar3

pcMiVar1 = "Asunción"
pcMiVar2 = "Paraguay"
pnMiVar3 = 800000

lcComando = "EXECUTE PROCEDURE MiStoredProcedure(?pcMiVar1, ?pcMiVar2, ?pnMiVar3)"
lnResultado = SQLExec(gnHandle, lcComando)

Aquí, se usa el símbolo de interrogación y luego el nombre de la variable que se desea enviar. Esa variable debe ser PRIVATE o PUBLIC (aunque supongo que sabrás que usar variables públicas no es recomendable).

2ª forma:

Local lcMiVar1, lcMiVar2, lnMiVar3

lcMiVar1 = "Asunción"
lcMiVar2 = "Paraguay"
lnMiVar3 = 6500000

lcComando = "EXECUTE PROCEDURE MiStoredProcedure(" + lcMiVar1 + ", " + lcMiVar2 + ", " + Transform(lnMiVar3) + ")"
lnResultado = SQLExec(gnHandle, lcComando)

Aquí, se concatenan las variables. Estas variables pueden ser LOCAL (como en este ejemplo), PRIVATE o PUBLIC.

¿Cuál de las dos formas es la preferible?

La 1ª es mejor porque sería más difícil para un curioso averiguar el valor de los parámetros que se están enviando.

Hay programas que los hackers usan para ver lo que se está enviando en la red, cuanto más difícil les pongas la tarea, mejor para la seguridad de tus datos.

 

 

.