Fórum Erro de Conversão String #525239
08/07/2015
0
com esse comando no Onexit do estado
QCidade.Close;
QCidade.Active := False;
QCidade.SQL.Clear;
QCidade.SQL.Add('select * from "cidade" where "cidade"."cod_estado" = :estado');
QCidade.Params.ParamByName('estado').Value := DBLEstado.KeyField;
QCidade.Active := True;
QCidade.Open;
só que ao clicar na cidade mostra esse erro
conversion error from string "cod_estado"
alguém me ajuda?
Igor Castro
Curtir tópico
+ 0Post mais votado
15/07/2015
era só isso mesmo @Dorivan Sousa
Igor Castro
Gostei + 1
Mais Posts
09/07/2015
Gabriel Baltazar
Gostei + 0
09/07/2015
Igor Castro
select * from "cidade"
se eu tirar não funciona =/.
eu mudei o comando para
QCidade.Close;
QCidade.Active := False;
QCidade.SQL.Clear;
QCidade.SQL.Add('select * from "cidade" where "cidade"."cod_estado" = :estado');
QCidade.Params.ParamByName('estado').Value := DBLEstado.KeyValue;
QCidade.Active := True;
QCidade.Open;
aparentemente deu certo só não está filtrando eu conecto a Query no Lookupcombobox
e aparece stackoverflow
Gostei + 0
09/07/2015
Ariel Morgan
Mas vamos lá, qualquer coisa retorna:
QCidade.Close;
QCidade.Active := False;
QCidade.SQL.Clear;
QCidade.SQL.Add('select * from CIDADE where COD_ESTADO = :estado');
QCidade.Params.ParamByName('estado').Value := DBLEstado.KeyField;
QCidade.Active := True;
QCidade.Open;
Gostei + 0
09/07/2015
Igor Castro
pela chave estrangeira cod_estado isso tudo através de uma Query
Gostei + 0
09/07/2015
Ariel Morgan
pela chave estrangeira cod_estado isso tudo através de uma Query
Você quer selecionar a CIDADE pelo CÓDIGO do ESTADO selecionado no DBLookupComboBox, tudo bem...
QCidade.Close;
QCidade.Active := False;
QCidade.SQL.Clear;
QCidade.SQL.Add('select * from CIDADE where COD_ESTADO =' + DBLEstado.KeyField);
QCidade.Active := True;
QCidade.Open;
tenta isso qualquer coisa faz primeiro o parâmetro receber o valor e depois ir pro SQL
Gostei + 0
09/07/2015
Gabriel Baltazar
QCidade.SQL.Add('select * from "cidade" where "cidade"."cod_estado" = :estado');
QCidade.Params.ParamByName('estado').AsString := 'RJ';
Gostei + 0
09/07/2015
Igor Castro
Quando vocês vão fazer uma tela de cadastro de cliente por exemplo e querem que ao selecionar o estado no DBLookupcombobox ele filtre as cidades
como vocês fazem?
Gostei + 0
10/07/2015
Gabriel Baltazar
Pois se mesmo assim ainda está dando erro, o problema não está no lookup.
Gostei + 0
10/07/2015
Dorivan Sousa
qual o tipo do cod_estado? integer ou varchar?
qual o banco de dados?
-
as aspas nos nomes do campos (pelo menos no firebird q eu uso) é pra diferenciar maisculas e minusculas, colocar espaço no nome dos campos, usar palavras reservadas nos nomes das tabelas, campos e etc....
-
QCidade.Active := True; QCidade.Open;
ai usa um ou outro pq se vc olhar o codigo do open nada mais é que active:=true;
Gostei + 0
14/07/2015
Igor Castro
Banco de dados Firebird
Gostei + 0
14/07/2015
Igor Castro
QCidade.Close;
QCidade.Active := False;
QCidade.SQL.Clear;
QCidade.SQL.Add('select * from CIDADE where COD_ESTADO =' + DBLEstado.KeyField);
QCidade.Active := True;
deu column unknown COD_ESTADO
é algo pra relacionar nos componentes não é?
Gostei + 0
14/07/2015
Igor Castro
QCidade.Params.ParamByName('estado').Value := '6';
Tentei esse e ele mostrou só as cidades do estado 6 claro =)
Gostei + 0
14/07/2015
Igor Castro
Gostei + 0
15/07/2015
Dorivan Sousa
se o projeto nao ta em producao (ou seja nao esta´em algum cliente) remova as tabelas e crie novamente mas nao crie assim:
create tabela "cidades" (
"cod_cidade" integer,
"nom_cidade" varchar(40)
)
faça sem as aspas
create tabela cidades (
cod_cidade integer,
nom_cidade varchar(40)
)
e do jeito que vc fez pegando o keyfield nao tem como funcionar pq o keyfield é o nome do campo e nao o valor dele...
use o KeyValue
assim:
QCidade.SQL.Add('select * from "cidade" where "cidade"."cod_estado" = :estado');
QCidade.Params.ParamByName('estado').Value := DBLEstado.KeyValue;
ou
QCidade.SQL.Add('select * from CIDADE where COD_ESTADO =' + DBLEstado.KeyValue);
Gostei + 0
15/07/2015
Igor Castro
eu peguei esse banco de cidades e estados da internet e importei pro meu e veio com o nome das tabelas assim
mais vou refazer pra tirar essas aspas
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)