Ir para conteúdo
Fórum Script Brasil

RSalvador

Membros
  • Total de itens

    74
  • Registro em

  • Última visita

Tudo que RSalvador postou

  1. Olá de novo. Resolvi o problema da seguinte forma: SELECT represen.rassoc AS VENDEDOR, SUM(item_ped.valtot) AS TOTAL, COUNT(*) AS QtdItens, COUNT(CASE WHEN pedcart.status='A' THEN 1 END) AS Abertos, COUNT(CASE WHEN pedcart.status='F' THEN 1 END) AS Fechados, COUNT(CASE WHEN pedcart.status='C' THEN 1 END) AS Cancelados FROM item_ped INNER JOIN pedcart ON item_ped.num_ped=pedcart.num_ped INNER JOIN represen ON pedcart.cod_rep=represen.cod_rep GROUP BY Vendedor Fica como dica para consultas futuras. Abraços!
  2. Olá a todos Estou com dificuldades em montar uma query que sirva como resumo. Quero mostrar, em uma tabela, os pedidos abertos, fechados e cancelados de cada vendedor. Eu imaginei que o código abaixo funcionaria: SELECT represen.rassoc AS VENDEDOR, SUM(item_ped.valtot) AS TOTAL, COUNT(*) AS QtdItens, COUNT(pedcart.status='A') AS Abertos, COUNT(pedcart.status='F') AS Fechados, COUNT(pedcart.status='C') AS Cancelados FROM item_ped INNER JOIN pedcart ON item_ped.num_ped=pedcart.num_ped INNER JOIN represen ON pedcart.cod_rep=represen.cod_rep GROUP BY Vendedor O resultado desta query são colunas com valores idênticos. Isto é, Fulano tem 99 pedidos abertos, 99 fechados e 99 cancelados, Beltrano tem 48 abertos, 48 fechados e 48 cancelados. Tentei usar "SUM(IF(pedcart.status='A',1,0))", mas o C++ Builder acusa erro ("Unknown MySQL Datatype"). Alguma sugestão? Abraços!
  3. Olá, flavioavilela Eu só posso supor, a princípio, que seja no componente. O Delphi trata bem todos os demais componentes, e não há problemas com o banco. Populei a coluna com valores (e.g., 0) e não tive problemas. É apenas a coluna declarada com NULL que puxa o lixo. Abraços
  4. Olá a todos Estou trabalhando em uma aplicação, mas estou com um problema manipular informações do banco de dados para o aplicativo. O problema está em algumas colunas com valor NULL, que têm aparecido com lixo, ao invés de vazias. Verifiquei os passos e constatei o seguinte: Dados do banco, OK; Reconhecimento dos dados pelo aplicativo, OK; Carregar os dados, NOT OK - é aqui que a falha aparece. Por este motivo, creio que o problema seja no componente que faz a ligação, no caso, o MyQuery. Alguém sabe como tratar este problema, já que o código está ok? Abraços!
  5. Olá Fabin for (i=0;i<6;i++) printf("v v v v/n"); Este comando é suficiente pra fazer exatamente o que você postou. Se não for isso, dê mais detalhes sobre sua dúvida. Abraço
  6. Olá, Fabin Coloque um "/n" no início ou no final do printf; Abraços
  7. Olá Alexandre O programa não deveria voltar na pergunta? Aonde você gostaria que ele voltasse?
  8. Olá pvj Você compilou de novo o código, ou apenas executou?
  9. RSalvador

    SMDBGrid

    Tentarei uma por uma, com calma, agora mesmo. Obrigado!
  10. RSalvador

    SMDBGrid

    Olá Jhonas Obrigado por mais uma resposta. Eu já havia visto este tópico (como membro do ScriptBrasil, sempre faço primeiro as minhas primeiras buscas aqui e depois na net). Este foi o primeiro material que encontrei desde que tentei implementar esta funcionalidade. Como pode ver pelo link do meu post anterior, a pesquisa continuou até chegar neste componente forte. Mas o problema ainda não está resolvido, isto é, ainda não implemente a Grid com TreeView embutido. Continuo atrás de alguma informação a respeito. Um abraço!
  11. Olá pvj Substitua if(strcmp(nomecli = cliente[n].nome)==0 por if(strcmp(nomecli, cliente[n].nome)==0
  12. RSalvador

    SMDBGrid

    Alguém já trabalhou com este componente? É gratuito e com várias funcionalidades. Pode ser encontrado neste link: http://www.scalabium.com/smdbgrid.htm Caso alguém tenha trabalhado, fica uma questão: Como habilitar a função de TreeView no Grid? Ou, se não for possível, há alguma outra opção para trabalhar com o Grid como se fosse uma TreeView? Abraços!
  13. RSalvador

    Consulta MySQL

    Olá NaaTaaN Confesso que nunca mexi com essa função, mas pelo que li sobre ela agora, me parece que tem um & sobrando ali antes do "Search", já que o printf não tem esse caracter. Boa sorte aí no fim do trabalho. Um abraço!
  14. Olá djfarinha O programa tem erros sim. O forestá incompleto, não tem a segunda condição, que é a condição de parada. As variáveis "ml" e "bl" são impressas sem terem qualquer valor atribuído a elas. É feita uma atribuição a uma variável, "rl", que não foi declarada. Corrija os erros e, caso haja novos e não consiga encontrar as soluções, volte aqui. Abraços!
  15. Olá Alexandre O erro está na lógica do seu programa. Veja que, após pedir a sigla ou nome, ele executa este comando: if (strcmp(txt,sigla[10])==0) //são iguais printf("%s corresponde a %s",txt,estado[10]); Ou seja, ele compara a entrada com o valor de sigla[10], que, no caso, é "BA". Experimente rodar o programa da forma como está digitando "BA" como entrada. Como sugestão, adicione um laço for envolvendo o if, para percorrer todo o vetor de siglas. Lembre de verificar também o vetor de nomes. Abraço!
  16. Olá Jonathan e pedromss Vocês estão certos quanto às correções, muito obrigado. Fiz rápido, sem prestar a devida atenção. O problema que o pedromss levantou pode ser resolvido com a inclusão de um if antes do loop. Além disso, é necessário um if dentro do laço, como o pedromss colocou do código dele, para não ser impressa uma vírgula no final. Mas, com tudo isso, o programa já pode ficar mais caro que precisa. EDIT: o if dentro do laço dá certo, mas não é necessário. A solução que o Jonathan acaba de postar resolve e é mais barata. Novamente, obrigado pelas correções. Abraços!
  17. Olá Lanah A sequência tem o seguinte padrão: 1,(+1)2, (+2)4, (+3)7, (+4)11... Isto é, não é uma PA nem uma PG, pois não tem razão fixa. O elemento seguinte é uma soma do anterior com um número que é uma unidade maior que o utilizado anteriormente. Você pode montar uma função que receba, como parâmetro, a quantidade de números da sequência (imagino que você saiba como fazer). Dentro da função, o seguinte código deve imprimir a sequência: printf("Sequencia:1, "); aux=1; for (i=1, i<=qtde_de_numeros,i++){ printf("%d, ",aux+i); aux=aux+i; } Abraços!
  18. Olá Solução interessante. Eu pesquisei um pouco para responder a você, imaginando que eventos do tipo KeyUp, KeyDown ou KeyPress resolvessem, mas não achei nada específico para esta situação. Falta, agora, saber se este código que você encontrou pode ser aplicado de forma mais genérica. Imagino que sim, mas é importante ter essa certeza. Abraço!
  19. Olá L0mbra Só encontro um erro relevante no código. Quando você declara uma função como int, você deve encerrá-la com um return, devolvendo uma variável do tipo int. Você pode optar por não usar o return, mas aí deve declarar a função como void. Nas declarações que sugeri mudanças, creio que você não tenha entendido: A declaração int não pede tamanho, você pode guardar números com mais de um algarismo dentro de uma variável. A declaração char refere-se exclusivamente a um caractere. Caso sua intenção seja guardar uma palavra, você deve especificar o tamanho entre colchetes. Se, com isso, você não resolver, não tenho dúvidas que hajam problemas de lógica. Faça um teste de mesa: monte uma tabela com as variáveis e vá lendo o código linha por linha, como se você fosse o compilador. Lembrando que o compilador começa por main, pausa a execução para atender a uma chamada de função e, após isso, volta à linha seguinte da função principal. Fazendo este teste, você encontrará os erros. Abraço
  20. Olá L0mbra Utilizar o do ... while não ajudou? Ele não sai do loop caso o usuário não queira mais cadastrar clientes? Abraço
  21. Olá L0mbra Ah sim. Como eu havia mencionado em algum post anterior, não entendi sua declaração destas variáveis. Você pode declarar os int's sem especificar tamanhos. Retire os colchetes após as declarações e rode o programa de novo. Abraços!
  22. Olá L0mbra Substitua a linha for (cont=0;cont<3;cont++) da função "cadastro" por while (decisao==1). Aliás, coloque esta linha no FINAL do loop, e inicie-o com do. Fazendo isso, os comandos da função que vêm após o comando scanf("%d",&decisao); podem ser retirados. Espero que funcione. Abraços!
  23. Olá Desculpe a demora em responder. O código é complexo, não é fácil identificar o erro. Imagino que seria útil você postar o erro para nós. Mas uma coisa me chamou a atenção. Há algumas chamadas como a seguinte: if(ptratual->ptrprox==(struct prs *)NULL) Esta estrutura ponteiro->outro_ponteiro não me é familiar. Esta sintaxe está correta? Abraços
  24. Olá Ricardo Pesquise sobre as funções, não é difícil encontrar estas respostas. Para abrir o arquivo, faça assim: FILE *arq; arq = fopen("professor.dat","a+b"); if (arq == NULL) printf ("Arquivo não encontrado"); else //seu codigo Talvez este trecho não sirva para seu código. Portanto, procure informações na web a respeito destas funções, encontrará facilmente. Abraços
  25. Olá Funções recursivas são funções que chamam a si próprias. Este é o principal ponto. Veja, no seu código, que a função "bla" não chama a si mesmo, mas a "pot", que nem está declarada. Se você mudar o nome da função "bla" para "pot", terá a função recursiva. Esteja atento para, na chamada da função "pot" em main, passar dois valores como parâmetro, no caso, a base e o expoente. Também atente para o printf do fim, onde falta dizer a terceira variável utilizada na saída (no caso, "pote"). Abraços!
×
×
  • Criar Novo...