DBX Error: UnsupportedFieldType no SQLSERVER com DBEXPRESS
Estou usando o DBExpress com SQLServer 2000 no Delphi 2006, e após passar os parâmetros para o SQLDATASET, quando vou abrir o ClientDataSET aparece a seguinte mensagem:
Debugger Exception Notification
---------------------------
Project GeraDBFAltoCusto.exe raised exception class TDBXError with message ´DBX Error: UnsupportedFieldType´.
---------------------------
Alguém já passou por isso ?
Debugger Exception Notification
---------------------------
Project GeraDBFAltoCusto.exe raised exception class TDBXError with message ´DBX Error: UnsupportedFieldType´.
---------------------------
Alguém já passou por isso ?
Miranilton
Curtidas 0
Respostas
.lg.
22/05/2009
o tipo do campo que você colocou é incompatível ou errado em relação ao campo da sua tabela.
Dá uma olhada aí no tipo do campo da sua tabela... E o tipo que você colocou o seu field. São inconsistentes.
Dá uma olhada aí no tipo do campo da sua tabela... E o tipo que você colocou o seu field. São inconsistentes.
GOSTEI 0
Miranilton
22/05/2009
Os valores no SQL são padrão: Int, DateTime e VarChar.
A sentença SQL funciona perfeitamente no Delphi 5 com BDE, mas quando coloquei no Delphi 2009 com SQLServer danou-se, pensei que fossem os Cases ou algo assim.
olhe a query :
select l.nrseqlau,u.nmideusu,m.cdidemun, m.nmidemun, us.cdideuns, us.nmfanuns, e.cdideatp, e.dsideatp,
Tipo_proc = Case l.tppcmsau when 1 then ´Ambulatorial´ else ´Hopitalar´ end,
ps.cdpcmsau, ps.dspcmsau,
Sit_Paciente = Case TppPaciente when 1 then ´Eletivo´ when 2 then ´Urgência´ when 3 then ´Internado´ end,
j.nrjntava, j.dsjntava, ma.nrcattrs, l.apideusu, l.cod_cid,
Situacao = case l.tpsitlau when 3 then ´não autorizado´ when 4 then ´autorizado´ when 8 then ´inconclusivo´ end,
Tipo_Aut = case TpMotAutor when 1 then ´Eletivo´ when 2 then ´Urgencia´ when 3 then ´Mudanca de Procedimento´
when 4 then ´Nova AIH´ when 5 then ´Exame de Paciente Internado´ else null end,
pa.cdpcmsau, pa.dspcmsau, mot.nrmtvneg, mot.dsmtvneg, a.dtatclau, rev.dtatdlda, l.nrseqapac
from zsch01..zsch0100 l inner join zsci01..zsci0020 u on u.cdideuns=l.cdid4uns and u.nrideusu=l.nrideusu
inner join zsci01..zsci0070 m on u.cdidemun=m.cdidemun
left outer join zsci01..zsci0010 us on l.cdid1uns= us.cdideuns
left outer join zsca01..zsca0010 e on l.cdideatp=e.cdideatp
inner join zsch01..zsch0140 ps on l.tppcmsau=ps.tppcmsau and l.tporipcm=ps.tporipcm and l.cdpcmsau=ps.cdpcmsau
inner join zsch01..zsch0140 pa on l.tppc1sau=pa.tppcmsau and l.tpor1pcm=pa.tporipcm and l.cdpc1sau=pa.cdpcmsau
inner join zsch01..zsch2070 a on l.cdideuns=a.cdideuns and l.tpidelau=a.tpidelau and l.nrseqlau=a.nrseqlau
inner join zsch01..zsch0090 j on a.nrjntava=j.nrjntava
inner join zsci01..zsci0200 ma on a.nrcpftrs=ma.nrcpftrs
left outer join zsch01..zsch0240 mot on a.nrmtvneg=mot.nrmtvneg
left outer join zsch01..zsch2082 rev on l.cdideuns=rev.cdideuns and l.tpidelau=rev.tpidelau and l.nrseqlau=rev.nrseqlau
where l.DTEMSLAU between :inicio and :fim and
a.dtatclau = (select max(dtatclau) from zsch01..zsch2070 where cdideuns=a.cdideuns and
tpidelau=a.tpidelau and nrseqlau=a.nrseqlau)
A sentença SQL funciona perfeitamente no Delphi 5 com BDE, mas quando coloquei no Delphi 2009 com SQLServer danou-se, pensei que fossem os Cases ou algo assim.
olhe a query :
select l.nrseqlau,u.nmideusu,m.cdidemun, m.nmidemun, us.cdideuns, us.nmfanuns, e.cdideatp, e.dsideatp,
Tipo_proc = Case l.tppcmsau when 1 then ´Ambulatorial´ else ´Hopitalar´ end,
ps.cdpcmsau, ps.dspcmsau,
Sit_Paciente = Case TppPaciente when 1 then ´Eletivo´ when 2 then ´Urgência´ when 3 then ´Internado´ end,
j.nrjntava, j.dsjntava, ma.nrcattrs, l.apideusu, l.cod_cid,
Situacao = case l.tpsitlau when 3 then ´não autorizado´ when 4 then ´autorizado´ when 8 then ´inconclusivo´ end,
Tipo_Aut = case TpMotAutor when 1 then ´Eletivo´ when 2 then ´Urgencia´ when 3 then ´Mudanca de Procedimento´
when 4 then ´Nova AIH´ when 5 then ´Exame de Paciente Internado´ else null end,
pa.cdpcmsau, pa.dspcmsau, mot.nrmtvneg, mot.dsmtvneg, a.dtatclau, rev.dtatdlda, l.nrseqapac
from zsch01..zsch0100 l inner join zsci01..zsci0020 u on u.cdideuns=l.cdid4uns and u.nrideusu=l.nrideusu
inner join zsci01..zsci0070 m on u.cdidemun=m.cdidemun
left outer join zsci01..zsci0010 us on l.cdid1uns= us.cdideuns
left outer join zsca01..zsca0010 e on l.cdideatp=e.cdideatp
inner join zsch01..zsch0140 ps on l.tppcmsau=ps.tppcmsau and l.tporipcm=ps.tporipcm and l.cdpcmsau=ps.cdpcmsau
inner join zsch01..zsch0140 pa on l.tppc1sau=pa.tppcmsau and l.tpor1pcm=pa.tporipcm and l.cdpc1sau=pa.cdpcmsau
inner join zsch01..zsch2070 a on l.cdideuns=a.cdideuns and l.tpidelau=a.tpidelau and l.nrseqlau=a.nrseqlau
inner join zsch01..zsch0090 j on a.nrjntava=j.nrjntava
inner join zsci01..zsci0200 ma on a.nrcpftrs=ma.nrcpftrs
left outer join zsch01..zsch0240 mot on a.nrmtvneg=mot.nrmtvneg
left outer join zsch01..zsch2082 rev on l.cdideuns=rev.cdideuns and l.tpidelau=rev.tpidelau and l.nrseqlau=rev.nrseqlau
where l.DTEMSLAU between :inicio and :fim and
a.dtatclau = (select max(dtatclau) from zsch01..zsch2070 where cdideuns=a.cdideuns and
tpidelau=a.tpidelau and nrseqlau=a.nrseqlau)
GOSTEI 0
Miranilton
22/05/2009
Apaguei os Fields pela enésima vez, crie-os novamente e funcionou..... Brincadeira... Valeu pela ajuda.
GOSTEI 0