Aquí te pongo un ejemplo que he probado con una rejilla para visualizar los datos y ver que funciona correctamente.
Necesitas:
Un TdataSet
Una Rejilla conectada al anterior.
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, DbTables, Db, Grids, DBGrids;
function consulta(db:String;Misql:String):String;
type
TForm1 = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function consulta(db:String;Misql:String):String;
var
q:TQuery;
begin
q:=Tquery.Create(Nil);
q.close;
q.sql.clear;
q.DataBaseName:=db;
q.sql.add(Misql);
Form1.DataSource1.dataset:=q;
q.open;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
cSql:String;
begin
cSql:='Select * From Employee';
Consulta('DbDemos',cSql);
end;
end.
Un Saludo.