Wenn du einen Thread benutzen willst (was wohl das Beste wäre), dann kannst du z.B. einen Thread-Control in dein Hauptfenster ziehen/anlegen. Dann kannst du sehen, daß das Control einen "Run"-Event anbietet. Dort würdest du dann deinen code reinpacken oder aufrufen, der die SQL-Aktionen vornimmt. Dann würdest du im hauptcode einfach Thread1.Run aufrufen, um dessen Run-Event zu starten, und dann den modalen Dialog öffnen. Am Ende vom Run-Event, wenn die Arbeit erledigt ist, kannst du dann den Dialog schließen, indem du dessen Hide-Funktion aufrufst.
Alternativ geht's auch so: Zeige das Dialogfenster mit ShowModal, und dann packe dort irgendwo den Aufruf rein (z.B. in einen 1mal-Timer), der die SQL-Operation ausführt. Das hat aber den Nachteil, daß dann das Programm währenddessen eingefroren aussieht, weil man z.B. weder auf einen evtl vorhandenen Cancel-button klicken kann, noch irgendwelche Animationen (progressbar) funktionieren. So, denke darüber mal nach und dann versuche den ersten Ansatz.
