MySql and Append

MySql and Append

Postby Mauricio » Sun Nov 08, 2009 12:04 am

Hola,

Sigo con MySql,

va el problema, se presente con algunos registros.

tengo una tabla MySql remota

pero hago la captura de la partida en una tabla DBF local, ya que el usuario confirma que desea guardar la informacion hago la conexion a la tabla remota y le empiezo a guardar los datos.

pero en algunas ocaciones me marca que no puede agregar el registro, esto es cuando mi tabla local tiene 10-20 registros, puedo llegar a perder hasta 3.

la solucion que encontre fue hacer un msgWait entre cada registro y parece que dejaron de perderse, mi pregunta es: esto es normal?, debo hacer una pausa para que actualize la tabla de MySql Remota?


este es el codigo

Code: Select all  Expand view  RUN
static function GuardaCompra(nProveedor, cFactura, dFecha, nImporte, nIva)
   local oMovtos := oMysql:Query( "SELECT * FROM compmovs")

   compra->( dbgotop())

   compra->( dbgotop())
   do while !compra->( eof())

      oMovtos:fieldput('proveedor', nProveedor)
      oMovtos:fieldput('factura',   cFactura)
      oMovtos:fieldput('fecha',     dFecha)
      oMovtos:fieldput('codigo',    compra->Codigo)
      oMovtos:fieldput('cantidad',  compra->Cantidad)
      oMovtos:fieldput('precio',    compra->precio)
      oMovtos:fieldput('importe',   compra->importe)

      if !oMovtos:Append()
         msginfo('Problemas para agregar registros', compra->Codigo)
      else
         //msginfo('Registro Agregado0', compra->Codigo)
      endif

       msgWait('Guardando la compra','Espera por favor ...',1)

      compra->( dbskip())
   enddo
   oMovtos:end()
   oMovtos := NIL

   SysRefresh()
   oSql:refresh()
   oBrw:refresh()
return nil
 
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Postby armando.lagunas » Mon Nov 09, 2009 2:04 am

hola:

si ocupas ODBC para conectarte a la tabla mysql remota esto te puede servir.

STATIC FUNCTION Llamar( oBrw, oMet, oSql )
LOCAL oDbf, nArea
SELECT PA04 ; __dbZap() // tabla que recibe los datos en forma local :idea:
oDbf := oSql:Query("SELECT * FROM STK WHERE ESTADO='3' ")
oDbf:Open()
oDbf:Complete()
nArea := ALIAS()
oDbf:Gotop()
DO WHILE !EOF()
SELECT PA04 ; dbAppend()
SELECT ( nArea )
PA04->PALL := FIELD->FIELD_0001
PA04->FECH := FIELD->FIELD_0002
PA04->HORA := FIELD->FIELD_0003
PA04->BAND := FIELD->FIELD_0004
PA04->NETO := FIELD->FIELD_0005
SELECT ( nArea )
SKIP
ENDDO
oDbf:End()
oMet:SetPos( 0 )
SELECT PA04 ; dbGotop()
oBrw:Reset()
oBrw:UpStable()
oBrw:Refresh(.T.)
RETURN Nil


espero que te sirva...


saludos desde Chile
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: MySql and Append

Postby Mauricio » Mon Nov 09, 2009 6:23 am

Hola Armando:


Gracias, pero estoy usando MySql,

parece que con el msgWait deje de perder registros


Saludos,
Mauricio
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Postby armando.lagunas » Mon Nov 09, 2009 12:10 pm

hola:

yo ocupo Mysql como motor de base de datos y el ejemplo es funcional 100%, cuando me refería si utilizas ODBC, quiere decir, que si éste es el método que utilizas para conectarte a Mysql por windows ya que también existe ADO y otros.

Saludos desde Chile.
:?
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: MySql and Append

Postby Mauricio » Mon Nov 09, 2009 5:31 pm

Hola Armando,

TMySql de las contribuciones de xHB

Saludos

Mauricio
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Postby ADBLANCO » Mon Nov 09, 2009 6:34 pm

Yo Utilizo Eagle
y agrego de la siguiente forma:

Code: Select all  Expand view  RUN

*****************************************************************************************************
FUNCTION CARGACONDI()
*****************************************************************************************************
LOCAL cCommand   ,;
      cNum       ,;
      cNombre    ,;
      nTitul     ,;
      cTitulo    ,;
      mTexto     ,;
      oQuery
      oQuery:=TMSQuery():New( oDTComun )
      cCommand:={||"INSERT INTO "+cDTComun+".CONDI(NUM,"+;
                                                  'NOMBRE,' +;
                                                  'TITUL,'  +;
                                                  'TITULO,' +;
                                                  'TEXTO)'  +;
                                           "VALUES( "+bTrans(cNum        )+","+;
                                                      bTrans(cNombre     )+","+;
                                                      str(nTitul         )+","+;
                                                      bTrans(cTitulo     )+","+;
                                                      bTrans(mTexto      )+")"}
    USE C:\TEMPO\CONDI EXCLUSIVE alias CONDI
    //
    // COPIANDO TABLA A TABLA_SQL
    DO WHILE !CONDI -> (EOF())
      cNum     := CONDI -> Num
      cNombre  := CONDI -> Nombre
      nTitul   := CONDI -> Titul
      cTitulo  := CONDI -> Titulo
      mTexto   := CONDI -> Texto
      oQuery:Open(eval(cCommand))
      oQuery:close()
      CONDI -> (DBSKIP())
    ENDDO
    CLOSE
    oQuery:close()
    RETURN nil

 
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: MySql and Append

Postby Armando » Mon Nov 09, 2009 8:14 pm

Mauricio:

Dale una mirada a este blog

http://sqlcmd.blogspot.com/

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
User avatar
Armando
 
Posts: 3242
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: MySql and Append

Postby Mauricio » Mon Nov 09, 2009 8:49 pm

AdBlanco, Armando,

Gracias :D


una pregunta mas, si me pueden tirar un cable.

en los report normales

como definen su columna, en una tabla chica lo que hice fue meterla en un arreglo e imprimir el arreglo, porque no di con bola de como hacerlo directo de la tabla de mySql.

adjunto el codigo
Code: Select all  Expand view  RUN

   local oReport
   LOCAL oFont1, oFont2, nFolio := oSql:fieldget('folio')
   local oMovtos :=  oMysql:Query( "SELECT * FROM remmovs ORDER BY folio")
   local aRegistros := {}, nRegistro := 1
   local cNombre


   oMovtos:gotop()
   do while !oMovtos:eof()
      cNombre := BuscaCodigo( oMovtos:fieldget('codigo'))
      aadd(aRegistros, { oMovtos:fieldget('codigo'), oMovtos:fieldget('cantidad'),;
                                  oMovtos:fieldget('folio'), cNombre})
      oMovtos:Skip()
   enddo

   oMovtos:gotop()


   REPORT oReport TITLE 'Empresa de Prueba', "Relación de Artículos en la remisión " ;
         FOOTER dtoc(date()) + ', ' +  time() +  ", Pág :"+strzero(oReport:nPage,3) PREVIEW

      COLUMN TITLE "Código"                              DATA aRegistros[nRegistro,1]
      COLUMN TITLE "Descripción"                         DATA aRegistros[nRegistro,4]
      COLUMN TITLE "Cantidad"                            DATA aRegistros[nRegistro,2]
      COLUMN TITLE "Folio"                               DATA aRegistros[nRegistro,3] PICTURE '999,999' RIGHT


      oReport:bSkip := {|| nRegistro++}
   END REPORT

   ACTIVATE REPORT oReport WHILE nRegistro <= len(aRegistros)
return NIL

 
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Postby Ramon Paredes » Tue Nov 10, 2009 9:46 pm

Mauricio,

Para un reporte con Mysql puedes hacer lo siguiente :

FUNCTION Imp_lista() \\ funcion para impresion del listado/reporte

LOCAL nLinea := 1
LOCAL nHasta := oRs:RecordCount() \\contador de registros del recordset

oRs:MoveFirst() \\ voy al primero

REPORT oReport TITLE " MI REPORTE " ECT ECT

IF oReport:lCreated
oReport:bSkip := { || (nLinea++, oRs:MoveNext())}
ENDIF

ACTIVATE REPORT oReport ;
WHILE nLinea <= nHasta

yo tome un ejemplo de este foro en esa ocasion que lo necesitaba y funciona al 100%

saludes espero te sea de utilidad a mi me sirvio de mucho

Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
User avatar
Ramon Paredes
 
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Re: MySql and Append

Postby Mauricio » Wed Nov 11, 2009 6:35 am

Ramon :)

Gracias, lo pruebo y te comento los resultados,


Saludos,
Mauricio
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Postby Mauricio » Thu Nov 12, 2009 9:01 am

Ramon :mrgreen:

gracias funciono al 100%


Saludos,
Mauricio
User avatar
Mauricio
 
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 99 guests