[SOLUCIONADO] Exportacion dbf

Buen dia a todos.
les cuento que estoy trabajando en un proyecto para una materia de mi facultad, y necesito hacer una exportacion a dbf, agregue las librerias dbase.so en php.ini del apache, cree una clase para conectarme a las tablas dbf, pero me tira un error de llamada a la metodo indefinido cuando quiero abrir alguna tabla. Estoy usando ubuntu 10.10, siu toba 2.0.2. Si saben de que otra manera se puede realizar esta exportacion o si el toba posee algo para manipular lo dbf les voy a agredecer.
Muchas gracias.

Hola Gustavo,

bienvenido al foro, en principio no hay nada en toba para exportar a dbf, lo que deseas exportar es consecuencia de un proceso batch o sale de algun componente visual?
Que funcion estas usando de la extension de dbase para PHP?

Saludos

Hola Richard:
estoy utilizando array’s, en los cuales traigo los datos que necesito, luego quiero insertar en un tabla modelo vacia. La funcion que escribi es la siguiente:

function agregar_registro_dbf($archivo, $registro){
switch ($archivo) {
case ‘abstr.dbf’:
$db = dbase_open(‘Gestion_Proyectos/Winsip/estructura_modelo/’.“$archivo”, 2); //el 2 significa que abro el archivo en el modo escritura/lectura
if ($db) {
foreach($registro as $elemento){
dbase_add_record($db, $elemento);
}
dbase_close($db);
}
break;
}
}
la variable archivo es simplemente el nombre de la tabla que quiero rellenar, y la variable registro el array con los datos.
en la linea donde pretendo abrir la tabla me tirar el error de llamada de metodo indefinido.
Gracias por la bienvenida.
Espero puedas ayudarme.
Gracias denuevo.
saludos

Hola Gustavo,

si esta dandote un error de llamada a metodo indefinido deberia ser porque no esta cargado el modulo de dbase, podrias ejecutar este comando y ver si la libreria de Dbase aparece listada en el mismo.


php -m

Podes ver lo mismo desde dentro de toba_editor, apenas entras (en el frame de la derecha) hay un link que te muestra la informacion de la instalacion de PHP.

Saludos

Hola Richard:

ejecute

php -m

y no me aparece dbase, yo agregue la linea

extension=dbase.so 

en /etc/php5/apache2/php.ini y /etc/php5/cli/php.ini, busque el modulo dbase.so version php-dbase-5.2.9-1.i386 y lo agregue en /usr/lib/php5/20090626+lfs, y sigue sin aparecer, despues de ejecutar php -m. Yo no se si le estoy errando a la version del dbase.so o al directorio.
Saludos

Hola Gustavo,

lo que deberias ver es hacia donde esta apuntando el extension_dir de PHP, quizas el modulo de dbase no este en el lugar correcto o te falte hacer un symlink hacia donde se encuetra el archivo.
Si la extension la instalaste con algun gestor de paquetes no deberias tener inconvenientes, si la instalaste a mano quizas deberias ver que sea compatible con la version de PHP que tenes instalada,
de todas maneras cuando ejecutaste el comando por consola, no te emitio ningun error?

Saludos

Hola Richard:
Si me tiro un error al ejecutar php -m, me olvide ponerlo, debajo lo dejo:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/dbase.so' - /usr/lib/php5/20090626+lfs/dbase.so: undefined symbol: ts_resource_ex in Unknown on line 0

y el extension_dir esta con un “;” adelante y apunta a “./” quedaria asi

 ; extension_dir = "./"

y al dbase.so lo agregue a mano. No se como buscarlo por gestor de paquetes. La version de php q uso es 5.3.3-1ubuntu9.3.
Gracias.
Saludos

Evidentemente no esta encontrando el archivo (permisos de lectura y ejecucion en el directorio para apache?) o no coincide la version.
Por lo que decis me inclinaria por lo segundo, ya que pareciera que estas usando una libreria para PHP 5.2.x, mientras que vos tenes instalada 5.3.3.

y el extension_dir esta con un ";" adelante y apunta a "./" quedaria asi
 ; extension_dir = "./"
Si tenes un directorio donde se encuentren todas las extensiones de PHP, usualmente [b]/usr/lib/php5/extensions[/b] deberias incluirla en dicho directorio y luego configurar el extension_dir para apuntar ahi. Lo otro que podes hacer es tener un symlink a tu modulo para dbase, de todas maneras primero necesitarias ubicar el directorio con las extensiones de PHP.
y al dbase.so lo agregue a mano. No se como buscarlo por gestor de paquetes. La version de php q uso es 5.3.3-1ubuntu9.3.
Usando el gestor buscas el termino 'php5' y te deberian salir todas las extensiones disponibles para esa version. Si instalaste PHP a mano entonces ahi vas a tener que buscar una version especifica de dbase o compilarte una para esa version de php. Probaste bajando el archivo comprimido de tu version de PHP y reemplazando el modulo con el que viene ahi dentro?

Saludos

Hola Richard:
te cuento que solucione el problema instalando:

sudo pecl install dbase
              me agrego todo lo q necesitaba, despues hice una prueba con la funcion que habia creado y me leyo  las tablas dbf e inserte un par de registros.

De todas maneras muchas gracias por la ayuda.
Saludos