Ver Mensaje Individual
  #6  
Antiguo 22-10-2020
serhasae serhasae is offline
Miembro
 
Registrado: jun 2004
Ubicación: España
Posts: 117
Reputación: 20
serhasae Va por buen camino
Código Delphi [-]
CAsmm.Active:=False;
CAsmm.SQL.Clear;

CAsmm.SQL.Text:='INSERT INTO ASM_MASIVO '+
           'SELECT DISTINCT C.*,C.TNETO AS T_NETO,C.PESO_FAC AS T_PESO_FAC,'+
           'T.PRECIO AS TARIFA FROM COUTIN AS C, TASM AS T '+
           'WHERE T.AGENCIA=:AG AND T.DESTINO=:AS AND '+
           '(C.PESO_FAC>=T.PMIN AND C.PESO_FAC<=T.PMAX) AND '+
           '(C.ESCALADO>=T.EMIN AND C.ESCALADO<=T.EMAX);';


CAsmm.Parameters.ParamByName('AG').Value:='ASMMAS';
CAsmm.Parameters.ParamByName('AS').Value:='NAP';

CAsmm.Prepared:=True;



   if (CAsmm.ExecSQL=0) then
       Begin
  MessageDlg ('Error al Intentar Crear Asm Masivo', mtError,
                  [mbOK], 0);
       sw:=false;
       end;

Se que la consulta esta bien, la tiro directamente desde access y me la devuelve correctamente. Se que el problema es el ExecSql, tambien he probado a cerrar las tablas antes de llamar a esta consulta, me tiene loco proque a veces lo hace correctamente y a veces no, no entiendo el porque.

Tambien he probado a crear la consulta en access que funciona y borrar la tabla y crearla con:

CAsmm.Close;
CAsmm.SQL.Clear;
CAsmm.SQL.Text:='DROP TABLE ASM_MASIVO';
CAsmm.ExecSQL;

CAsmm.Close;
CAsmm.SQL.Clear;
CAsmm.SQL.Text:='SELECT * INTO ASM_MASIVO FROM (SELECT * FROM CASM_MASIVO);';
CAsmm.ExecSQL;


No lo hace tampoco.

Gracias a todos.

Última edición por serhasae fecha: 22-10-2020 a las 23:31:19.
Responder Con Cita