Erro estranho com ADOQuery ou ADODataSet

Delphi

24/03/2011

Quando vou ativar a adoquery ou o adodataset, vem o seguinte erro:   Falha ao converter o varchar valor 'Test' para o tipo de dados int. A query que se carrega é a abaixo: select i.operador,i.tipo_edicao,i.num_edicao,i.num_pagina,i.data,l.nome, replace((100-l.per_indef),'.',',')as per_indef from log_index_logs l inner join log_index_img i on l.nome = i.nome_final where substring(nome,1,4) between 1876 and 1940 and 100-l.per_indef >= 82 or substring(nome,1,4) between 1941 and 1950 and 100-l.per_indef >= 85 or substring(nome,1,4) between 1951 and 1960 and 100-l.per_indef >= 87 or substring(nome,1,4) between 1961 and 1970 and 100-l.per_indef >= 88 or substring(nome,1,4) between 1971 and 1980 and 100-l.per_indef >= 89 or substring(nome,1,4) between 1981 and 1990 and 100-l.per_indef >= 90 or substring(nome,1,4) between 1991 and 2001 and 100-l.per_indef >= 92 order by l.nome,i.data,i.operador
Pjava

Pjava

Curtidas 0

Respostas

Pjava

Pjava

24/03/2011

Descobrir que o problema esta no Where com aquelas substring todas. Como faço uma conversão, caso seja isso?
GOSTEI 0
Pjava

Pjava

24/03/2011

Resolvi. Tive que colocar aspas. dentro do sql manager ele já faz um cast, pelo que eu entendi, uma conversão implicita e que nos componentes do ADO do Delphi não, por isso tratar caso a caso. Valeu e já está resolvido.
GOSTEI 0
POSTAR