Fórum SQL no multi camadas #392562
16/12/2010
0
Boa noite a todos,estou ingressando ao multi camadas agora, e aprendi muita coisa ja, entretanto gostaria de saber como faço para executar uma sql em um sqldataset no servidor, lembrando que, gostaria q ela fosse dinamica, ou seja, conseguisse altera-la em tempo de execuçãograto pela atençao
Bruno Mendonça
Curtir tópico
+ 0
Responder
Posts
16/12/2010
Felipe Caputo
Bom dia. Usar sql em data snap precisa de certos cuidados. no caso eu prefiro trabalhar com uma function que retorna os dados para um clientdataset da seguinte forma.
Utilizando no client
Function TsrvModUtil.RetornaData(ComandoSQL : String) : Data; var sql : TSqlDataSet; dsp : TDataSetProvider; cds : TClientDataSet; begin try sql : TSqlDataSet.Create(nil); dsp : TDataSetProvider.Create(nil); cds : TClientDataSet.Create(nil); sql.getmetadata := False; sql.sqlConection := SuaConexao; sql.CommandText := ComandoSql; dsp.DataSource := sql; dsp.Name := 'dspRetorno'; cds.ProviderName := 'dspRetorno'; cds.open; result := cds.data; finally freeandnil(cds); freeandnil(sql); freeandnil(dsp); end; end;
Utilizando no client
Procedure TForm1.Button1Click(Sender:TObject);
var
server : TsrvModUtil; //Considerando q esse seja o seu ServerModule que a função foi feita.
cds : TclientDataSet;
begin
try
cds := TClientDataSet.Create(nil);
server := TsrvModUtil.Create(Conexao.DBXConection);
cds.data := server.RetornaData('Select * from usuarios'); // aí é só usar cds.fields[i] e ir pro abraço.
finally
freeandnil(cds);
freeandnil(server);
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)