MySql and Append

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

MySql and Append

Post by Mauricio »

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

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
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: MySql and Append

Post by armando.lagunas »

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
User avatar
Mauricio
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Post by Mauricio »

Hola Armando:


Gracias, pero estoy usando MySql,

parece que con el msgWait deje de perder registros


Saludos,
Mauricio
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: MySql and Append

Post by armando.lagunas »

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.
:?
User avatar
Mauricio
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Post by Mauricio »

Hola Armando,

TMySql de las contribuciones de xHB

Saludos

Mauricio
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: MySql and Append

Post by ADBLANCO »

Yo Utilizo Eagle
y agrego de la siguiente forma:

Code: Select all

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

Re: MySql and Append

Post by Armando »

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
Mauricio
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Post by Mauricio »

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

   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
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Re: MySql and Append

Post by Ramon Paredes »

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
Mauricio
Posts: 199
Joined: Thu Oct 06, 2005 9:07 pm
Location: San Diego, CA

Re: MySql and Append

Post by Mauricio »

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

Post by Mauricio »

Ramon :mrgreen:

gracias funciono al 100%


Saludos,
Mauricio
Post Reply