FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour MySql and Append
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
MySql and Append
Posted: 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 (fw): Select all Collapse
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
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: MySql and Append
Posted: Mon Nov 09, 2009 02: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
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: MySql and Append
Posted: Mon Nov 09, 2009 06:23 AM

Hola Armando:

Gracias, pero estoy usando MySql,

parece que con el msgWait deje de perder registros

Saludos,
Mauricio

Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: MySql and Append
Posted: 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
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: MySql and Append
Posted: Mon Nov 09, 2009 05:31 PM

Hola Armando,

TMySql de las contribuciones de xHB

Saludos

Mauricio

Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Re: MySql and Append
Posted: Mon Nov 09, 2009 06:34 PM
Yo Utilizo Eagle
y agrego de la siguiente forma:

Code (fw): Select all Collapse
*****************************************************************************************************
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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: MySql and Append
Posted: Mon Nov 09, 2009 08: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
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: MySql and Append
Posted: Mon Nov 09, 2009 08:49 PM
AdBlanco, Armando,

Gracias :-)


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 (fw): Select all Collapse
聽 聽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
Posts: 215
Joined: Fri Feb 02, 2007 03:38 PM
Re: MySql and Append
Posted: Tue Nov 10, 2009 09: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......
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: MySql and Append
Posted: Wed Nov 11, 2009 06:35 AM

Ramon :)

Gracias, lo pruebo y te comento los resultados,

Saludos,
Mauricio

Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: MySql and Append
Posted: Thu Nov 12, 2009 09:01 AM

Ramon :mrgreen:

gracias funciono al 100%

Saludos,
Mauricio

Continue the discussion