Amigo... Primero que todo gracias por responder....
Pero creo que no me hice entender. Como haces para generar los cruces de los partidos por ejemplo :
Equipo A Vs. Equipo B
Equipo C Vs. Equipo D
Equipo A Vs. Equipo C
Equipo B Vs. Equipo D
Equipo A Vs. Equipo D
Equipo B vs. Equipo C
Eso es lo que no he podido hacer... De casualidad me puedes ayudar con eso?
Code: Select all
*******************************************
*GENERA LA TABLA DE POSICIONES Y EL FIXTURE
*******************************************
PROC GenerarFix
desde=1
nequipos:=oRs:RecordCount()
equipo:="Equipo Numero "
fechas:=nequipos-1
tablafecha:=nequipos-1
TRY
oConJug:=toleauto():new("adodb.connection")
CATCH oError
MsgStop( "No se ha podido crear la conexión !", "Error de datos")
RETURN(.F.)
END
oConJug:ConnectionString:="Driver={MySQL ODBC 3.51 Driver};Server="+cHost+";Port="+nPuerto+";User="+cUsuario+";Password="+cPassword+";Option=3;"
TRY
oConJug:Open()
CATCH oError
MsgStop( "No pude abrir la conexión para crear las tablas !", "Error de datos")
RETURN(.F.)
END
cCommandSql := "USE asodexin_equipos"
TRY
oConJug:Execute(cCommandSql)
CATCH oError
MsgStop("No se pudo seleccionar la base de datos")
END
cQuery := "CREATE TABLE IF NOT EXISTS posiciones "
cQuery += "("
cQuery += "consec INTEGER(10) NOT NULL AUTO_INCREMENT,"
cQuery += "alias VARCHAR(50) NULL ,"
cQuery += "nombre VARCHAR(50) NULL,"
cQuery += "puntos INTEGER(10) NULL ,"
cQuery += "pj INTEGER(10) NULL ,"
cQuery += "pg INTEGER(10) NULL ,"
cQuery += "pe INTEGER(10) NULL ,"
cQuery += "pp INTEGER(10) NULL ,"
cQuery += "gf INTEGER(10) NULL ,"
cQuery += "gc INTEGER(10) NULL ,"
cQuery += "gd INTEGER(10) NULL ,"
cQuery += " PRIMARY KEY (consec)"
cQuery += ") "
cQuery += " TYPE = MYISAM;"
TRY
oConJug:Execute(cQuery)
CATCH oError
MsgInfo("La tabla Posiciones NO pudo ser creada")
END
cQuery := "CREATE TABLE IF NOT EXISTS menosvencida "
cQuery += "("
cQuery += "consec INTEGER(10) NOT NULL AUTO_INCREMENT,"
cQuery += "alias VARCHAR(50) NULL ,"
cQuery += "nombre VARCHAR(50) NULL,"
cQuery += "goles INTEGER(10) NULL ,"
cQuery += " PRIMARY KEY (consec)"
cQuery += ") "
cQuery += " TYPE = MYISAM;"
TRY
oConJug:Execute(cQuery)
CATCH oError
MsgInfo("La tabla Posiciones NO pudo ser creada")
END
desde:=1
FOR desde=1 TO tablafecha
cQuery := "CREATE TABLE IF NOT EXISTS fecha"+strzero(desde,2)
cQuery += " ("
cQuery += "consec INTEGER(10) NOT NULL AUTO_INCREMENT,"
cQuery += "control VARCHAR(10) NULL ,"
cQuery += "equip1 VARCHAR(2) NULL ,"
cQuery += "nombr1 VARCHAR(50) NULL ,"
cQuery += "alias1 VARCHAR(50) NULL ,"
cQuery += " PRIMARY KEY (consec)"
cQuery += ") "
cQuery += " TYPE = MYISAM;"
TRY
oConJug:Execute(cQuery)
CATCH oError
MsgInfo("La tabla Posiciones NO pudo ser creada")
END
NEXT
cQuery := "CREATE TABLE IF NOT EXISTS partidos "
cQuery += "("
cQuery += "control VARCHAR(10) NOT NULL ,"
cQuery += "equipo1 VARCHAR(50) NULL ,"
cQuery += "alias1 VARCHAR(50) NULL,"
cQuery += "goles1 VARCHAR(50) NULL,"
cQuery += "equipo2 VARCHAR(50) NULL ,"
cQuery += "alias2 VARCHAR(50) NULL,"
cQuery += "goles2 VARCHAR(50) NULL,"
cQuery += "hora VARCHAR(50) NULL,"
cQuery += "orden INTEGER(10) NULL,"
cQuery += "fecha VARCHAR(2) NULL,"
cQuery += " PRIMARY KEY (control)"
cQuery += ") "
cQuery += " TYPE = MYISAM;"
TRY
oConJug:Execute(cQuery)
CATCH oError
MsgInfo("La tabla Posiciones NO pudo ser creada")
END
nRegistros:=oRs:RecordCount()
IF nRegistros > 0
oRs:MoveFirst()
DO WHILE !oRs:Eof()
vFalias:=oRs:Fields("alias"):Value
vFequip:=oRs:Fields("equipo"):Value
vFdeleg:=oRs:Fields("delegado"):Value
vConsCB:="INSERT INTO posiciones (alias,nombre,puntos,pj,pg,pe,pp,gf,gc,gd) VALUES ('"+alltrim(vFalias)+"','"+alltrim(vFequip)+"',0,0,0,0,0,0,0,0)"
TRY
oConJug:Execute(vConsCB)
CATCH oError
MsgInfo("No se pudo insertar el registro","Error de datos")
END
vConsCM:="INSERT INTO menosvencida (alias,nombre,goles) VALUES ('"+alltrim(vFalias)+"','"+alltrim(vFequip)+"',0)"
TRY
oConJug:Execute(vConsCM)
CATCH oError
MsgInfo("No se pudo insertar el registro","Error de datos")
END
oRs:MoveNext()
ENDDO
ENDIF
oRs:MoveFirst()
//msginfo("despues de actualizar las tablas de posiciones y menos vencida")
**********
*msginfo("crear recoRsB1et 1")
//oVar := "SELECT * from menosvencida ORDER BY nombre"
oVar := "SELECT * from menosvencida"
TRY
oRsB1:=tOleAuto():New("ADODB.RecordSet")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
END
oRsB1:CursorLocation := adUseClient //adUseServer
oRsB1:LockType := adLockOptimistic
oRsB1:CursorType := adOpenKeyset
oRsB1:Source := oVar
oRsB1:ActiveConnection( oConJug )
TRY
oRsB1:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !", "Error de Datos" )
END
*msginfo("crear recoRsB1et 2")
//oVar := "SELECT * from posiciones ORDER BY nombre"
oVar := "SELECT * from posiciones"
TRY
oRsB2:=tOleAuto():New("ADODB.RecordSet")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
END
oRsB2:CursorLocation := adUseClient //adUseServer
oRsB2:LockType := adLockOptimistic
oRsB2:CursorType := adOpenKeyset
oRsB2:Source := oVar
oRsB2:ActiveConnection( oConJug )
TRY
oRsB2:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !", "Error de Datos" )
END
nRegistros := oRsB2:RecordCount()
if nRegistros > 0
oRsB2:MoveFirst()
DO WHILE !oRsB2:Eof()
vCon2:=oRsB2:Fields("consec"):Value
vNom2:=oRsB2:Fields("nombre"):Value
vAli2:=oRsB2:Fields("alias"):Value
nRegistros := oRsB1:RecordCount()
if nRegistros > 0
oRsB1:MoveFirst()
DO WHILE !oRsB1:Eof()
vCon1:=oRsB1:Fields("consec"):Value
vNom1:=oRsB1:Fields("nombre"):Value
vAli1:=oRsB1:Fields("alias"):Value
control:=alltrim(strzero(vCon2,2))+"*"+alltrim(strzero(vCon1,2))
inverso:=alltrim(strzero(vCon1,2))+"*"+alltrim(strzero(vCon2,2))
//msginfo(control)
oVar:="SELECT * from partidos WHERE control='"+control+"' or control='"+inverso+"'"
TRY
oConsBO := CreateObject("ADODB.Recordset")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
RETURN(.F.)
END
oConsBO:CursorLocation := adUseClient //adUseServer
oConsBO:LockType := adLockOptimistic
oConsBO:CursorType := adOpenKeyset
oConsBO:Source := oVar
oConsBO:ActiveConnection( oConJug )
TRY
oConsBO:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !","Error de Datos" )
END
nRegistros := oConsBO:RecordCount()
IF nRegistros=0
IF alltrim(strzero(vCon2,2))#alltrim(strzero(vCon1,2))
vConsCB:="INSERT INTO partidos (control,equipo1,alias1,equipo2,alias2,fecha) VALUES ('"+control+"','"+vNom1+"','"+vAli1+"','"+vNom2+"','"+vAli2+"',' ')"
TRY
oConJug:Execute(vConsCB)
CATCH oError
MsgInfo("No se pudo insertar el registro","Error de datos")
END
ENDIF
ENDIF
oRsB1:MoveNext()
ENDDO
endif
oRsB2:MoveNext()
ENDDO
endif
msginfo("fin del proceso cruze partidos")
oConJug:close()
msginfo("inicia la combinacion de los partidos")
oVar := "SELECT * from partidos"
TRY
oRsB3:=tOleAuto():New("ADODB.RecordSet")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
END
oRsB3:CursorLocation := adUseClient //adUseServer
oRsB3:LockType := adLockOptimistic
oRsB3:CursorType := adOpenKeyset
oRsB3:Source := oVar
oRsB3:ActiveConnection( oConJug )
TRY
oRsB3:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !", "Error de Datos" )
END
//msginfo("despues de crear el recorset")
desde:=1
FOR desde=1 TO fechas
consfecha:=strzero(desde,2)
oRsB3:MoveFirst()
DO WHILE !oRsB3:Eof()
IF Empty(oRsB3:Fields("fecha"):Value)
vConP:=oRsB3:Fields("control"):Value
vEq1P:=oRsB3:Fields("equipo1"):Value
vEq2P:=oRsB3:Fields("equipo2"):Value
vAl1P:=oRsB3:Fields("alias1"):Value
vAl2P:=oRsB3:Fields("alias2"):Value
vCod1:=subs(oRsB3:Fields("control"):Value,1,2)
vCod2:=subs(oRsB3:Fields("control"):Value,4,2)
oVar:="SELECT * from fecha"+consfecha+" WHERE equip1='"+vCod1+"'"
TRY
oConsBO := CreateObject("ADODB.Recordset")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
RETURN(.F.)
END
oConsBO:CursorLocation := adUseClient //adUseServer
oConsBO:LockType := adLockOptimistic
oConsBO:CursorType := adOpenKeyset
oConsBO:Source := oVar
oConsBO:ActiveConnection( oConJug )
TRY
oConsBO:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !","Error de Datos" )
END
nRegEqu1 := oConsBO:RecordCount()
oVar:="SELECT * from fecha"+consfecha+" WHERE equip1='"+vCod2+"'"
TRY
oConsPO := CreateObject("ADODB.Recordset")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
RETURN(.F.)
END
oConsPO:CursorLocation := adUseClient //adUseServer
oConsPO:LockType := adLockOptimistic
oConsPO:CursorType := adOpenKeyset
oConsPO:Source := oVar
oConsPO:ActiveConnection( oConJug )
TRY
oConsPO:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !","Error de Datos" )
END
nRegEqu2 := oConsPO:RecordCount()
IF nRegEqu1=0 .and. nRegEqu2=0
vConsCB:="INSERT INTO fecha"+consfecha+" (equip1,nombr1,alias1) VALUES ('"+vCod1+"','"+vEq1P+"','"+vConP+"')"
TRY
oConJug:Execute(vConsCB)
CATCH oError
MsgInfo("No se pudo insertar el registro","Error de datos")
END
vConsCB:="INSERT INTO fecha"+consfecha+" (equip1,nombr1,alias1) VALUES ('"+vCod2+"','"+vEq2P+"','"+vConP+"')"
TRY
oConJug:Execute(vConsCB)
CATCH oError
MsgInfo("No se pudo insertar el registro","Error de datos")
END
oRsB3:Fields("fecha"):value := consfecha
oRsB3:Update()
ENDIF
ENDIF
oRsB3:MoveNext()
ENDDO
NEXT