Giovany.
Saludos
Gracias por su respuesta, si esto que tu dices es lo que dice, pero no se soluciona.
Este es el codigo que ejecuto.
Este es elemnsaje que sale
La Aplicacion no se puede iniciar Correctamente (0x0000142. Haa Click Para acepta y Cerrarla.
Esporadica mente sale el mensaje , y de pronto se arragla.
Segun veo parece que el problema me lo genera esta funcion TADS_START_CONFIG()
PArece que algo en memoria quedara que impidira que se ejecutara.
Este es el codiog que ejecuto
Code: Select all | Expand
#Include "Fivewin.Ch"
#Include "TAds.ch"
#include "xbrowse.ch"
#ifdef __HARBOUR__
#ifndef __XHARBOUR__
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS
#xtranslate Throw( <oErr> ) => ( Eval( ErrorBlock(), <oErr> ), Break( <oErr> ) )
#endif
#endif
Static oConexaoDefault
function main()
Local cComando := "", nModo := 0
Local lConnected := .f.
Local oError
Local oWndMain, oBarMain, oCursorHand
Local oMenuRdd, oBtnRdd, oBtnServer, oMenuServer,oDatx
Local oBtnInfo, oBtnExit,n
Local cSenhaLocal, cSenhaInternet
//Local oSelf := Self
Local oDs_CATCUE,cSql,cCursor
Local aExistingGrps := {}
Local aColunas := {}, nColTmp := 0
cSenhaLocal := "12345"
TRY
TADS_START_CONFIG() // Inicia as configurações basicas de ambientes para Advantage
oConexaoDefault := tAdsConnection():New(1,.T.) // Conexão de Numero 1 e .T. para definir conexão padrao
oConexaoDefault:cDataDictionary := "J:\PLA3ADS\DADOS\TESTE.ADD" //".\DADOS\TESTE.ADD" //ruben
oConexaoDefault:cSenhaConnect := "12345"
oConexaoDefault:nTpConnect := 1
lConnected := oConexaoDefault:tAdsConnect()
If !lConnected
MsgStop("No hay Conexion con el Diccionario de Dados ")
//Return //Self
Else
MsgInfo("Conexion Con Exito")
XBROWSER "F_CFOP.ADT" FASTEDIT
DbUseArea( .T., "ADS" , "F_CFOP", "cust" )
Browse()
DbCloseArea()
EndIf
CATCH oError
MsgStop(oError:Operation+CRLF+oError:Description,"Ado Connection")
RETURN NIL
END
oConexaoDefault:tAdsCloseConnect()
Memory(-1)
hb_gcAll(.t.) //para que harbour haga una recogida de "basura".
return nil
Este e4s el TADS_START_CONFIG() que tengo
Code: Select all | Expand
FUNCTION TADS_START_CONFIG(f_cDirTmp,f_cPassAdsSys)
Local oConnectionTmp, cDirExpr := "", lCreateTmp := .F.
Local aStructTmp := {}
Default f_cDirTmp := "J:\PLA3ADS\DADOSTMP\" //HB_CURDRIVE()+":\"+CURDIR()+"\DADOSTMP\"
Default f_cPassAdsSys := ""
St_cDirTmp := f_cDirTmp
REQUEST DBFCDX , DBFFPT, DBFDBT
REQUEST ADS , ADSX, ADSADTX, ADSKeyno, ADSKeycount, AdsGetRelKeyPos, AdsSetRelKeyPos
hb_rddADSRegister()
Set( _SET_OPTIMIZE, .T. )
//Set( _SET_AUTORDER, .T. )
//RddRegister( "ADSADTX", 1 ) // ADS for Harbour
//RddSetDefault( "ADSADTX" ) // ADS for Harbour
RddRegister( "ADS", 1 ) // ADS for Harbour
RddSetDefault( "ADS" ) // ADS for Harbour
AdsLocking( .T. )
AdsRightsCheck( .T. )
AdsTestRecLocks( .T. )
ADSCACHEOPENTABLES( 10 ) // PADRÃO 0
AdsCacheOpenCursors( 126 ) // PADRÃO 25
AdsSetDateFormat( "DD/MM/YYYY" )
AdsSetEpoch("01/01/1990")
AdsSetFileType( 3 ) /// 1 NTX / 2 CDX / 3 ADT
AdsSetCharType(1)
#ifdef __XHARBOUR__
SET(_SET_HARDCOMMIT,.F.)
#else
SET(106,.F.)
#endif
///SET(43,.F.)
lMkDir(f_cDirTmp)
FERASE(f_cDirTmp+"TADS_ERR.ADI")
If !File(f_cDirTmp+"TADS_TMP.ADD")
cDirExpr := StrTran(f_cDirTmp,"\","\\")
AdsSetServerType(1)
TAds_CreateDataDictionary(cDirExpr+"TADS_TMP.ADD","Dicionario de dados temporal para TAds")
lCreateTmp := .T.
EndIf
oConnectionTmp := tAdsConnection():New(121,.F.)
oConnectionTmp:cDataDictionary := f_cDirTmp+"TADS_TMP.ADD"
oConnectionTmp:cSenhaConnect := f_cPassAdsSys
oConnectionTmp:nTpConnect := 1
oConnectionTmp:tAdsConnect()
If lCreateTmp
if !Empty(f_cPassAdsSys)
TAds_ModifyUserProperty(121,"ADSSYS",f_cPassAdsSys)
EndIf
aadd(aStructTmp,{"STATUS","Short",2,0,1,"Status para Controle Interno",0})
aadd(aStructTmp,{"Dt_Ocorrencia","Date",8,0,1,"Data da Ocorrencia do erro",Nil})
aadd(aStructTmp,{"Hr_Ocorrencia","C",10,0,0,"Horas da Ocorrencia do erro",Nil})
aadd(aStructTmp,{"cComputerName","C",50,0,0,"Nome do Computador ",Nil})
aadd(aStructTmp,{"cInfoProcLine","C",100,0,0,"Linha e procedimento da chamada de DsNew()",Nil})
aadd(aStructTmp,{"nErrorSql","N",7,0,0,"Numero do Erro retornado por AdsGetLastError",Nil})
aadd(aStructTmp,{"cErrorSql","Memo",8,0,0,"Descricao do Erro retornado por AdsGetLastError",Nil})
aadd(aStructTmp,{"cSqlScript","Memo",8,0,0,"Script Sql aplicado",Nil})
aadd(aStructTmp,{"cErrorComplete","Memo",8,0,0,"Descrição completa do erro",Nil})
TAds_CreateTableFromCode(121,"TADS_ERR",aStructTmp,"Tabela para registros de erros de tAds DataSet")
EndIf
RETURN NIL