Page 1 of 1
Conexión a un AS/400
Posted: Tue Nov 15, 2005 6:43 pm
by Armando
Amigos el foro:
Necesito conectarme a un AS/400-DB2 para obtener
información y crear un fichero en formato TXT, el
problema que tengo es ¿ Cómo hacer la conexión ?
supongo que vía ODBC pero no tengo la experiencia
necesaria.
Alguien que me tire un hilo para poder continuar ?
Saludos
Posted: Tue Nov 15, 2005 8:15 pm
by R.F.
Si es a un DB2/400 se puede hacer por ADO siempre y cuando exista el ADO Provider, que creo que si existe, llamame y te digo lo que necesitas.
Posted: Fri Nov 25, 2005 3:09 pm
by YamilBracho
Necesitas instalar en tu PC un software de IBM llamado ClientAccess
Tienes razón
Posted: Fri Nov 25, 2005 10:02 pm
by Armando
Yamil:
Efectivamente existe ese software aúnque el cliente no lo esta usando, utiliza otro que se llama Bossanova.
Saludos, Armando
Posted: Fri Feb 24, 2006 6:07 pm
by Biel EA6DD
Armando, soy un recien llegado al foro, supongo que ya tendras el tema arreglado, pero si todavia necesitas ayuda con el AS/400 hazmelo saber.
Biel
Saludos desde Mallorca
Posted: Sat Feb 25, 2006 4:24 pm
by Armando
Biel:
La verdad es que aún esta pendiente el tema, si tienes tiempo para apoyarme te lo voy a agradecer.
Envie un correo a tu privado pero no se si lo recibiste.
Saludos, Armando
Posted: Tue Mar 07, 2006 9:54 am
by Biel EA6DD
Armando, tal como comentamos por correo-e aqui te pongo una pequeña prueba que hice con la conexion ODBC del AS/400
Code: Select all
//-----------------
FUNCTION TestOdbc()
//-----------------
Local oODBC,oWndOdbc,oBrw ,oDbf
DEFINE WINDOW oWndOdbc MDI CHILD FROM 2,2 TO 22,60 TITLE '('+ProcName()+") Tabla en AS/400" COLOR "B/W"
//----
oODBC := TOdbc():New("haprot01" ) //no paso Usr ni Psw pq la sesion ya esta abierta
//haprot01->Nombre del origen de datos que apunta al AS/400 via Client Access ODBC
If !oOdbc:lSuccess
oOdbc:ShowErrorList("ODBC session not successfully initialized, aborting...")
oOdbc:End()
return nil
Endif
oDbf := oOdbc:Query( "SELECT CliCod,CliNomFis FROM HAPROT01F.client" )
// biblioteca.fichero
// puedes hacer select de ficheros fisicos, logicos o joins. O juntarlos en la propia sentencia SQL
oDbf:PrimaryKeys({'CliCod'})//Le asigno la clave manualmente, pq el ODBC del AS/400 no la devuelve
//Necesario si queremos hacer actualizaciones
if oOdbc:IsError()
oOdbc:ShowErrorList()
oOdbc:aErrors := {}
oDbf:End()
return nil
endif
oDbf:Open()
oDbf:Complete()
oDbf:GoTop()
//------
oBrw := TXBrowse():New(oWndOdbc)
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .T.
oCol:= oBrw:AddCol()
oCol:bStrData:= {|| Str(oDbf:CliCod) }
oCol:cHeader := 'Cod'
oCol:= oBrw:AddCol()
oCol:bStrData:= {|| oDbf:CliNomFis }
oCol:cHeader := 'Nombre Fiscal'
oBrw:SetRDD()
oBrw:CreateFromCode()
oWndOdbc:oClient := oBrw
oBrw:SetFocus()
ACTIVATE WINDOW oWndOdbc VALID (oDbf:END(),.T.)
/* Un test para probar si grababa correctamente en AS/400, todo OK.
oDbf:AddNew()
oDbf:CliCod :=18
oDbf:CliNomFis:='Grabado desde Harbour'
oDbf:Update() */
RETURN NIL
Posted: Tue Mar 07, 2006 10:17 pm
by Armando
Biel:
Muchas gracias por el ejemplo, voy a intentarle partiendo de tu aporte.
Saludos, Armando