DataSnap - erro Field XXX is of an unsupported type

06/02/2013

5

SQL Server 2008
Delphi XE3

Função no server:
function TsmFunc.ChecaIDTabela ( nIdEmpresa : integer; sTabela : String; oCampos, oValores, oRetorno : OleVariant ) : OleVariant;

Quando chamo no cliente ele dá o seguinte erro:
Field XXX is of an unsupported type

Porém eu coloquei log na função e ela executa corretamente, analisando o Profiler do SQL inclusive monta e executa a SQL normalmente, mas ocorre o erro acima.

Alguma idéia?
Responder

Posts

06/02/2013

Douglas

Lorival,

troque o retorno desta função

e os campos do tipo OleVariant também para um tipo String.

Depois poste para saber se deu certo.
Responder

06/02/2013

Lorival Filho

Douglas,

Fiz esse teste e funcionou! Porém não vai resolver meu problema, eu precisaria trabalhar com ARRAY para passar vários campos ( a ser utilizado no WHERE ) e vários campos para retorno ( a ser utilizado no SELECT ).

O estranho de tudo que tenho outra função que utiliza OleVariant e funciona perfeitamente.

Alguma sugestão???
Responder

07/02/2013

Lorival Filho

Resolvido!!!

Mudei para o código o nome do ServerMethodName:

TsmFunc_ChecaIDTabela.ServerMethodName :=
TsmFunc.ChecaIDTabela
;

e deixei em branco no FORM.

mudando apenas isso não ocorreu mais o erro.

BUG do Delphi?
Responder

08/02/2013

Douglas

Acredito que sim meu caro,

mas ponha o nome por questão de prevenção.

Se o erro retornar novamente vamos pensar em outra forma

de corrigir.


Espero ter ajudado.


Responder

08/02/2013

Douglas

Acredito que sim meu caro,

mas ponha o nome por questão de prevenção.

Se o erro retornar novamente vamos pensar em outra forma

de corrigir.


Espero ter ajudado.


Obs: Houve um erro de interpretação minha. Você alterou diretamente no código passando

o nome do método para objeto, não há nenhum tipo de problema deixando em branco no Form.

Responder

18/02/2013

Lorival Filho

pelo jeito não mesmo...mas o importante é que funcionou!!!
Responder

20/02/2013

Douglas

Que bom,

no que puder ajudar estou

por aqui !
Responder