Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2003
ricmar ricmar is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
ricmar Va por buen camino
Question Dbf+cdx

Hola.

Estoy haciendo un pequeño programa que debe utilizar unos ficheros de un conocido programa de contabilidad para extraer cierta información. Este programa está basado en Clipper + Fivewin, y utiliza ficheros .DBF e índices .CDX.

Estoy usando D7 y en principio no había problema, pero me he encontrado con que haciendo una simple consulta SQL, incluso desde el SQLExplorer se me queda "clavado" y debo "matar" el proceso.

La sentencia SQL es tan simple como:

select * from diario where fecha between "01/01/2002" and "01/30/2002"

El fichero diario.dbf tiene asociado un fichero de índice diario.cdx.

Si elimino el .cdx, arranco SQLExplorer, abro la tabla, me dice que no puede abrir el índice, le digo que es igual i que lo abra en modo de sólo lectura, no tengo problemas para hacer las consultas.

Hay alguna incompatibilidad con estos índices, o es que hago algo mal?

Alguien tiene alguna idea?

Saludos.

- Ricard -
Responder Con Cita
  #2  
Antiguo 30-06-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Me da la impresión que los ficheros son del tipo FoxPro.

Prueba a abrirlos con un Ttable y elige el tipo TTFoxPro, luego eliges el nombre de la tabla Diario.dbf y pinchas en IndexName y verás todos los índices.

Si es así puede que estemos hablando de ¿Conta Minus? Conta -

Bueno puede que sea al revés.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 02-07-2003
ricmar ricmar is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
ricmar Va por buen camino
Unhappy

Hola marcoszorrilla.

> ...puede que estemos hablando de ¿Conta Minus? Conta -

Pues si, mas o menos

El caso es que dentro del SQL Explorer, si miro el alias que apunta al directorio de los ficheros, puedo ver que los ficheros del programa de contabilidad los identifica como FOX26, mientras que los que yo he creado los identifica como dBaseIV. En el programa cuando utilizo las tablas con tTable, tengo puesto como Table type: ttDefault, pero en el Query no puedo cambiarlo ?¿

De hecho, hace cosas raras.

Tengo una procedure que va haciendo querys para comprobar unos datos, pues bien, depende como le dá, funciona o se queda "colgado" y no he sido capaz de aislar el problema. Supongo que debe ser problema de los índices. Un trozo del código (extremadamente mejorable):

ListBox2.Items.Clear;
with DataModul.Query1 do
begin
SQL.Clear;
SQL.Add('select subcta from diario where asien = :NUMAS ');

for index := 0 to LisBox1.Items.Count-1 do
begin
Close; // Cierra Query
Params[0].AsInteger := StrToInt(ListBox1.Items[index]);
Open;
First;

while not eof do
begin
.....
Next;
end;
end;
end;

Pues debugueando me pasa que a veces se queda colgado en el Open. !¿?


No se. Empiezo a estar un poco "mosca".

Saludos y gracias por haber contestado.

P.D.

En la previsualización del mensaje veo que no respeta los espacios en la indentación del código.
Responder Con Cita
  #4  
Antiguo 02-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
La verdad es que yo me conecto a diario con ese programa, a fin de comprobar descuadres entre "Facturación", y "Contabilidad" y no tengo ningún problema.

Monto un simple Tquery que me extrae los datos del diario para contrastarlos con facturación y viceversa.

En un combo muestro los clientes de un programa propio de facturación se elige uno y acto seguido se lanza una consulta sobre el diario y sobre el código de cliente elegido y ya está.

Prueba con un simple Query y verás como te funciona sin más problemas.

Un Saludo.
Responder Con Cita
  #5  
Antiguo 15-07-2003
ricmar ricmar is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
ricmar Va por buen camino
Hola.

La solución *temporal* a este problema, ha sido desvincular el fichero índice del .dbf, es decir, he eliminado el .cdx, y con el SQL Explorer abrirlo y devincularlo.

De esta manera, consigo que todo el proceso se ejecute correctamente, lo que me "exime" de problemas de diseño.

El problema de esta solución, es que he de trabajar con una copia de los archivos, pues no puedo desvincular el fichero índice del dbf que están usando

Es posible que con alguna libreria tipo Apollo, el tratamiento de este tipo de archivos (dbf+cdx) sea mejor?.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:43:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi