FoxPro/Visual FoxPro - Parametros para SQL

 
Vista:
sin imagen de perfil

Parametros para SQL

Publicado por Chente (81 intervenciones) el 31/05/2010 18:01:20
Que tal!, tengo un programa en VFP_9 y tengo que extraer informacion mediante una consulta SQL, lo que hago es:

1. Hago conexion con la Base de Datos
2. Ejecuto un Store Procedure con parametros, estos si los doy como datos fijos funciona
3. Hago un SELECT FROM
4. Copio la informacion a una tabla Temporal

en otras palabras esta es la consulta:
1. mconexion = SQLCONNECT("MIBASEDATOS",'sa','MICLAVE')
2. SQLEXEC(mconexion,"DO DBO.FORMATOFACTURA 476145,476156,'HOLA'")
3. SQLEXEC(mconexion,"SELECT * FROM Factura_TEMP")
4. COPY TO tmpfacl

EL PROBLEMA RADICA EN EL PASO 2, COMO COMENTABA SI LOS DOY CON VALORES FIJOS SI FUNCIONA, PERO LO QUE PRETENDO ES QUE TANTO EL PRIMER PARAMETRO COMO EL SEGUNDO DARLOS COMO VARIABLES, CUANDO LO HAGO DE ESTA FORMA NO ME ARROJA NADA LA CONSULTA. QUE PUEDO HACER? COMO DE BO HACER EL PASO DE PARAMETROS?

El punto numero 2 lo estaba tratando de cambiar de la siguiente manera (pero no arroja nada la consulta)

folioini=479596
foliofin=479600
SQLEXEC(mconexion,"DBO.FORMATOFACTURA &folioini,&foliofin,'HOLA' ")

en el store procedure estan definifos los 2 parametros como NVARCHAR(255), el último solo es una etiqueta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Parametros para SQL

Publicado por zurcaled (22 intervenciones) el 31/05/2010 18:58:17
has intentato poner un alltrim a tus variables???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parametros para SQL

Publicado por es_binario (757 intervenciones) el 31/05/2010 21:12:28
Intentalo asi

folioini=479596
foliofin=479600
SQLEXEC(mconexion,"DBO.FORMATOFACTURA ?folioini,?foliofin,'HOLA' ")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Parametros para SQL

Publicado por Juanma Cruz (512 intervenciones) el 01/06/2010 16:35:15
Tienes que sustituir los valores en la cadena antes de intentar el pass-through


Text to cConsulta Textmerge noshow pretext 7
exec DBO.FORMATOFACTURA <<folioini>>, <<foliofin>>
endtext
nOK= sqlExec( mconexion, cConsulta, "Hola" )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Parametros para SQL

Publicado por CHENTE (81 intervenciones) el 02/06/2010 03:12:42
Gracias por la Idea, tienes razon: generando la cadena de caracteres (con la instrucción de ejecución así como los parametros) funciono (por si alguién tiene el mismo problema anoto la solucion)

miconexion = SQLCONNECT("MiBASEDEDATOS",'sa','MiClave')
cadenat= 'DBO.FORMATOFACTURA '+ALLTRIM(STR(folini))+ ','+ ALLTRIM(STR(folfin))+ ',"HOLA"'

SQLEXEC(miconexion,cadenat)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar