reber uma query como parametro

Delphi

29/04/2014

como faco para receber uma query como retorno de uma funcao?

exemplo:

function retornaQry(stringSql:string):TDataSet;
var
  qry : tquery;
begin
  qry := tquery.create(nil);
  try
    qry.DatabaseName := ''dbdados'';
    qry.Close;
    qry.SQL.Clear;
    qry.SQL.add(stringSql);
    try
      qry.open;
      result := qry;
    except
    end;
  finally
    freeAndNil(qry);
  end;
end;



chamada: 

qrysql2 := retornaQry(concat(''select caixas.codcaixa from caixas where caixas.caixaaberto = ''''S'''' and caixas.codterminal = '',sComboBox1.text));
Fabio Cardoso

Fabio Cardoso

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

29/04/2014

só para esclarecer: você quer receber o retorno como uma query ou um resultset ?
GOSTEI 0
Felippe Tadeu

Felippe Tadeu

29/04/2014

Troque o tipo de retorno para OleVariant .

No result coloque query.Data;

1ªAlteração:
function retornaQry(stringSql:string):OleVariant;
var
  qry : tquery;
begin
  qry := tquery.create(nil);
  try
    qry.DatabaseName := ''dbdados''; // O que seria esse dbdados ? Se for uma string tire uma aspas simples de cada lado. Caso não for, coloque a variável sem as aspas.
    qry.Close;
    qry.SQL.Clear;
    qry.SQL.add(stringSql);
    try
      qry.open;
      result := qry.Data;
    except
    end;
  finally
    freeAndNil(qry);
  end;
end;


2ª Alteração:
  qrysql2.Data := retornaQry('select caixas.codcaixa from caixas where caixas.caixaaberto = '+QuotedStr('S')+' and caixas.codterminal = '+sComboBox1.Text);
GOSTEI 0
Fabio Cardoso

Fabio Cardoso

29/04/2014

eu queria um resultset
GOSTEI 0
POSTAR