ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

sql x delphi....

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Danielourenco
Novato
Novato


Registrado: Quinta-Feira, 22 de Fevereiro de 2007
Mensagens: 6

MensagemEnviada: Qui Fev 22, 2007 9:39 pm    Assunto: sql x delphi.... Responder com Citação

Moderadores Active-Delphi escreveu:

Tópico editado por Sufolk.
Motivo: Regras do Fórum.
Titulo Original: sql x delphi....socorrooo



Olá pessoal, sou iniciante em Delphi e gostaria
de saber se é possível fazer um select específico com a clausula "count" utilizando parâmetros, conforme abaixo:

cds_visitas.Close;
sds_visitas.Close;
cds_visitas.CommandText:='select count(num_visita) from visitas where cod_cliente like:Pcodvisita';
cds_visitas.Params[0].AsInteger:=StrToInt(DBEdit13.Text);
cds_visitas.Open;

Quando eu faço isso pelo ibexpress (firebird) funciona direito, já pelo Delphi dá o erro abaixo:

" ... não é um valor inteiro válido..."

Agora, se eu mudo o select conforme abaixo funciona, mas ele não faz o que eu preciso que é fazer um count no campo num_visita da minha tabela:
cds_visitas.Close;
sds_visitas.Close;
cds_visitas.CommandText:='select * from visitas where cod_cliente like:Pcodvisita';
cds_visitas.Params[0].AsInteger:=StrToInt(DBEdit13.Text);
cds_visitas.Open;

Será que existe uma solução para utilizar as opções do select especificamente a um campo usando count, Max, min, etc ?
Pelo que percebi, no firebird só consigo fazer selects trazendo todos os registro na memória “ select * from...”?

Se eu fizer isso também dá errado: 'select num_visita from visitas where cod_cliente like:Pcodvisita';

Agradeço se puder me ajudar...

Att. Daniel Lourenço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Fev 22, 2007 10:50 pm    Assunto: Responder com Citação

Olah, bom eu nao sei pq nao uso clientdataset, mais com o ibquery da pra fazer o que vc deseja sim

fiz um exemplo usando um select meu aki, adapte ao teu programa se desejar usar
veja
Primeiro estou usando um campo com a funçao count de um campo e mais outro campo junto para aparecer num dbgrid ai preciso usar o GROUP BY, o order by fiz para ordernar por ordem
Código:
procedure TFAgenda.Button3Click(Sender: TObject);
begin
    dm.qagenda.close;
    dm.qagenda.sql.clear;
    dm.qagenda.sql.text := 'select count(tipo), horaini from agendamento where tipo = :params group by horaini order by 1';
    dm.qagenda.ParamByName('params').AsInteger := strtoint(edit1.text);

    dm.qagenda.Open;
end;


Bom percebi que vc esta usando o LIKE acho que desnecessariamente pois me pareçe ser um campo tipo codigo, e tambem no teu select vc esta querendo somente contar quantos itens tem cfe. o codigo. Ai vc pode fazer somente assim:
Código:
procedure TFAgenda.Button3Click(Sender: TObject);
begin
    dm.qagenda.close;
    dm.qagenda.sql.clear;
    dm.qagenda.sql.text := 'select count(tipo) from agendamento where tipo = :params';
    dm.qagenda.ParamByName('params').AsInteger := strtoint(edit1.text);

    dm.qagenda.Open;
end;


Outra coisa amigo, acho melhor usar um edit, maskedit no lugar de algum componente da paleta DataControls.

Veja ai, qualquer coisa eh soh postar.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB