Die Frage ist ob die Funktion innerhalb des aufrufenden Programmes ist, hier kannst Du einfach die Dataset's oder Tabellen als Parameter mit übergeben, wenn sich im Programm nichts ändern darf gegf. als Clone.
Wenn es um einen Fremdprozess geht könntest Du die
SQL's übergeben oder das ganze von einer generischen Routine in
XML's umwandeln und das Result als Stream übergeben, oder, oder...