Passar parâmetros para o Servidor de Aplicação
07/07/2008
0
Paulo
Posts
07/07/2008
Paulo
07/07/2008
Comodelphi
07/07/2008
Luiz Henrique
So confirmando, vc usa Cliente->BSS->Servidor Aplicacao , OK.
Nao sei se entendi direito, voce nao esta conseguindo concluir esta funcao que indicou ai ?
PEGA_VENDEDOR e uma especie de constante/ID para a funcao ?, para este exemplo ai, parece ser apenas um retorno do nome do vendedor.
Note que vc esta executando esta funcao do RDM Principal.
Declare um metodo no RDM Principal pela TypeLibrary.
Nome: ExecFuncao
Retorno: WideString
Parametro: id_vendedor: WideString(pelo que vc declarou)
//* TClassePrincipal seria o teu RDM Principal
function TClassePrincipal.ExecFuncao(const id_vendedor: WideString): WideString;
begin
//...aqui poderia fazer este codigo de varias formas, CDS, Qry...e etc
//...exemplifico com um classico que nao deve ser usado no cliente e sim
//...aqui no Servidor. Local de SQL é no Servidor.
cdsVendedor.Close;
cdsVendedor.CommandText:= ´SELECT NOME FROM VENDEDOR WHERE ID= ´+id_vendedor;
cdsVendedor.Open;
if cdsVendedor.RecordCount > 0 then
result:= cdsVEndedor.FieldByName(´NOME´).AsString
else
result:= ´´
//2 Exemplo
...um cds
end;
Existem varias formas de voce passar estes parametros e ate criar Queries dinamicas no Servidor.
Neste teu exemplo ai, o mais indicado seria voce fazer pelo modo mais apropriado, que seria atraves de CDS no cliente(devidamente configurado, RemoteServer/ProviderName para o RDM-Servidor), seta Parametro(naturamente o ID-Vendedor) e CDS.Open...
Para queries em geral e nao ter que ficar alterando na Type Library, a inclusao por exemplo de + um parametro, vc pode usar um array of OleVariant como parametro [vdatai, vdataf, CodCliente]...tem que encapsular este array em um OleVariant para passar ao servidor, no servidor vc acessa Parametro[0], parametro[1] e etc....
Desculpe se nao era isto, questione ai novamente para trocarmos este conhecimento ai.
Espero que ajude al alguma coisa
T+
Abraco , t+
08/07/2008
Paulo
08/07/2008
Luiz Henrique
Para ficar mais claro, Paulo, voce teria é que postar algo mais concreto...
Por exemplo, a instrucao SQL que deseja executar no servidor, que voce nao consegue passar ou configurar parametro para ela...
...e tambem se possivel a forma que deseja executar no lado Cliente...
Ai poderemos analisar melhor...
Ah...nao esqueca de dizer qual o componente de acesso que esta utilizando tambem...lado cliente (executar ou receber) e lado servidor...
T+
10/07/2008
Paulo
Uso: DBExpress, Socket, Oracle 8i, BDS 2007, usando 3 camadas. O servidor é remoto. É mais ou menos assim:
Select CodigoCor, Produto from
Cor where CodProduto =:Prod.
Esse parãmetro Prod vem do Cliente(ComoboBox1.Text). É isso que eu quero e não estou conseguindo fazer. Tudo é para não passar CommandText remotamente. Dessa forma funciona. Eu quero mesmo é fazer funcionar a query no servidor e os parâmetros via Cliente.
10/07/2008
Paulo
Clique aqui para fazer login e interagir na Comunidade :)