Função servidor DATASNAP

Delphi

21/12/2012

Pessoal, boa tarde!

Cansei de pesquisar e não achei nada.

Vamos lá...

Montei uma função no meu servidor DATASNAP:
function TsmEmpresa.UpdateEmpresa( nIdEmpresa : Integer; aFields, aValues : OleVariant ) : String;

a Ideia é passar a chave primária (nIdEmpresa) e o restante dos campos e valores para realizar o Update.

O primeiro problema que depois de pesquisa descobri que não pode usar Variant e sim apenas OleVariant. Até ai ok

Porem no meu cliente quando preencho o aValues, tem dentro tipo de campo String e Integer, mas quando coloco campo Integer dá Access Violation, quando utilizo apenas String funciona.

Sabem me dizer o que é?
Lorival Filho

Lorival Filho

Curtidas 0

Respostas

Marco Salles

Marco Salles

21/12/2012

como vc esta fazenso

com query dinamicas ????
GOSTEI 0
Lorival Filho

Lorival Filho

21/12/2012

Na aplicação cliente eu realizo:

TsmUpdate.ParamByName('nIdEmpresa').AsInteger := cdsCad.FieldByName('IDEMPRESA').AsInteger;
TsmUpdate.ParamByName('aFields').Value := GeraFields(1);
TsmUpdate.ParamByName('aValues').Value := GeraFields(2);
TsmUpdate.ExecuteMethod;

O TsmUpdate é um componente TSqlServerMethod.

Na aplicação servidor eu tenho:
function TsmEmpresa.UpdateEmpresa( nIdEmpresa : Integer; aFields, aValues : OleVariant ) : String;

porém para isolar o problema , ela apenas retorna uma string com 'TESTE'.

O problema ocorre quando chamo:
TsmUpdate.ExecuteMethod

e tem itens em "aValues" com tipo integer, se tenho apenas String funciona.

Não chego a executar nenhuma SQL.
GOSTEI 0
Daniel Santos

Daniel Santos

21/12/2012

Qual a versão do Delphi?
GOSTEI 0
Lorival Filho

Lorival Filho

21/12/2012

Delphi XE3
GOSTEI 0
Lorival Filho

Lorival Filho

21/12/2012

alguém sabe disso? Ainda estou com esse problema.
GOSTEI 0
José

José

21/12/2012

Amigo guerreiro você conseguiu resolver seu problema ?
GOSTEI 0
Lorival Filho

Lorival Filho

21/12/2012

não foi resolvido! se utilizo apenas string dentro da OleVariant funciona, se utilizo Integer por exemplo ocorre o problema.
GOSTEI 0
POSTAR