Duvida para montar um grid usando consulta SQL
Tenho um form de cadastro de cliente, e nesse form tenho um pagecontrol com um dbgrid onde consta toda a movimentação do cliente, pelo nome do cliente eu monto a query e mostro no grid:
qMensagensPedidas.ParamByName(´Nome´).AsString := dbNome.Text;
Eu consulto na tabela Pedidos e se houver algum pedido com o nome do atual cliente pesquisado no form de cadastro, ele é mostrado no grid.
Até aí tudo blz, só que eu preciso fazer essa pesquisa pelo CODIGO do cliente e não mais pelo nome, o código do cliente é um campo do tipo Integer, e está dando erro na hora de montar a query.
Alguém sabe pq? não é permitido usar parametros com campo do tipo Integer?
qMensagensPedidas.ParamByName(´Codigo´).AsInteger := dbCodigo.Text;
Dá erro nesse comando, ´Type mismatch in expression´.
qMensagensPedidas.ParamByName(´Nome´).AsString := dbNome.Text;
Eu consulto na tabela Pedidos e se houver algum pedido com o nome do atual cliente pesquisado no form de cadastro, ele é mostrado no grid.
Até aí tudo blz, só que eu preciso fazer essa pesquisa pelo CODIGO do cliente e não mais pelo nome, o código do cliente é um campo do tipo Integer, e está dando erro na hora de montar a query.
Alguém sabe pq? não é permitido usar parametros com campo do tipo Integer?
qMensagensPedidas.ParamByName(´Codigo´).AsInteger := dbCodigo.Text;
Dá erro nesse comando, ´Type mismatch in expression´.
Marco
Curtidas 0
Respostas
Paulo_amorim
14/07/2004
qMensagensPedidas.ParamByName(´Codigo´).[b:81d9571ba3]AsInteger[/b:81d9571ba3] := dbCodigo.[b:81d9571ba3]Text[/b:81d9571ba3];
´Type mismatch in expression´.
Olá
O texto em negrito já diz tudo...
Vc tá passando um texto pruma String...
apesar do seu texto ser um numero, ele não sabe disso...vc tem que especificar
ou vc faz
.AsString := dbCodigo.Text
ou então
.AsInteger := StrToInt(dbCodigo.Text);
Espero que ajude
Até+
GOSTEI 0
Marco
14/07/2004
Não consigo nem montar a sql no form, qdo clico na TQuery e vou em SQL TStrings coloco assim:
select i.NumeroPedido, i.NumeroItem, i.NomeDestinatario, i.Ddd, i.Telefone, i.DataParaEnviar, i.TemaMensagem, i.ValorMensagem, i.MensagemJaEnviada, i.MensagemJaPaga, p.CodigoCliente, p.NomeCliente, p.Numero, i.CaminhoMensagem
from Itens i inner join Pedidos p on ( p.Numero = I.NumeroPedido )
where p.CodigoCliente like:codigo
order by DataParaEnviar desc
Depois qdo vou adicionar os campos na query já dá a mensagem ´Type mismatch in expression´.
select i.NumeroPedido, i.NumeroItem, i.NomeDestinatario, i.Ddd, i.Telefone, i.DataParaEnviar, i.TemaMensagem, i.ValorMensagem, i.MensagemJaEnviada, i.MensagemJaPaga, p.CodigoCliente, p.NomeCliente, p.Numero, i.CaminhoMensagem
from Itens i inner join Pedidos p on ( p.Numero = I.NumeroPedido )
where p.CodigoCliente like:codigo
order by DataParaEnviar desc
Depois qdo vou adicionar os campos na query já dá a mensagem ´Type mismatch in expression´.
GOSTEI 0
Tnaires
14/07/2004
Ih cara, o problema é esse seu LIKE aí...
O LIKE só funciona para campos que contem caracteres. Substitua o LIKE por =, e dá certo.
E não se esqueça do q o Paulo Amorim falou: vc tem q converter o texto do Edit para o tipo apropriado!
Abraços
O LIKE só funciona para campos que contem caracteres. Substitua o LIKE por =, e dá certo.
E não se esqueça do q o Paulo Amorim falou: vc tem q converter o texto do Edit para o tipo apropriado!
Abraços
GOSTEI 0