In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Inconvenientes al usar BuildSQLSt

Foro de Xailer profesional en español
Responder
jaguilar
Mensajes: 19
Registrado: Mié Nov 16, 2005 6:32 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jaguilar »

Que tal amigos;
Resulta que estoy usando BuildSQLSt de la siguiente manera:
METHOD Edit1Exit( oSender, oNextCtl ) CLASS TForm1
Local cSelect := "SELECT * FROM BSCOtrosProductos WHEN Folio = ? AND
idProducto = ?"
Local cResult := ::oADS1:BuildSQLSt( cSelect,
trim(::oEdit1:Value),::oComboBox1:nIndex )
Local oDataSet
//msginfo( cResult ) => 'SELECT * FROM BSCOtrosProductos WHEN Folio =
'00007' AND idProducto = 1'
oDataSet := ::oADS1:Query( cResult )
oDataSet:Open()
::oEdit2:Value := ::oADS1:Peso_Entrada
::oEdit3:Value := ::oADS1:Fecha_Entrada
::oEdit4:Value := ::oADS1:Peso_Salida
::oEdit5:Value := ::oADS1:Fecha_Salida
RETURN Nil
Pero al ejecutar el programa me manda un error : ( segun adjunto )
me podrian auxiliar en decirme que estoy haciendo mal o que me fatla.
Es una base de datos de MSQLserver 2000
saludos coordiales
José Luis Aguilar

--

Attached files
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jose.luis »

José Luis,
>
> Local cSelect := "SELECT * FROM BSCOtrosProductos WHEN Folio = ? AND
> idProducto = ?"
>
> Local cSelect := "SELECT * FROM BSCOtrosProductos WHERE Folio = ? AND
> idProducto = ?"
Saludso,
José LUisCapel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Inconvenientes al usar BuildSQLSt

Mensaje por ignacio »

José Luis,
1) Campo Folio no existe
2) Campo Folio no es de tipo cadena
3) CAmpo idProducto no existe
4) Campo idProducto no es de tipo numérico
Intenta ejecutar esa misma SELECT desde tu herramaienta de mantenimiento de
la BD (Enterprise manager supongo)
Saludos
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José Luis Aguilar Sánchez" <jaguilar@gamsa.com.mx> escribió en el mensaje
news:[email=4900a552@ozsrv2.ozlan.local...]4900a552@ozsrv2.ozlan.local...[/email]
> Que tal amigos;
>
> Resulta que estoy usando BuildSQLSt de la siguiente manera:
>
> METHOD Edit1Exit( oSender, oNextCtl ) CLASS TForm1
>
> Local cSelect := "SELECT * FROM BSCOtrosProductos WHEN Folio = ? AND
> idProducto = ?"
>
> Local cResult := ::oADS1:BuildSQLSt( cSelect,
> trim(::oEdit1:Value),::oComboBox1:nIndex )
>
> Local oDataSet
>
> //msginfo( cResult ) => 'SELECT * FROM BSCOtrosProductos WHEN Folio =
> '00007' AND idProducto = 1'
>
>
> oDataSet := ::oADS1:Query( cResult )
> oDataSet:Open()
> ::oEdit2:Value := ::oADS1:Peso_Entrada
> ::oEdit3:Value := ::oADS1:Fecha_Entrada
>
> ::oEdit4:Value := ::oADS1:Peso_Salida
> ::oEdit5:Value := ::oADS1:Fecha_Salida
>
>
> RETURN Nil
>
>
> Pero al ejecutar el programa me manda un error : ( segun adjunto )
>
> me podrian auxiliar en decirme que estoy haciendo mal o que me fatla.
>
> Es una base de datos de MSQLserver 2000
>
> saludos coordiales
>
> José Luis Aguilar
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jaguilar
Mensajes: 19
Registrado: Mié Nov 16, 2005 6:32 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jaguilar »

Ignacio:
Los campos son de una tabla de sqlserver y si existen, y solo me funciona de
la siguiente forma:
WITH OBJECT ::oSqlQuery1
IF :lOpen
:Close()
ENDIF
:cSelect := "select * from bscotrosproductos where idproducto= " +
rtrim(Str( ::oComboBox1:nIndex ) ) + " and folio='" + TRIM(
::oEdit1:Value ) + "'"
:Open()
if :eof()
msgalert( "no existe tal registro" )
::oEdit1:Setfocus() <------------------- aquí­ este punto no me
funciona correcto
endif
END WITH
::oEdit2:Value := TRANSFORM( ::oSqlQuery1:Peso_Entrada, "999,999" )
::oEdit3:Value := ::oSqlQuery1:Fecha_Entrada
::oEdit4:Value := TRANSFORM(::oSqlQuery1:Peso_Salida, "999,999" )
::oEdit5:Value := ::oSqlQuery1:Fecha_Salida
Saludos
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje de
noticias:4900a810$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> José Luis,
>
> 1) Campo Folio no existe
> 2) Campo Folio no es de tipo cadena
> 3) CAmpo idProducto no existe
> 4) Campo idProducto no es de tipo numérico
>
> Intenta ejecutar esa misma SELECT desde tu herramaienta de mantenimiento
> de la BD (Enterprise manager supongo)
>
> Saludos
>
> --
> Ignacio Ortiz de Zúñiga
> [Soporte Xailer]
> [Xailer support]
>
>
> "José Luis Aguilar Sánchez" <jaguilar@gamsa.com.mx> escribió en el mensaje
> news:[email=4900a552@ozsrv2.ozlan.local...]4900a552@ozsrv2.ozlan.local...[/email]
>> Que tal amigos;
>>
>> Resulta que estoy usando BuildSQLSt de la siguiente manera:
>>
>> METHOD Edit1Exit( oSender, oNextCtl ) CLASS TForm1
>>
>> Local cSelect := "SELECT * FROM BSCOtrosProductos WHEN Folio = ? AND
>> idProducto = ?"
>>
>> Local cResult := ::oADS1:BuildSQLSt( cSelect,
>> trim(::oEdit1:Value),::oComboBox1:nIndex )
>>
>> Local oDataSet
>>
>> //msginfo( cResult ) => 'SELECT * FROM BSCOtrosProductos WHEN Folio =
>> '00007' AND idProducto = 1'
>>
>>
>> oDataSet := ::oADS1:Query( cResult )
>> oDataSet:Open()
>> ::oEdit2:Value := ::oADS1:Peso_Entrada
>> ::oEdit3:Value := ::oADS1:Fecha_Entrada
>>
>> ::oEdit4:Value := ::oADS1:Peso_Salida
>> ::oEdit5:Value := ::oADS1:Fecha_Salida
>>
>>
>> RETURN Nil
>>
>>
>> Pero al ejecutar el programa me manda un error : ( segun adjunto )
>>
>> me podrian auxiliar en decirme que estoy haciendo mal o que me fatla.
>>
>> Es una base de datos de MSQLserver 2000
>>
>> saludos coordiales
>>
>> José Luis Aguilar
>>
>>
>>
>
>
>
jaguilar
Mensajes: 19
Registrado: Mié Nov 16, 2005 6:32 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jaguilar »

Aqui una muestra, de que funciona, sin usar BuildSQLSt.
Otra caso que observo es que si armo la cadena de consulta de ésta forma:
Local cSelect
Local oDataSet
cSelect := "SELECT * FROM BSCOtrosProductos "
cSelect += " WHEN idProducto = " + rtrim(Str( ::oComboBox1:nIndex ) )
cSelect += " AND FOLIO = '" + TRIM( ::oEdit1:Value ) + "'"
msginfo( cSelect ) <---- solo para monitorear la cadena formada ;
lo que arroja : "select * from
bscotrosproductos where idproducto=1 and folio= '03228' "
y la incluyo en
:cSelect := cSelect y no funciona, da error mostrado en primer post.
saludos
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje de
noticias:4900a810$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> José Luis,
>
> 1) Campo Folio no existe
> 2) Campo Folio no es de tipo cadena
> 3) CAmpo idProducto no existe
> 4) Campo idProducto no es de tipo numérico
>
> Intenta ejecutar esa misma SELECT desde tu herramaienta de mantenimiento
> de la BD (Enterprise manager supongo)
>
> Saludos
>
> --
> Ignacio Ortiz de Zúñiga
> [Soporte Xailer]
> [Xailer support]
>
>
> "José Luis Aguilar Sánchez" <jaguilar@gamsa.com.mx> escribió en el mensaje
> news:[email=4900a552@ozsrv2.ozlan.local...]4900a552@ozsrv2.ozlan.local...[/email]
>> Que tal amigos;
>>
>> Resulta que estoy usando BuildSQLSt de la siguiente manera:
>>
>> METHOD Edit1Exit( oSender, oNextCtl ) CLASS TForm1
>>
>> Local cSelect := "SELECT * FROM BSCOtrosProductos WHEN Folio = ? AND
>> idProducto = ?"
>>
>> Local cResult := ::oADS1:BuildSQLSt( cSelect,
>> trim(::oEdit1:Value),::oComboBox1:nIndex )
>>
>> Local oDataSet
>>
>> //msginfo( cResult ) => 'SELECT * FROM BSCOtrosProductos WHEN Folio =
>> '00007' AND idProducto = 1'
>>
>>
>> oDataSet := ::oADS1:Query( cResult )
>> oDataSet:Open()
>> ::oEdit2:Value := ::oADS1:Peso_Entrada
>> ::oEdit3:Value := ::oADS1:Fecha_Entrada
>>
>> ::oEdit4:Value := ::oADS1:Peso_Salida
>> ::oEdit5:Value := ::oADS1:Fecha_Salida
>>
>>
>> RETURN Nil
>>
>>
>> Pero al ejecutar el programa me manda un error : ( segun adjunto )
>>
>> me podrian auxiliar en decirme que estoy haciendo mal o que me fatla.
>>
>> Es una base de datos de MSQLserver 2000
>>
>> saludos coordiales
>>
>> José Luis Aguilar
>>
>>
>>
>
>
>
--

Attached files
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Inconvenientes al usar BuildSQLSt

Mensaje por ignacio »

José Luis,
>> Primer mensaje ..:BuildSQLSt( cSelect,
>> trim(::oEdit1:Value),::oComboBox1:nIndex )
>> En tu último mensaje: " and folio='" + TRIM( ::oEdit1:Value ) + ...
Por lo que veo en tu Select FOLIO NO ES NUMERICO, y te aseguro que
oComboBox1:nIndex si lo es.
Saludos
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José Luis Aguilar Sánchez" <jaguilar@gamsa.com.mx> escribió en el mensaje
news:4900af0d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio:
> Los campos son de una tabla de sqlserver y si existen, y solo me funciona
> de la siguiente forma:
>
> WITH OBJECT ::oSqlQuery1
> IF :lOpen
> :Close()
> ENDIF
> :cSelect := "select * from bscotrosproductos where idproducto= " +
> rtrim(Str( ::oComboBox1:nIndex ) ) + " and folio='" + TRIM(
> ::oEdit1:Value ) + "'"
> :Open()
> if :eof()
> msgalert( "no existe tal registro" )
> ::oEdit1:Setfocus() <------------------- aquí este punto no me
> funciona correcto
> endif
> END WITH
>
>
> ::oEdit2:Value := TRANSFORM( ::oSqlQuery1:Peso_Entrada, "999,999" )
> ::oEdit3:Value := ::oSqlQuery1:Fecha_Entrada
>
> ::oEdit4:Value := TRANSFORM(::oSqlQuery1:Peso_Salida, "999,999" )
> ::oEdit5:Value := ::oSqlQuery1:Fecha_Salida
>
> Saludos
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje de
> noticias:4900a810$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> José Luis,
>>
>> 1) Campo Folio no existe
>> 2) Campo Folio no es de tipo cadena
>> 3) CAmpo idProducto no existe
>> 4) Campo idProducto no es de tipo numérico
>>
>> Intenta ejecutar esa misma SELECT desde tu herramaienta de mantenimiento
>> de la BD (Enterprise manager supongo)
>>
>> Saludos
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> [Soporte Xailer]
>> [Xailer support]
>>
>>
>> "José Luis Aguilar Sánchez" <jaguilar@gamsa.com.mx> escribió en el
>> mensaje news:[email=4900a552@ozsrv2.ozlan.local...]4900a552@ozsrv2.ozlan.local...[/email]
>>> Que tal amigos;
>>>
>>> Resulta que estoy usando BuildSQLSt de la siguiente manera:
>>>
>>> METHOD Edit1Exit( oSender, oNextCtl ) CLASS TForm1
>>>
>>> Local cSelect := "SELECT * FROM BSCOtrosProductos WHEN Folio = ? AND
>>> idProducto = ?"
>>>
>>> Local cResult := ::oADS1:BuildSQLSt( cSelect,
>>> trim(::oEdit1:Value),::oComboBox1:nIndex )
>>>
>>> Local oDataSet
>>>
>>> //msginfo( cResult ) => 'SELECT * FROM BSCOtrosProductos WHEN Folio =
>>> '00007' AND idProducto = 1'
>>>
>>>
>>> oDataSet := ::oADS1:Query( cResult )
>>> oDataSet:Open()
>>> ::oEdit2:Value := ::oADS1:Peso_Entrada
>>> ::oEdit3:Value := ::oADS1:Fecha_Entrada
>>>
>>> ::oEdit4:Value := ::oADS1:Peso_Salida
>>> ::oEdit5:Value := ::oADS1:Fecha_Salida
>>>
>>>
>>> RETURN Nil
>>>
>>>
>>> Pero al ejecutar el programa me manda un error : ( segun adjunto )
>>>
>>> me podrian auxiliar en decirme que estoy haciendo mal o que me fatla.
>>>
>>> Es una base de datos de MSQLserver 2000
>>>
>>> saludos coordiales
>>>
>>> José Luis Aguilar
>>>
>>>
>>>
>>
>>
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jose.luis »

Hola,
>
> cSelect := "SELECT * FROM BSCOtrosProductos "
> cSelect += " WHEN idProducto = " + rtrim(Str( ::oComboBox1:nIndex ) )
> cSelect += " AND FOLIO = '" + TRIM( ::oEdit1:Value ) + "'"
> msginfo( cSelect ) <---- solo para monitorear la cadena formada ;
> lo que arroja : "select * from
> bscotrosproductos where idproducto=1 and folio= '03228' "
> y la incluyo en
El when, mirad donde pone When a ver si viene por ahí el problema.
Saludos,
José lUis Capel
jaguilar
Mensajes: 19
Registrado: Mié Nov 16, 2005 6:32 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jaguilar »

> Por lo que veo en tu Select FOLIO NO ES NUMERICO, y te aseguro que
> oComboBox1:nIndex si lo es.
Afirmativo: Folio es un campo Character y idProducto (
ComboBox1:nIndex ) es numérico
lo curioso es que la cadena si se arma en forma correcta, pero al
ejecutarla, salta el error como lo he posteado.
la cadena debe resultar de la siguiente forma:
select * from bscOtrosProductos where idProducto=1 and Folio= '03228'
Saludos y gracias por las atenciones.
José Luis Aguilar
jaguilar
Mensajes: 19
Registrado: Mié Nov 16, 2005 6:32 pm

Inconvenientes al usar BuildSQLSt

Mensaje por jaguilar »

Hola a todos los que les distraje la atención, pero me siento apenado, ya
que teniendo el problema en frente de mi no lo veí­a y mi tocayo y amigo José
Luis Capel, me lo estaba señalando, pero yo bloqueado, en efecto escribi
mal, nose de donde me vino el WHEN y debe ser WHERE upppssssss. que oso.
Ya todo caminando como Dios manda.
Un fuerte abrazo.
José Luis Aguilar
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje de
noticias:4900ba38$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
>>
>> cSelect := "SELECT * FROM BSCOtrosProductos "
>> cSelect += " WHEN idProducto = " + rtrim(Str( ::oComboBox1:nIndex ) )
>> cSelect += " AND FOLIO = '" + TRIM( ::oEdit1:Value ) + "'"
>> msginfo( cSelect ) <---- solo para monitorear la cadena formada ;
>> lo que arroja : "select * from
>> bscotrosproductos where idproducto=1 and folio= '03228' "
>> y la incluyo en
>
> El when, mirad donde pone When a ver si viene por ahí­ el problema.
>
> Saludos,
> José lUis Capel
>
>
>
new_indika
Mensajes: 32
Registrado: Jue Oct 16, 2008 12:59 pm

Inconvenientes al usar BuildSQLSt

Mensaje por new_indika »

José Luis Aguilar Sánchez escribió:
> Hola a todos los que les distraje la atención, pero me siento apenado,
> ya que teniendo el problema en frente de mi no lo veí­a y mi tocayo y
> amigo José Luis Capel, me lo estaba señalando, pero yo bloqueado, en
> efecto escribi mal, nose de donde me vino el WHEN y debe ser WHERE
> upppssssss. que oso.
>
> Ya todo caminando como Dios manda.
>
> Un fuerte abrazo.
>
> José Luis Aguilar
>
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
> de noticias:4900ba38$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Hola,
>>
>>>
>>> cSelect := "SELECT * FROM BSCOtrosProductos "
>>> cSelect += " WHEN idProducto = " + rtrim(Str( ::oComboBox1:nIndex
>>> ) )
>>> cSelect += " AND FOLIO = '" + TRIM( ::oEdit1:Value ) + "'"
>>> msginfo( cSelect ) <---- solo para monitorear la cadena formada ;
>>> lo que arroja : "select * from
>>> bscotrosproductos where idproducto=1 and folio= '03228' "
>>> y la incluyo en
>>
>> El when, mirad donde pone When a ver si viene por ahí­ el problema.
>>
>> Saludos,
>> José lUis Capel
Eso ví­ y me extraño bastante el WHEN, llegue a pensar que podí­a ser una
'particularidad' de SqlServer en su sintaxis. Muchas veces nos atoramos
en este tipo de errores hasta que uno se da cuenta y dice... ¡vaya!
Suele pasar :-)
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Inconvenientes al usar BuildSQLSt

Mensaje por ignacio »

José Luis,
La sentencia se arma correctamente si tu le das los datos correctemente. si
el parametro Folio se pasa como un número obviamente no le pondrá ningunas
comillas.
Saludos
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José Luis Aguilar Sánchez" <jaguilar@gamsa.com.mx> escribió en el mensaje
news:4900c592$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Por lo que veo en tu Select FOLIO NO ES NUMERICO, y te aseguro que
>> oComboBox1:nIndex si lo es.
>
> Afirmativo: Folio es un campo Character y idProducto (
> omboBox1:nIndex ) es numérico
>
> lo curioso es que la cadena si se arma en forma correcta, pero al
> ejecutarla, salta el error como lo he posteado.
>
> la cadena debe resultar de la siguiente forma:
>
> select * from bscOtrosProductos where idProducto=1 and Folio= '03228'
>
> Saludos y gracias por las atenciones.
>
> José Luis Aguilar
>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder