hola
yo tuve un problema parecido hace algún tiempo. Para guardar la consulta puedes usar esto:
Código:
procedure creartabladesdesql(directorio:string;query:TQuery);
var
InitTable: TTable;
InitBatch: TBatchMove;
begin
InitTable := TTable.Create(Application);
with InitTable do
begin
DatabaseName := directorio;
TableName := 'tabladesql';
end;
InitBatch := TBatchMove.Create(Application);
with InitBatch do
begin
Destination := InitTable;
Source := Query;
Mode := batCopy;
Execute;
end;
InitTable.Free;
InitBatch.Free;
end;
Funciona bien, pero si la tabla tiene algún indice, ten en cuenta que a la hora de adjuntar la tabla también deberás adjuntar los .loquesea.
Para enviar un mail hay varias soluciones por ahí. Si necesitas ayuda, pídela.
Un slaudo,
jon