Daniel,
Muchas gracias, pero me devuelve el siguiente errror:
Application
===========
Path and name: C:\DEVELOP\PROGRAMAS\RT\ICADE\icade.exe (32 bits)
Size: 1,269,760 bytes
Time from start: 0 hours 0 mins 6 secs
Error occurred at: 12/27/08, 18:08:08
Error description: Error BASE/1004 Message not found: TMSTABLE:READ
Args:
[ 1] = O Object
===========
Path and name: C:\DEVELOP\PROGRAMAS\RT\ICADE\icade.exe (32 bits)
Size: 1,269,760 bytes
Time from start: 0 hours 0 mins 6 secs
Error occurred at: 12/27/08, 18:08:08
Error description: Error BASE/1004 Message not found: TMSTABLE:READ
Args:
[ 1] = O Object
Stack Calls
===========
Called from: => __ERRRT_SBASE(0)
Called from: => TMSTABLE:ERROR(170)
Called from: source\rtl\tobject.prg => (b)HBOBJECT(105)
Called from: => TMSTABLE:MSGNOTFOUND(0)
Called from: => TMSTABLE:READ(164)
Called from: icade.prg => IMPORTARICADE(152)
Called from: icade.prg => MAIN(69)
===========
Called from: => __ERRRT_SBASE(0)
Called from: => TMSTABLE:ERROR(170)
Called from: source\rtl\tobject.prg => (b)HBOBJECT(105)
Called from: => TMSTABLE:MSGNOTFOUND(0)
Called from: => TMSTABLE:READ(164)
Called from: icade.prg => IMPORTARICADE(152)
Called from: icade.prg => MAIN(69)
Y el código es:
// Seleccionamos la TABLA LIBROS---------------------------
oTb := TMSTable():New( oMySql, AllTrim(cTablaCliente) )
oTb := TMSTable():New( oMySql, AllTrim(cTablaCliente) )
if !oTb:Open() // si no se abre
MsgStop( "No se puede abrir la tabla: " + cTablacliente, "Operación Cancelada" )
RETURN Nil
else
// Contamos total de Registros
oTb:GoTop():Read()
nTotal := oTb:RecCount()
endif
MsgStop( "No se puede abrir la tabla: " + cTablacliente, "Operación Cancelada" )
RETURN Nil
else
// Contamos total de Registros
oTb:GoTop():Read()
nTotal := oTb:RecCount()
endif
Muchas gracias.
Un saludo
El 27 de diciembre de 2008 17:59, Daniel Puente-Grupo Petrosur S.R.L <puenteda@...> escribió:
Moises:Despues de abrir la tabla, y antes de manipular ningun registro ni pedir ningun fieldget() agrega:oTb:GoTop():Read()Saludos,
Daniel Puente
Marchione Sistemas
Puerto San Julian, Pcia. Santa Cruz----- Mensaje original -----De: Moisés BarrioPara: eagle1@yahoogroups.comEnviado: Sábado, 27 de Diciembre de 2008 12:09 p.m.Asunto: [eagle1] error de Harbour con FieldGet()
Hola a todos:Uso FW 8.09, Harbour 1.0 y el siguiente código genera el error adjunto al hacer FieldGet( 1). No se qué hago mal. Muchas gracias por la ayuda.Un saludo,Moisés// Conexión SQL-----------------------------------------------
oMySql := TMSConnect():New()IF oMySql:lInit
MsgInfo( "Sistema SQL inicializado correctamente", " Motor SQL " )
ENDIFSysrefresh()
IF !oMySql:Connect( cServidor, cLogin, cPass, cBaseCliente ) // servidor MYSQL
MsgStop( "ERROR: No hay conexión con la Base de Datos "+AllTrim(cTablaCliente)+"."+CRLF+"La operación no ha sido realizada. Posiblemente, no hay acceso a Internet.", " ERROR Motor SQL " )
DbCloseALL()
quit
ENDIF
// -----------------------------------------------------------
// Obtengo Total Registros----------------------------------
// Seleccionamos la TABLA LIBROS---------------------------
oTb := TMSTable():New( oMySql, AllTrim(cTablaCliente) )if !oTb:Open() // si no se abre
MsgStop( "No se puede abrir la tabla: " + cTablacliente, "Operación Cancelada" )
RETURN Nil
else
// Contamos total de Registros
nTotal := oTb:RecCount()
msgalert(ntotal)
endif
// Pinto dialogo con barra----------------------------------
DEFINE DIALOG oDlg RESOURCE "ESPERAR" TITLE OemToAnsi("Importando Datos. Por favor, espere...")REDEFINE PROGRESS oMeter ID 150 OF oDlg
ACTIVATE DIALOG oDlg CENTERED;
ON INIT ( oMeter:SetRange( 0, nTotal ), ;
oMeter:SetPos( nActual ), ;
oDlg:Hide(), ImportarDATOS( oMySql, cTablaCliente, oTb, oMeter, nTotal, oDlg ) )// Cierre de SQL
oMySql:Close()
oMySql:Free()
RETURN NIL
//----------------------------------------------------------------------------////----------------------------------------------------------------------------//
// IMPORTAR DATOS
//
//----------------------------------------------------------------------------//
FUNCTION ImportarDATOS( oMySql, cTablaCliente, oTb, oMeter, nTotal, oDlg )LOCAL cLast, lBloqueado := .F.
LOCAL cActual := 1
LOCAL n// Control de Tabla-------------------------------------------
//oTb:Blank()if !oTb:Open() // si no se abre
MsgStop( "No se puede abrir la tabla: " + cTablacliente, "Operación Cancelada" )
DbCloseAll()
QUIT
endif
// Seleccionamos Base de Datos--------------------------------
SELECT("CLIENTES")// Controles de la BARRA--------------------------------------
oDlg:Show()
oDlg:SetFocus()
// Ejecutamos la importacion----------------------------------
FOR n := 1 TO nTotalAPPEND BLANK
MSGALERT(OTB:FIELDGET(1))// aquí da el error, o en el primer REPLACE CLIENTES-> si lo quitoREPLACE CLIENTES->CAMPO01 WITH oTb:FieldGet( 1 )
REPLACE CLIENTES->CAMPO02 WITH oTb:FieldGet( 2 )
REPLACE CLIENTES->NOMBRE WITH oTb:FieldGet( 9 )+space(1)+oTb:FieldGet( 10 )+space(1)+oTb:FieldGet( 8 )
REPLACE CLIENTES->NIF WITH oTb:FieldGet( 11 )
REPLACE CLIENTES->DIRECCION WITH oTb:FieldGet( 17 )
REPLACE CLIENTES->POBLACION WITH oTb:FieldGet( 19 )
REPLACE CLIENTES->TELEFONO WITH oTb:FieldGet( 21 )
REPLACE CLIENTES->BANCO WITH oTb:FieldGet( 37 )
REPLACE CLIENTES->OFICINA WITH oTb:FieldGet( 38 )
REPLACE CLIENTES->SUCURSAL WITH oTb:FieldGet( 39 )
REPLACE CLIENTES->DC WITH oTb:FieldGet( 40 )
REPLACE CLIENTES->CUENTA WITH oTb:FieldGet( 41 )
REPLACE CLIENTES->DIR_BANCO WITH oTb:FieldGet( 42 )
REPLACE CLIENTES->POB_BANCO WITH oTb:FieldGet( 43 )if oTb:FieldGet( 45 ) = 1 // Caja
REPLACE CLIENTES->FPAGO WITH "Caja"
else
REPLACE CLIENTES->FPAGO WITH "Domiciliación"
endif// Avanzamos registro
oTb:Skip( 1 )
oMeter:SetPos( cActual )
cActual++
Sysrefresh()
n++
NEXT
// Ejecutamos la importacion----------------------------------oTb:Close() // Cerramos la TABLA