Consulta SQL con variables

Post Reply
User avatar
mariordz
Posts: 127
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México

Consulta SQL con variables

Post by mariordz »

Buenos días amigos del foro, tengo una pequñq duda con estas sentencias:

Code: Select all

cSql="SELECT campo1,campo2,campo3,campo4 FROM TABLA where (campo1='10') and (campo2='2012')"

Code: Select all

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
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: Consulta SQL con variables

Post by Rick Lipkin »

Try your Sql statement this way without the Parenthesis and spaces between the equal signs.

Code: Select all

cSql := "SELECT campo1,campo2,campo3,campo4 From TABLA "
cSql += "Where campo1 = '"+cmon+"' and campo2 = '"+cyea+"'"
 
Rick Lipkin
User avatar
mariordz
Posts: 127
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México

Re: Consulta SQL con variables (SOLVED)

Post by mariordz »

Thank you very much, it works great
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: Consulta SQL con variables (SOLVED)

Post by wmormar »

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
User avatar
mariordz
Posts: 127
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México

Re: Consulta SQL con variables

Post by mariordz »

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
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Consulta SQL con variables

Post by carlos vargas »

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: Select all

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

 

Code: Select all


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)
Post Reply