Função servidor DATASNAP
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 é?
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
Curtidas 0
Respostas
Marco Salles
21/12/2012
como vc esta fazenso
com query dinamicas ????
com query dinamicas ????
GOSTEI 0
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.
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
21/12/2012
Qual a versão do Delphi?
GOSTEI 0
Lorival Filho
21/12/2012
Delphi XE3
GOSTEI 0
Lorival Filho
21/12/2012
alguém sabe disso? Ainda estou com esse problema.
GOSTEI 0
José
21/12/2012
Amigo guerreiro você conseguiu resolver seu problema ?
GOSTEI 0
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