FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Pregunta Mysql
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Pregunta Mysql
Posted: Tue Jun 28, 2011 09:58 PM

Saludos ,,

Tengo un problema , hago actualizacion , ingreso nuevos registros desde una estacion de trabajo, otro usuario esta en otra estacion pero no me muestra los nuevos datos actualizados, mi pregunta como hago para que actualixe la base de datos, se requiere alguna configuracion especial en mysql.. Trabajo ADO ...

Ruben Dario Gonzalez.

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Pregunta Mysql
Posted: Tue Jun 28, 2011 10:29 PM

Ruben,

1.-¿ Estas cerrando la transaccion ?
2.-¿ Están todas las terminales conectadas al mismo servidor ?

Atte.,

Lautaro Moreira

Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Pregunta Mysql
Posted: Wed Jun 29, 2011 03:22 PM
Lautaro wrote:Ruben,

1.-¿ Estas cerrando la transaccion ?
2.-¿ Están todas las terminales conectadas al mismo servidor ?


Atte.,

Lautaro Moreira



Saludos.
Las terminales estan conectadas a un solo servidor

Codigo.

Code (fw): Select all Collapse
       oSql := "INSERT INTO  kcausas (planta,tipanu,codanu,codcau,nombre,nombre1,status) VALUES "+;
                "( '"+alltrim(m_planta)+"','"+alltrim(m_tipanu)+"','"+alltrim(m_codanu)+"','"+alltrim(m_codcau)+"','"+;
                alltrim(m_nombre)+"','"+alltrim(m_nombre1)+"',"+alltrim(str(m_status))+")"
cuadno es nuevo

        oSql := "UPDATE kcausas SET planta = '"+alltrim(m_planta)+"', "+;
                "tipanu = '"+alltrim(m_tipanu)+"', codanu = '"+alltrim(m_codanu)+"', "+;
                "codcau = '"+alltrim(m_codcau)+"', nombre = '"+alltrim(m_nombre)+"', "+;
                "nombre1 = '"+alltrim(m_nombre1)+"', status = "+alltrim(str(m_status))+"  WHERE "+xfind
Cuando es actualziacion

Luego Ejecuto el Query
ADOEXECUTE (oSql)

Function ADOExecute( cSql ) 

   oADOConection[nConnection]:Execute( cSql ) 
   return .t. 


Tambien lo hago de esta manera
             if  oRecordSet[nRecordSet]:EOF()   
                 oRecordSet[nRecordSet]:AddNew()
                 oRecordSet[nRecordSet]:Fields("refcat"):Value := m_refcat
                 oRecordSet[nRecordSet]:Fields("catval"):Value := aArray[x,2]
             endif
                 oRecordSet[nRecordSet]:Fields("nombre"):Value   := aArray[x,3]
                 oRecordSet[nRecordSet]:Fields("cuen_inv"):Value := aArray[x,4]
                 oRecordSet[nRecordSet]:Fields("cuen_cos"):Value := aArray[x,5]
                 oRecordSet[nRecordSet]:Fields("cuen_cxp"):Value := aArray[x,6]
                 oRecordSet[nRecordSet]:Fields("status"):Value := if(aArray[x,7],1,0)
                if aArray[x,1]="*"
                  oRecordSet[nRecordSet]:Delete()  //ADO DELETE 
                  oRecordSet[nRecordSet]:Move(-1) // si es con ADO no se debe colocar
               else
                  ADOCOMMIT()

                endif
Function ADOCommit( lSave ) 
   oRecordSet[nRecordSet]:Update() 
   marca := oRecordSet[nRecordSet]:BookMark 
   oRecordSet[nRecordSet]:Requery() 
   oRecordSet[nRecordSet]:BookMark = marca 
   return .t.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Pregunta Mysql
Posted: Wed Jun 29, 2011 07:12 PM

Ruben,

¿ como haces la conexion ?, yo uso ado con mysql sin ningun problema ( hasta 40 terminales ) y datos visibles casi instantaneamente luego del update.

Atte.,

Lautaro Moreira

Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Pregunta Mysql
Posted: Wed Jun 29, 2011 08:16 PM
Asi HAgo las Conexiones

Code (fw): Select all Collapse
Asi Hago la conexion

        StrDatabase  = "Basededtos" 
        StrServer       = IP del servidor) 
        Strport          = 3306
        StrUsuario    = root 
        StrPwd         = contraseña o clave 
        SDriver        = {MySQL ODBC 5.1 Driver}     

  StrConnection := "driver="+strDriver+";database="+StrDatabase+;
   ";server="+StrServer+";uid="+StrUsuario+";pwd="+StrPwd+";Port="+StrPort+";option=35"


   oADOConection[nConnection] :=  CreateObject( "ADODB.Connection" )
   oADOConection[nConnection]:Open( StrConnection ) 



*****

Asi hago la conexion a una tabla
   LockType       :=adLockOptimistic
   CursorLocation :=adUseClient
   CursorType     :=adOpenDynamic

         oRecordSet[nRecordSet]:CacheSize      := 50 
         oRecordSet[nRecordSet]:PageSize       := 50 // nuevo
         oRecordSet[nRecordSet]:CursorLocation := CursorLocation  

           oRecordSet[nRecordSet]:Open( "Select * from " + cDatabase, StrConnection ,CursorType,LockType)
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Pregunta Mysql
Posted: Wed Jun 29, 2011 09:58 PM

Ruben,

No se me ocurre nada mas.

mmm

A menos que no estén refrescando los recordset en los otros clientes, luego de la actualizacion.

Recuerda que estas definiendo recordset estaticos al lado del cliente, es decir, cliente hace consulta en recordset, otro cliente modifica una tabla que esta incluida en la consulta de cliente 1, si cliente 1 no refresca el recordset no vera los cambios hechos por cliente 2.

Espero te ayude,

Lautaro Moreira

Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Pregunta Mysql
Posted: Thu Jun 30, 2011 01:25 PM

Amigo probaste asi

ADO SELECT cProv_Gen
ADO APPEND BLANK
ADO REPLACE Rut_Prov With oRec_Rprove
ADO REPLACE Tipo_Docto With "FACTURA"
ADO REPLACE Forma_Pago WITH "COMPRA"
ADO REPLACE Id_Hora WITH idhora
ADO COMMIT

Saludos

Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Pregunta Mysql
Posted: Thu Jun 30, 2011 08:23 PM
jbrita wrote:Amigo probaste asi

ADO SELECT cProv_Gen
ADO APPEND BLANK
ADO REPLACE Rut_Prov With oRec_Rprove
ADO REPLACE Tipo_Docto With "FACTURA"
ADO REPLACE Forma_Pago WITH "COMPRA"
ADO REPLACE Id_Hora WITH idhora
ADO COMMIT

Saludos



Saludos


Si de esta manera lo trabajo , lo raro que si graba los datos , pero no me muestra en forma real en X estacion.
Sewra la configuracion de Mysql .
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Pregunta Mysql
Posted: Thu Jun 30, 2011 08:35 PM

Ruben si lo que busca es tener las 2 o mas maquina con lo mismo en la pantalla, si haces un cambio en una ver instantaneo el cambio en las otras maquinas, si es asi tendrias q usar los siguiente:

ACTIVATE DIALOG oDlg   ON INIT  MiTimerOn(oLbx,oDlg,cArticulo)

 *---------------------------------------------------------------------
  • MiTimer()/TimerAction() importante para resfrescar el brw.
    *---------------------------------------------------------------------
    static function MiTimerOn(oLbx,oDlg,oRcs)
    DEFINE TIMER oTimer of oDlg INTERVAL 4000 ACTION TimerAction(oLbx,oRcs)
    ACTIVATE timer oTimer
    return(.T.)

static function TimerAction(oLbx,oRcs)
Local marca

marca:= oRcs:BookMark

oRcs:Requery()
oRcs:BookMark = marca

oLbx:refresh()
oLbx:setfocus()
return(.T.)

prueba asi

Saludos

Continue the discussion