Ver Mensaje Individual
  #1  
Antiguo 16-11-2007
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 23
salvica Va por buen camino
Acceder a tablas DBF con ADO

Hola
Intento rellenar un informe desde cinco tablas .DBF (DBase IV) mediante un ZQuery de Zeos con la siguiente consulta:
Código Delphi [-]
{ activar la base de datos }
  with ZQuery do begin
     { desactivar la base de datos }
       Active := false;
       if bHAY_MYSQL then begin
          Connection := Form_Impresion.ZConnection_MYSQL;
       end else begin
          Connection := Form_Impresion.ZConnection_DBF;
       end;
     { confección de la Query de consulta }
       SQL.Clear;
       SQL.Add( 'SELECT tabla1.maximo, tabla1.cad_maximo,' );
       SQL.Add( '       tabla1.minimo, tabla1.cad_minimo,' );
     { datos de tabla2 }
       SQL.Add( '       tabla2.ayer,'   );
       SQL.Add( '       tabla2.hoy,'    );
       SQL.Add( '       tabla2.valor,'  );
       SQL.Add( '       tabla2.helado,' );
       SQL.Add( '       tabla2.roto,'   );
     { datos de tabla3 }
       SQL.Add( '       tabla3.xcien,'    );
       SQL.Add( '       tabla3.duracion,' );
     { datos de tabla4 }
       SQL.Add( '       tabla4.valor_06,' );
       SQL.Add( '       tabla4.valor_07,' );
       SQL.Add( '       tabla4.valor_12,' );
       SQL.Add( '       tabla4.valor_13,' );
       SQL.Add( '       tabla4.valor_18,' );
       SQL.Add( '       tabla4.valor_24,' );
     { datos de tabla5 }
       SQL.Add( '       tabla5.dif_00,' );
       SQL.Add( '       tabla5.dif_07 ' );
       SQL.Add( '  FROM tabla1' );
       SQL.Add( '  JOIN tabla2  ON tabla2.clave=tabla1.clave' );
       SQL.Add( '  JOIN tabla3  ON tabla3.clave=tabla1.clave' );
       SQL.Add( '  JOIN tabla4  ON tabla4.clave=tabla1.clave' );
       SQL.Add( '  JOIN tabla5  ON tabla5.clave=tabla1.clave' );
       SQL.Add( ' WHERE tabla1.clave="' + strClave + '"' );
       SQL.Add( ' ORDER BY tabla1.clave' );
     { abrir la tabla activa }
       try
         Active := true;
       except
         SQL.SaveToFile( 'ERROR_SQL.txt' );
       end;
     { las tablas quedan abiertas }
  end; { del with ZQuery do }
  with QuickRep1 do
       DataSet := ZQuery;
end;
Cuando la conexión (con un ZCOnnection) la realizo sobre un servidor MySql se ejecuta correctamente.

Cuando al ZConnection le asigno la cadena:
Código Delphi [-]
  with ZConnection_DBF do begin
       HostName := '';
       User     := '';
       Password := '';
       Protocol := 'ado';
       Port     := 0;
       Database := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
                   'Data Source=C:\DATOS;' +
                   'Extended Properties=dBASE IV;' +
                   'User ID=Admin;' +
                   'Password=;';
  end;
al ejecutar la Query me dice: OleException with message 'Error de sintaxis en la clausula FROM'

¿Podeis decirme cual es el error o como de hace un JOIN con ADO?
Gracias adelantadas:
Salvica

Edito -> Delphi-7, MySql-5, Zeos 6.6.1-beta
Gracias

Última edición por salvica fecha: 16-11-2007 a las 00:22:17.
Responder Con Cita