Ayuda con apertura de ficheros POR FAVOR

Ayuda con apertura de ficheros POR FAVOR

Postby mjcc » Mon Dec 18, 2006 1:20 pm

Tengo una rutina que abre todos los ficheros del sistema, ahora le he ampliado tres ficheros mas, y me da u error, de
** error de apertura **
y no me deja abrir mas de un determinado numero de ficheros, alguno de vosotros conoce una solucion por favor

GRACIAS
mjcc
 
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Postby Carles » Mon Dec 18, 2006 1:59 pm

Hola,

Primero de todo tenemos de averiguar q fichero es. Tambien se puede mirar la rutina q abre los fichero y ver como lo haces. Mirar si hay campos memo, indices asociados, ....

Necesitamos datos :wink:

Tranki q todo tiene solucion
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1136
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Ahi va todo el codigo.

Postby mjcc » Mon Dec 18, 2006 2:51 pm

#include "FWCE.ch"
function Main()
local oWnd, obmp
DbCloseAll()
Config()
abrir_dbfs_cdx()
indexa_ficheros()
abrir_dbfs_tmp()
menu_principal()
DbCloseAll()
oBmp:End()
return 0
********************************************************
* Configurardor de opciones de menu
********************************************************
FUNCTION iniciar_menu

local oMenu
DEFINE MENU oMenu RESOURCE 102
REDEFINE MENUITEM ID 320 OF oMenu ACTION MsgInfo("MJCC" +;
CHR(13) +;
"Manuel Jose Castro Casas,S.L." +;
CHR(13) +;
"Arcay 124 bajo"+;
CHR(13) +;
"15873 - Bembibre"+;
CHR(13)+;
"La Coruña"+;
CHR(13)+;
"902 234568",;
"Gestion POKECT")

REDEFINE MENUITEM ID 1310 OF oMenu ACTION vehiculo("","","","")
RETURN omenu
********************************************************
* Configuracion del sistema por defecto para arrancar *
********************************************************
STATIC FUNCTION Config()
HB_LANGSELECT("ESWIN")
SET DELETED ON
SET DATE TO ITALIAN
SET SOFTSEEK ON
SET CENTURY ON
SET EPOCH TO 2000
SET CONFIR ON
*Hb_LangSelect ('PL')
*Hb_SetCodePage ('PLWIN')
REQUEST HB_LANG_ES // Para establecer español para Mensajes, fechas, etc..
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)
HB_LangSelect('ES')
HB_SetCodePage("ESWIN") // Para ordenación (arrays, cadenas, etc..)
RETURN 0
********************************************************************
* Abre los ficheros temporales del sistema *
********************************************************************
FUNCTION abrir_dbfs_tmp()
USE ( CurDir() + "\tmp\rescli.dbf") NEW
USE ( CurDir() + "\tmp\resart.dbf") NEW
USE ( CurDir() + "\tmp\resage.dbf") NEW
USE ( CurDir() + "\tmp\resavc.dbf") NEW
USE ( CurDir() + "\tmp\lineas.dbf") NEW
USE ( CurDir() + "\tmp\resvehi.dbf") NEW
RETURN 0
***********************************************************************************
* APERTURA DE FICHEROS CON LOS INDICES GENERADOS
***********************************************************************************
FUNCTION abrir_dbfs_cdx()
USE ( CurDir() + "\dat\planning.dbf") NEW
USE ( CurDir() + "\dat\plandet.dbf") NEW
USE ( CurDir() + "\dat\cliente.dbf") NEW
USE ( CurDir() + "\dat\articulo.dbf") NEW
USE ( CurDir() + "\dat\agenda.dbf") NEW
USE ( CurDir() + "\dat\tareas.dbf") NEW
USE ( CurDir() + "\dat\recuento.dbf") NEW
USE ( CurDir() + "\dat\avc.dbf") NEW
USE ( CurDir() + "\dat\avl.dbf") NEW
USE ( CurDir() + "\dat\fpago.dbf") NEW
USE ( CurDir() + "\dat\barras.dbf") NEW
USE ( CurDir() + "\dat\vehiculo.dbf") NEW
USE ( CurDir() + "\dat\grupo.dbf") NEW
USE ( CurDir() + "\dat\subgrupo.dbf") NEW
USE ( CurDir() + "\dat\familias.dbf") NEW
USE ( CurDir() + "\dat\seccion.dbf") NEW
USE ( CurDir() + "\dat\labo.dbf") NEW
RETURN 0
*************************************************************************
* Indexa los ficheros de la aplicacion por los campos que a mi me interesan
**************************************************************************
Function indexa_ficheros ()
Request DbfCdx
Request DbfFpt
RddSetDefault ('DbfCdx')
Request Hb_Lang_PLWIN
Request Hb_CodePage_PLWIN
* Clientes
SELECT cliente
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\cliente.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\cliente.cdx" ) FOR borrado <> 1
* Artículos
SELECT articulo
Index On nombrea Tag inombrec TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
Index On autosel Tag iautosel TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
* Indexa los ficheros de la agenda
SELECT agenda
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\agenda.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\agenda.cdx" ) FOR borrado <> 1
* Indexa fichero de planning
SELECT tareas
Index On subs(dtoc(tfecha),1,5) + alltrim(thora) Tag inombrec TO ( CurDir() + "\dat\tareas.cdx" ) FOR borrado <> 1
* Indexa fichero de recuento de stocks
SELECT recuento
Index ON codigo Tag irecuen TO ( CurDir() + "\dat\recuento.cdx" )
* Indexa el fichero de cabeceras de albaranes de ventas
SELECT avc
Index ON nombrec Tag inombre TO ( CurDir() + "\dat\avc.cdx" ) FOR borrado <> 1
Index ON puntero Tag icodigo TO ( CurDir() + "\dat\avc.cdx" ) FOR borrado <> 1
* Indexa el fichero de albaranes
SELECT avl
Index ON documento Tag icodigo TO ( CurDir() + "\dat\avl.cdx" ) FOR borrado <> 1
Index ON puntero Tag ilineas TO ( CurDir() + "\dat\avl.cdx" ) FOR borrado <> 1
* Indexa el fichero de formas de pago
SELECT fpago
Index ON pagocod Tag icodpag TO ( CurDir() + "\dat\fpago.cdx" )
* Indexa el fichero de codigos de barras
SELECT barras
Index ON bartean13 Tag barras1 TO ( CurDir() + "\dat\barras.cdx" )
Index ON bartean13d Tag barras2 TO ( CurDir() + "\dat\barras.cdx" )
* Fichero de planning
SELECT planning
Index ON fechadoc Tag icodigo TO ( CurDir() + "\dat\planning.cdx" )
* Detalle de plannig
SELECT plandet
Index ON fechadoc Tag icodf TO ( CurDir() + "\dat\plandet.cdx" )
* Vehiculos empresa
SELECT vehiculo
Index On nombrec Tag nombrev TO ( CurDir() + "\dat\vehiculo.cdx" ) FOR borrado <> 1
Index On codigo Tag matricu TO ( CurDir() + "\dat\vehiculo.cdx" ) FOR borrado <> 1
* Grupos
SELECT grupo
Index On percod Tag ipercod TO ( CurDir() + "\dat\grupo.cdx" )
* Subrupos
SELECT subgrupo
Index On percod Tag ipercod TO ( CurDir() + "\dat\subgrupo.cdx" )
* Familias
SELECT familias
Index On famcodigo Tag ifamcod TO ( CurDir() + "\dat\familias.cdx" )
* Secciones
SELECT seccion
Index On sec_codigo Tag iseccod TO ( CurDir() + "\dat\seccion.cdx" )
* Laboratorios
SELECT labo
Index On percod Tag ilabo TO ( CurDir() + "\dat\labo.cdx" )
Return 0
mjcc
 
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Postby Antonio Linares » Tue Dec 19, 2006 6:12 am

Manolo,

Pudiese tratarse de una limitación de Windows Mobile. Vamos a construir un ejemplo ya a probarlo, y en caso de existir esa limitación, vamos a ver si existe forma de ampliar esa cantidad.

Por favor, no pongas el mismo mensaje tantas veces. Te hemos leido y vamos a ayudarte. Quédate tranquilo.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Carles » Tue Dec 19, 2006 8:09 am

Hola,

La aplicacion q mas ficheros abria era 15 y me iba correctamente. He ampliado la apertura (ya por curiosidad), y me abre hasta 19 (con indices asociados) - >Curiosa la limitacion.

Tranquilo Mjcc q Antonio encontrará la solucion (recouerdo los viejos tiempos con el sethandlecount(), o algo asi).
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1136
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

OK

Postby mjcc » Tue Dec 19, 2006 10:27 am

Tengo que hacer la presentacion la semana que viene y me da una rabia estos errores chorra que no te puedes imaginar.

GRACIAS, CONFIO EN VOSOTROS
mjcc
 
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Postby Carles » Tue Dec 19, 2006 10:47 am

Pues este problema creo q solo te lo podra solucionar una persona. De todas maneras para salir del paso en la presentacion y tenerlos 'engañados' puedes mirar de abrir y cerrar las tablas cuando las necesites. Supongo q no tendras un proceso q necesites todas abiertas.

Vamos a ver q cuentas AL
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1136
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

ok

Postby mjcc » Tue Dec 19, 2006 10:55 am

De todas formas no os olvideis de mi a ver si podemos solucionarlo

Gracias.
mjcc
 
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Postby tsales » Tue Dec 19, 2006 10:56 am

¿Estas utilizando el Emulador o una PDA?. ¿Que version de SO?

Saludos
PD: Agradecería te identificaras con tu nombre.
Toni Sales
tsales
 
Posts: 186
Joined: Sat Oct 08, 2005 7:32 am

Postby Carles » Tue Dec 19, 2006 11:10 am

Mjcc,

Toni tiene razon. Da error en el emulador, pero no en la Pocket. Acabo de instalar el program,a en una pocket y me va fenomenal (como siempre :wink: ), pero en cambio me da error en el emulador.

Solucionado ! -> No hay problema en Pocket !
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1136
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Postby tsales » Tue Dec 19, 2006 11:16 am

En mi aplicación estoy utilizando hasta 25 ficheros abiertos con sus respectivos CDX y todo funciona correctamente.

Saludos
Toni Sales
tsales
 
Posts: 186
Joined: Sat Oct 08, 2005 7:32 am

Postby Antonio Linares » Tue Dec 19, 2006 11:19 am

Carles,

Gracias por la información, que bien que funcione correcto en el Pocket PC real :-)

De todas formas estamos buscando a ver si hay una forma de ampliarlo en el emulador.

Ya hemos mirado a ver si está el SetHandleCount() pero no, no está.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Tue Dec 19, 2006 11:30 am

Buenas noticias :-)

El error sólo se produce al trabajar en la tarjeta de memoria.

Si la aplicación se copia al directorio raiz, por ejemplo, la aplicación funciona perfectamente. Este es un ejemplo:
Code: Select all  Expand view
request DBFCDX

function Main()

   local n, cDbfName

   for n = 1 to 25
      cDbfName = CurDir() + "\_" + AllTrim( Str( n ) )
      DbCreate( cDbfName, { { "first", "C", 8, 0 } } )
      MsgInfo( cDbfName )
      USE ( cDbfName ) VIA "DBFCDX" NEW
      INDEX ON first to ( CurDir() + "\_" + AllTrim( Str( n ) ) )
   next

   MsgInfo( "ok" )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

ok

Postby mjcc » Tue Dec 19, 2006 12:36 pm

A mi de da error en tanto en la pokect como en el emulador, y da igual que sea en la raiz que en el la pokect que en la tarjeta de memoria.
mjcc
 
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Postby Carles » Tue Dec 19, 2006 2:00 pm

Si al final del ejemplo de Antonio pones Msginfo( len(aGetWorkAreas()) ), veras como te da q estan las 25 areas abiertas. Verificado en Pocket.

Siau
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1136
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Next

Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 22 guests