#INCLUDE "TOTVS.CH" #INCLUDE "TOPCONN.CH" USER FUNCTION XSQLDBF() Processa( {|| BAIXATAB()}, " Aguarde...", "Avaliando Baxando ",.F.) RETURN NIL Static Function BAIXATAB() Local cQUery Local nConta := 0 Local nSomar := 0 Local aStru Local NI cQuery := " SELECT name as FNAME FROM sysobjects " cQuery += " WHERE sysstat & 0xf in (3) " cQuery += " AND name not like '#%' and name not like '%FK' and name not like 'SX%' and name not like 'XX%' " cQuery += " AND Len(name) = 6 AND right(name,3) <> '990' " cQuery += " ORDER BY name " cAliasBusca := GetNextAlias() MPSysOpenQuery( cQuery, cAliasBusca,) DbSelectArea(cAliasBusca) DbGotop() ProcRegua(Reccount()) Do While !EOF() cTabMeu := alltrim((cAliasBusca)->FNAME) cTabSeu := 'X'+alltrim((cAliasBusca)->FNAME) cPreTab := left(cTabMeu,3) IncProc("Tabela: "+(cTabSeu)+" "+StrZero(nSomar,5)+".."+StrZero(nConta,5) ) If Len(cTabMeu) == 6 If Right(cTabMeu,3) == '010' aStru := &(cPreTab)->(dbStruct()) nSomar++ cQuery := " SELECT * FROM "+cTabMeu cQuery += " WHERE D_E_L_E_T_ = '' " cAliasBaixa := GetNextAlias() dbUseArea(.T., "TOPCONN", TCGenQry(,,cQuery), cAliasBaixa, .F., .T.) DbSelectArea(cAliasBaixa) For nI := 1 to Len(aStru) If aStru[nI,2] != 'C' TCSetField(cAliasBaixa, aStru[nI,1], aStru[nI,2],aStru[nI,3],aStru[nI,4]) Endif Next cArqDest := "\cprova\"+cTabSeu+".dtc" cArqLoca := "C:\TEMP\"+cTabMeu+".dtc" Copy to &(cArqDest) Copy File &(cArqDest) To &(cArqLoca) (cAliasBaixa)->(DbCloseArea()) ENDIF ENDIF nConta++ DbSelectArea(cAliasBusca) DbSkip() EndDo (cAliasBusca)->(DbCloseArea()) MsgAlert("Total de tabelas: " + StrZero(nConta,6)+ "Copiada: "+Strzero(nSomar,6), "Atencao!") RETURN NIL