Pregunta Mysql

Pregunta Mysql

Postby ruben Dario » Tue Jun 28, 2011 9: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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Pregunta Mysql

Postby Lautaro » 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
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Pregunta Mysql

Postby ruben Dario » Wed Jun 29, 2011 3: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: Select all  Expand view

       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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Pregunta Mysql

Postby Lautaro » Wed Jun 29, 2011 7: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
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Pregunta Mysql

Postby ruben Dario » Wed Jun 29, 2011 8:16 pm

Asi HAgo las Conexiones

Code: Select all  Expand view

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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Pregunta Mysql

Postby Lautaro » Wed Jun 29, 2011 9: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
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Pregunta Mysql

Postby jbrita » Thu Jun 30, 2011 1: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
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: Pregunta Mysql

Postby ruben Dario » Thu Jun 30, 2011 8: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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Pregunta Mysql

Postby jbrita » Thu Jun 30, 2011 8: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
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 86 guests