consulta

consulta

Postby surGom » Sat Jun 16, 2012 2:18 pm

Estoy usando la clase tymsql modificada por Williams Morales y la consulta es la siguiente tengo un diálogo :
Code: Select all  Expand view

oCta := oCtac()
   
aadd(oCta:adet,{ space(24),space(20),space(20),space(20),0,0,0,.t.})

DEFINE DIALOG oDlg resource "dia_factu"
oDlg:cCaption := "Factura clientes"

   REDEFINE GET aGet[1] VAR oCta:ncli picture "99999" ID 101 UPDATE  of odlg  ;
                                VALID  cargocli(oBrw,oMysql)

   REDEFINE GET aGet[2] VAR oCta:nape  ID 102 of odlg UPDATE

   REDEFINE GET aGet[3] VAR oCta:domi  ID 103 of odlg UPDATE
   REDEFINE GET aGet[5] VAR oCta:cuit   ID 104 of odlg UPDATE
   REDEFINE GET aGet[4] VAR oCta:iva  ID 105 of odlg UPDATE
   REDEFINE COMBOBOX aGet[8] VAR oCta:condicion  ITEMS aItem ID 113 of odlg UPDATE
   REDEFINE GET aGet[6] VAR oCta:fecha picture "@d"  ID 106 of odlg UPDATE

 


donde oCta es un array que cargo con

Code: Select all  Expand view

function cargocli(oBrw,oMysql)

oQry1 :=busnap(,oQmae,oCta:ncli,oMysql)

if empty(oQry1 )
    return .f.
endif

oCta:ncli := oQry1:ncli
oCta:nape := oQry1:nape
oCta:domi := alltrim(oQry1:domi) +" - " + oQry1:loca
oCta:cuit := oQry1:cuit
oCta:iva := oQry1:iva
oDlg:update()
oQmae:end()
 


Lo que no sé es como declarar el Qry1 en el inicio del diálogo para poder hacer

   REDEFINE GET aGet[1] VAR oQry1:ncli picture "99999" ID 101 UPDATE  of odlg  ;
                                VALID  cargocli(oBrw,oMysql)


y evitar hacer un array ...

Creo haber planteado bien la cuestión

Gracias por su atención
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: consulta

Postby surGom » Sat Jun 16, 2012 10:30 pm

La solución es hacer un query a la base y luego un oQry1:blank antes del diálogo...... Pero no hay forma de emular ese oQry1 sin hacer el query?
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: consulta

Postby wmormar » Mon Jun 18, 2012 3:43 am

surGom,

Para hacer lo que requieres sin el array tienes que hacer un query forzosamente.

Ahora hay opciones.

SELECT * FROM <tabla> LIMIT 0

y te traerá la estructura y será instantaneo.

La verdad no entiendo porque no quieres hacer la consulta, alguna situación especial?

Saludos
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1073
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: consulta

Postby surGom » Mon Jun 18, 2012 11:32 pm

Hola Williams, no nada en especial es para no hacer un query. Ya que por ejemplo si entra por a esa función del programa y sale con escape no hay nada involucrado.Y no hay que hacer un oQry:end... o no es necesario necesario cerrar la tabla cuando salis de la misma?

Como veras no tengo muchas cosas claras en mysql... Pero está funcionando bastante bien lo que implemente.

Gracias
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: consulta

Postby wmormar » Tue Jun 19, 2012 1:06 am

surGom,

Si amigo, debes cerrar la consulta si hace un query, porque se va el consumo de memoria al cielo y truena tu aplicacion.

Asi que lo recomendable es cerrar los querys generados.

Puedo adicionar un metodo que haga lo que necesitas para que te regrese un array con la estructura o un array setedos con los datos de la estructura y tu solo cargues dichos datos a tus variables.

Saludos
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1073
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: consulta

Postby surGom » Wed Jun 20, 2012 12:05 am

Hola Williams si tu crees que es conveniente y mejora la clase sería bueno ahora si es algo que no ayuda en mucho... no es complicado hacerlo ya sea con un array o declarando el query .

Gracias por tu amabilidad y constante ayuda a los menos sapientes

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 64 guests