FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Consulta SQL con variables
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Consulta SQL con variables
Posted: Sat Nov 10, 2012 06:03 PM
Buenos días amigos del foro, tengo una pequñq duda con estas sentencias:

Code (fw): Select all Collapse
cSql="SELECT campo1,campo2,campo3,campo4 FROM TABLA where (campo1='10') and (campo2='2012')"


Code (fw): Select all Collapse
cSql:="SELECT campo1,campo2,campo3,campo4 FROM TABLA where (campo1='"+cmon+"') and (campo2='"+cyea+"')"


Ambas sentencias me dan una cadena de texto iguales, pero al mandar la segunda consulta me manda un error, seguramente debe haber una manera de construir la consulta con datos variables, espero alguien me pueda decir como.

Muchas gracias
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Consulta SQL con variables
Posted: Sat Nov 10, 2012 06:32 PM
Try your Sql statement this way without the Parenthesis and spaces between the equal signs.

Code (fw): Select all Collapse
cSql := "SELECT campo1,campo2,campo3,campo4 From TABLA "
cSql += "Where campo1 = '"+cmon+"' and campo2 = '"+cyea+"'"


Rick Lipkin
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Consulta SQL con variables (SOLVED)
Posted: Mon Nov 12, 2012 05:14 PM

Thank you very much, it works great

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Consulta SQL con variables (SOLVED)
Posted: Mon Nov 12, 2012 05:56 PM

mariordz,

hazlo asi.

cSql:="SELECT campo1,campo2,campo3,campo4 FROM TABLA where campo1='"+alltrim(cstr(cmon))+"' and campo2='"+alltrim(cstr(cyea))+"'"

pensando que le pases mes y año de cualquier tipo (numerico o caracter)

William, Morales

Saludos



méxico.sureste
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Consulta SQL con variables
Posted: Mon Nov 12, 2012 06:36 PM

Rick / William

Thanks for your help, both examples work just fine. Appreciate the help

Gracias por su ayuda, los dos ejemplos funcionan bien. Agradezco la ayuda.

Best regards / Saludos

Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Consulta SQL con variables
Posted: Mon Nov 12, 2012 11:05 PM
hay una funcion llamada strformat que tiene argumentos como esto
StrFormat( cString, cPar1, cPar2,....,cpar9 )

donde cString puede ser "Hola %1, esta es %2 prueba de un %3 en una 4%"
%1 es reempalzado por cPar1
%2 es reempalzado por cPar2
...
%9 es reempalzado por cPar9

esto me sirve para la construccion de instrucciones sql reemplazando los valores.

Code (fw): Select all Collapse
cSql := "SELECT campo1,campo2,campo3,campo4 FROM TABLA where (campo1=%1) and (campo2=%2)"
cSql := strformat( cSql, Var2Str( 10 ), var2Str( 2012 ) )
?cSql


Code (fw): Select all Collapse
FUNCTION Var2Str( xValue )
   LOCAL cValue := "''"

   DO CASE
   CASE HB_IsString( xValue )
      cValue := "'" + xValue + "'"
   CASE HB_IsNumeric( xValue )
      cValue := AllTrim( CStr( xValue ) )
   CASE HB_IsLogical( xValue )
      cValue := IIf( xValue, 'True', 'False' )
   CASE HB_IsDate( xValue )
      cValue := "'" + DToC( xValue ) + "'"
   CASE HB_IsDateTime( xValue )
      cValue := "'" + TToC( xValue ) + "'"
   ENDCASE

RETURN cValue
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)

Continue the discussion