Hoy quiero plasmarlo en MySql Server y TMysql, y para terminarlo necesito que me ayuden a terminar de "traducir" de FiveWin a MySql, este pequeño codigo. Si a alguien le es útil, pués aquí está, y si lo mejora sería interesante que lo subiera al foro.
Es un codigo que utilizo para INSERTAR (NO AGREGAR) datos en una pequeña dbf en la cual necesito insertar datos entre los datos.
Quiero agradecer a Willy y William que me han apoyado en mis inicios hacia MySql, ya que sin su ayuda creo que no hubiera "arrancado".
- Code: Select all Expand view
- ESTE ES EL CODIGO EN FIVEWIN
//-------------------------------------
Function InsGopMult(oLbx)
local cAlias:=(oLbx:cAlias)
LOCAL nLin := (cAlias)->Lin
DbSelectArea(cAlias)
(cAlias)->(dbAPPEND())
(cAlias)->lin := nLin
//Reconstruir las lineas y para q'se coloque en el registro agregado
nLin+=1
ReconstLin(nLin,cAlias)
oLbx:Refresh()
return nil
//--------------------------
FUNCTION ReconstLin(nLinea,cAlias)
local nLin
cFicTemp:="GPMDEF"
CreaFich(@cFicTemp) //Function para crear fichero temporal
(cAlias)->( __dbCopy( (cFicTemp), { },,,,, .F., ) )
DBUSEAREA(.T.,,(cFicTemp),(cFicTemp),.F.)
(cFicTemp)->(dbgotop())
nLin:=1
while (cFicTemp)->(!eof())
(cFicTemp)->lin :=nLin
(cFicTemp)->(dbskip())
nLin+=1
enddo
(cFicTemp)->(dbcloseArea())
DBSELECTAREA(cAlias)
(cAlias)->(__dbzap())
__dbapp((cFicTemp),{},,,,,.f.,)
ferase(cPathDef+"\"+(cFicTemp)+".dbf")
(cAlias)->(dbSeek(nLinea))
SysRefresh()
Return nil
/ESTE ES EL CODIGO EN MYSQL
//--------------------------// Inserta linea
Function InsGopMult(oLbx,oQuery) //ESTA PARTE ESTA BIEN
LOCAL nLin := oQuery:lin
oServer:Query("INSERT INTO gopmult (lin) VALUES ('"+cValToChar(nLin)+"')")
oQuery:Refresh()
oLbx:Refresh()
//Reconstruir las lineas y para q'se coloque en el registro insertado
nLin+=1
ReconstLin(nLin,oQuery)
oQuery:Refresh()
oLbx:Refresh()
return nil
//ESTA ES LA QUE DA PROBLEMAS. Aunque la function funciona, los datos devueltos a GopMult son desordenados.
//--------------------------//Reconstruir lineas
FUNCTION ReconstLin(nLinea,oQuery)
local nLin,oTempo,nLinAnter
oServer:Query("CREATE TABLE goptempo SELECT * FROM gopmult") //gopmult es la tabla principal en este caso
oTempo:=oServer:Query("SELECT * FROM goptempo")
oTempo:GoTop()
nLin:=1
While !oTempo:Eof()
nLinAnter := oTempo:lin
oServer:Query("UPDATE goptempo SET lin = '"+cValToChar(nLin)+"' WHERE lin = '"+cValToChar(nLinAnter)+"' LIMIT 1")
oTempo:Skip()
nLin+=1
Enddo
oServer:Query("DELETE FROM gopmult")
oServer:Query("OPTIMIZE TABLE gopmult")
oServer:Query("INSERT INTO gopmult SELECT * FROM goptempo")
oServer:Query("DROP TABLE IF EXISTS goptempo")
oQuery:Refresh()
oQuery:GoTop()
oQuery:Locate("lin",nLinea)
SysRefresh()
Return nil
Saludos.