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.