FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Definir variable en multiples lineas
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Definir variable en multiples lineas
Posted: Tue May 23, 2017 04:24 PM
Estimados amigos del foro, despues de meses en que la empresa compr贸 la actualizaci贸n de FWH (ahora tenemos la 16.04) por fin le estoy dando uso, y se me presenta este peque帽o detalle, con la versi贸n anterior de fivewin definia una variable en multiples l铆neas asi:
Code (fw): Select all Collapse
cCadsql1 := "SELECT campo1,campo2,campo3 FROM tala1 INNER JOIN tabla2 ON ;
tabla1.campo1 = tabla2.campo2 INNER JOIN tabla2 ON tabla2.campo21 = tabla3.campo4 聽;
WHERE (tabla1.campo3<>'') AND (tabla3.campo2 < '3') and tabla2.campo3>0 ;
order by tabla1.campo3"


En esta nueva versi贸n no me esta respeytando el ";" como indicador de salo de l铆nea, tienen alguna idea de como corregir este detalle? La verdad es que hay muchas llamadas a SQL desde el sistema que estoy migrando y modificar todas ellas me llevar铆a un buen tiempo, adem谩s de que no me es practico tener la sentencia en una sola l铆nea que ser铆a demasiado larga.

Saludos.
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Definir variable en multiples lineas
Posted: Tue May 23, 2017 04:48 PM
mariordz wrote:Estimados amigos del foro, despues de meses en que la empresa compr贸 la actualizaci贸n de FWH (ahora tenemos la 16.04) por fin le estoy dando uso, y se me presenta este peque帽o detalle, con la versi贸n anterior de fivewin definia una variable en multiples l铆neas asi:
Code (fw): Select all Collapse
cCadsql1 := "SELECT campo1,campo2,campo3 FROM tala1 INNER JOIN tabla2 ON ;
tabla1.campo1 = tabla2.campo2 INNER JOIN tabla2 ON tabla2.campo21 = tabla3.campo4 聽;
WHERE (tabla1.campo3<>'') AND (tabla3.campo2 < '3') and tabla2.campo3>0 ;
order by tabla1.campo3"


En esta nueva versi贸n no me esta respeytando el ";" como indicador de salo de l铆nea, tienen alguna idea de como corregir este detalle? La verdad es que hay muchas llamadas a SQL desde el sistema que estoy migrando y modificar todas ellas me llevar铆a un buen tiempo, adem谩s de que no me es practico tener la sentencia en una sola l铆nea que ser铆a demasiado larga.

Saludos.


Puedes hacerlo asi

Code (fw): Select all Collapse
local cCadsql1 := "SELECT campo1,campo2,campo3 FROM tala1 INNER JOIN tabla2 ON " + ;
"tabla1.campo1 = tabla2.campo2 INNER JOIN tabla2 ON tabla2.campo21 = tabla3.campo4 " + ;
"WHERE (tabla1.campo3<>'') AND (tabla3.campo2 < '3') and tabla2.campo3>0 " + ;
"order by tabla1.campo3"


o busca informaci贸n en el foro sobre el comando
Code (fw): Select all Collapse
TEXT INTO cCadsql1

ENDTEXT
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Definir variable en multiples lineas
Posted: Tue May 23, 2017 04:49 PM
Se me ocurre que la variable est谩 mal definida, yo lo hago as铆.
Code (fw): Select all Collapse
cCadsql1 := "SELECT campo1,campo2,campo3 FROM tala1 INNER JOIN tabla2 ON " + ;
"tabla1.campo1 = tabla2.campo2 INNER JOIN tabla2 ON tabla2.campo21 = tabla3.campo4 " +;
"WHERE (tabla1.campo3<>'') AND (tabla3.campo2 < '3') and tabla2.campo3>0 " +;
"order by tabla1.campo3"

Saludos
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Definir variable en multiples lineas
Posted: Tue May 23, 2017 05:38 PM

Muchas gracias por sus respuestas, lo hice como sugieren y ya esta funcionando (despues de modificar en todos los PRG's que componen mi sistema), como coment茅, en la versi贸n anterior si funcionaba sin necesidad de cerrar la cadena y volver a iniciarla en la siguiente l铆nea, pero supongo que son esos peque帽os detalles que varian de una versi贸n a otra, otro detalle curioso es que tengo definidas variables con multiples l铆neas y no me da ese error, por alguna extra帽a raz贸n solo me marcaba error en las variables que mando como cadena a SQL.

Mil gracias nuevamente.

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Definir variable en multiples lineas
Posted: Tue May 23, 2017 05:41 PM

Quiz谩s porque la cadena contiene ' ( comillas sencillas ) que puede entender como final de cadena y comienzo de otra ( con la siguiente ' )

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Definir variable en multiples lineas
Posted: Wed May 24, 2017 03:06 AM
Una forma de evitarte esos detalles y usar multiples linea seria alago como esto...saludos... :-)

Code (fw): Select all Collapse
   cSql := "SELECT db.id_referencia_bancaria, db.cedula_cliente, db.cedula_dueno, "
   cSql += "td.tipo_dato_td, db.id_banco, bc.banco, db.id_tipo_cuenta, db.pax "

   cSql += "FROM tbl_datos_bancarios AS db "

   cSql += "LEFT JOIN tbl_tipos_datos_td  AS td ON db.id_tipo_dato_td = td.id_tipo_dato_td "

   cSql += "WHERE db.cedula_cliente = " + ClipValue2SQL( aVarCtt[1] ) + " "

   cSql += "ORDER BY db.cuenta_nombre_titular"

   TRY
      oQry := TDolphinQry():New( cSql, oDatos:oConex )
   CATCH oError
      ShowError( oError, cSql )
   END
Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Definir variable en multiples lineas
Posted: Wed May 24, 2017 02:12 PM
Mario:

Algo como esto que da m谩s claridad en el c贸digo

Code (fw): Select all Collapse
聽 聽 oRsPay:Source聽 聽聽 聽 聽 聽 聽 聽 := "SELECT " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "*," +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Puestos.*," +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Departamentos.*," +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Bancos.*," +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Tipos.* " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "FROM " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "LEFT JOIN " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Puestos " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "ON " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_CIA = Puestos.PUE_CIA " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "AND " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_PUE = Puestos.PUE_PUE " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "LEFT JOIN " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Departamentos " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "ON " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_CIA = Departamentos.DEP_CIA " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "AND " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_DEP = Departamentos.DEP_DEP " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "LEFT JOIN " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Bancos " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "ON " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_CIA = Bancos.BAN_CIA " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "AND " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_BAN = Bancos.BAN_BAN " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "LEFT JOIN " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Tipos " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "ON " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_CIA = Tipos.TIP_CIA " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "AND " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "Empleados.EMP_TIN = Tipos.TIP_TIP " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "ORDER BY " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "EMP_AYN"


Imagina este c贸digo en una sola l铆nea horizontal, despu茅s de varios meses de haberla
escrito, ser铆a muy dif铆cil de entender.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Definir variable en multiples lineas (RESUELTO)
Posted: Wed May 24, 2017 05:22 PM

Armando, exactamente ese es mi punto, la claridad y facilidad para leer una sentencia tan larga, ahora que ya he aplicado una soluci贸n propuesta mi c贸digo es entendible (por lo menos para mi LOL).

Gracias y saludos.

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Definir variable en multiples lineas
Posted: Wed May 24, 2017 05:25 PM

Mario:

Vientos caon!

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: Definir variable en multiples lineas
Posted: Mon May 29, 2017 09:29 AM

Mario,

hace alg煤n tiempo se discuti贸 el tema en el foro y se sacaron a la luz cosas bastante interesantes, sobre todo a nivel de legibilidad de SQL

viewtopic.php?f=6t=29700start=0

Hay una funci贸n EXPAND que junto con TEXT INTO <var> ayuda a hacer la vida m谩s f谩cil.

Un saludo

&&

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"

Continue the discussion