Fórum Problema com o campo #272363
15/03/2005
0
Pessoal
Estou com problema com o campo. Fiz um select com o ClientDataset e quando é executado o comando OPEN, aparece a seguinte mensagem:
TYPE MISMATCH FOR FIELD DAT_APROV_OR, expecting FMTBCFIELD ACTUAL: DATE
A linha de Código é o seguinte
with cdsConOr do
begin
if sTo = 3 then
begin
s := ´ Select o.NUM_OR, o.COD_CLI_OR, o.STATUS_OR, o.DAT_CAD_OR, ´ +
´ o.DAT_APROV_OR, o.COD_FUN_OR, cf.NOM_CLI_FOR, f.NOM_FUN ´ +
´ from ORCAMENTO o, CLIENTE_FORNECEDOR cf, FUNCIONARIO f ´ ;
sCond := ´´;
end
else sCond := ´where o.STATUS_OR = ´ + inttostr(sTo);
Close;
CommandText := ´´;
CommandText := s + sCond;
Open;
end;
O campo foi definido como date mas aparece esta mensagem
Estou usando o Delphi 7 e interbase 6.0
Estou com problema com o campo. Fiz um select com o ClientDataset e quando é executado o comando OPEN, aparece a seguinte mensagem:
TYPE MISMATCH FOR FIELD DAT_APROV_OR, expecting FMTBCFIELD ACTUAL: DATE
A linha de Código é o seguinte
with cdsConOr do
begin
if sTo = 3 then
begin
s := ´ Select o.NUM_OR, o.COD_CLI_OR, o.STATUS_OR, o.DAT_CAD_OR, ´ +
´ o.DAT_APROV_OR, o.COD_FUN_OR, cf.NOM_CLI_FOR, f.NOM_FUN ´ +
´ from ORCAMENTO o, CLIENTE_FORNECEDOR cf, FUNCIONARIO f ´ ;
sCond := ´´;
end
else sCond := ´where o.STATUS_OR = ´ + inttostr(sTo);
Close;
CommandText := ´´;
CommandText := s + sCond;
Open;
end;
O campo foi definido como date mas aparece esta mensagem
Estou usando o Delphi 7 e interbase 6.0
Rogeranalista
Curtir tópico
+ 0
Responder
Posts
15/03/2005
Isaque
Neste caso, primeiramente, se vc está trabalhando com mais de uma tabela no Select, é melhor que vc coloque um INNER JOIN ou LEFT JOIN a fim de criar uma equipalência entre as tabelas. Visto que no código mostrado não existe esta relação, e nisso pode residir o erro.
Exemplo:
Select
o.NUM_OR,
o.COD_CLI_OR,
o.STATUS_OR,
o.DAT_CAD_OR,
o.DAT_APROV_OR,
o.COD_FUN_OR,
cf.NOM_CLI_FOR,
f.NOM_FUN
from ORCAMENTO o
INNER JOIN CLIENTE_FORNECEDOR cf ON (o.COD_CLI_OR = cf.COD_CLI_OR)
INNER JOIN FUNCIONARIO f ON (o.COD_FUN_OR = f.COD_FUN_OR)
where o.STATUS_OR = ?
Acredito que reestruturando o seu script SQL resolveria o problema.
Exemplo:
Select
o.NUM_OR,
o.COD_CLI_OR,
o.STATUS_OR,
o.DAT_CAD_OR,
o.DAT_APROV_OR,
o.COD_FUN_OR,
cf.NOM_CLI_FOR,
f.NOM_FUN
from ORCAMENTO o
INNER JOIN CLIENTE_FORNECEDOR cf ON (o.COD_CLI_OR = cf.COD_CLI_OR)
INNER JOIN FUNCIONARIO f ON (o.COD_FUN_OR = f.COD_FUN_OR)
where o.STATUS_OR = ?
Acredito que reestruturando o seu script SQL resolveria o problema.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)