Hola
Intento rellenar un informe desde cinco tablas .DBF (DBase IV) mediante un ZQuery de Zeos con la siguiente consulta:
Código Delphi
[-]
with ZQuery do begin
Active := false;
if bHAY_MYSQL then begin
Connection := Form_Impresion.ZConnection_MYSQL;
end else begin
Connection := Form_Impresion.ZConnection_DBF;
end;
SQL.Clear;
SQL.Add( 'SELECT tabla1.maximo, tabla1.cad_maximo,' );
SQL.Add( ' tabla1.minimo, tabla1.cad_minimo,' );
SQL.Add( ' tabla2.ayer,' );
SQL.Add( ' tabla2.hoy,' );
SQL.Add( ' tabla2.valor,' );
SQL.Add( ' tabla2.helado,' );
SQL.Add( ' tabla2.roto,' );
SQL.Add( ' tabla3.xcien,' );
SQL.Add( ' tabla3.duracion,' );
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,' );
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' );
try
Active := true;
except
SQL.SaveToFile( 'ERROR_SQL.txt' );
end;
end;
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