Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Tudo que Denis Courcy postou

  1. Oi, 'Vivendo&Aprendendo' Pelo que sei, você programa na mesma linguagem que eu (Delphi). E neste caso, não há jeito. Muitos dos códigos que você terá que escrever, terão que ser em SQL. Muitas vezes os TTables não resolverão sua situação e você terá que usar os TQuery da vida. Principalmente os reports. Um abraço
  2. Oi, 'Vivendo&Aprendendo' Basicamente o acesso aos dados de um relacionamento está no uso das variações da cláusula JOIN. Exemplo: Seja a tabela funcionário com os atributos idfuncionario (chave primária) e nmfuncionario, uma segunda tabela chamada dependente (que conterá a relação de dependentes deste funcionário) com os atributos idfuncionario e nmdependente A chave criada para a tabela dependentes é o atributo idfuncionario (indice não único). tabela funcionario 1 antonio 2 ana 3 maria tabela dependente 1 carlos 3 marta Executando o SELECT f.idfuncionario, f.nome_funcionario, d.nmdependente FROM funcionario f INNER JOIN dependentes d ON f.idfuncionario = d.idfuncionario O retorno do sql seria 1 antonio carlos 3 maria marta Ou seja somente os registros onde as duas tabelas possuissem idfuncionario iguais Para obter uma listagem completa eu deveria usar o seguinta sql:SELECT f.idfuncionario, f.nome_funcionario, d.nmdependente FROM funcionario f LEFT JOIN dependentes d ON f.idfuncionario = d.idfuncionario O retorno do sql seria 1 antonio carlos 2 ana null 3 maria marta Note que o funcionario 2 (ana) retornou o dependente como nulo. Existem outras variações. Estude sobre modelos EER e SQL.
  3. Oi, 'Halfar' ! A para saber quem falhou, depende de como você contruiu a tabela e os índices. Faça uma busca por cada um individualmente, depois de constatado que você tem os tres verifique em pares para saber quem falta para completar o trio.
  4. Você deve estudar "passagem de parâmetro por valor" e "passagem de parâmetro por referência". A "passagem de parâmetro por valor" funciona da seguinte forma: Seja, o código abaixo: void main() { int x, y; x = 3; y = soma(x); } int soma(int a) { a := a + 3; return (a); } O valor de x será 3 e o valor de y será 6. Ou seja, somente o valor 3 que estava em x foi passado para o parâmetro a da função soma. Na "passagem de parâmetro por referência" o que é passado para o parâmetro é o endereço da variável e, assim, seu conteúdo (valor) é modificado. Veja o exemplo abaixo: void main() { int x, y; x = 3; y = soma(&x); } int soma(int *a) { a := a + 3; return (a); } O valor de x será 6 e o valor de y será 6. Ou seja, o parâmetro a agora não é mais um inteiro, apenas. Ele é um ponteiro para o tipo inteiro e espera receber o endereço de uma variável. Neste caso representado pelo símboplo & na frente da variável x em soma(&x);. Quando a em a := a + 3; recebe a atribuição de a + 3; o valor estará sendo armazenado no endereço onde está a variavel x. Complicando um pouco para que você não cometa erros. Se você fizer como no código abaixo: void main() { int x, y; x = 3; y = soma(&x); } int soma(int a) { a := a + 3; return (a); } O resultado será x = 3 e y com um valor inesperado, pois o parâmetro soma, esperando receber o valor de x, recebeu o endereço de memória de x. Ou outro exemplo de erro comum. Veja o código abaixo: void main() { int x, y, z; z = 0; x = 3; y = soma(x); } int soma(int *a) { a := a + 3; return (a); } Se x, y e z ocupam, respectivamente os endereços de memória 1, 2 e 3, então o resultado da execução do programa acima teremos x = 3, y = 3 e z = 3. Pois o parâmetro "a" esperava receber o endereço de "x" mas recebeu seu "valor" que é o endereço de "z". Daí a bagunça alterando o que não deveria ser alterado. Concluindo: Os dois tipos de erros COMUNS por falta de atenção, não são detectados na compilação e são muito difíceis de serem percebidos.
  5. Oi 'cfa' Você poderia, por favor, passar a estrutura destas tabelas, incluindo seus índices para que eu possa auxiliá-lo ce forma correta de montar esta estrutura? A razão deste pedido é que não estou conseguindo determinar as chaves candidatas aos relacionamentos e, por conseqüência, não consigo orientá-lo.
  6. Denis Courcy

    (AJUDA) MYSQL

    OI, Fábio Achei os endereços abaixo para sua referência. http://pcworld.uol.com.br/dicas/2007/11/16...-14.1022414298/ http://forum.clubedohardware.com.br/archiv...cao-entre/48841 http://wiki.di.uminho.pt/twiki/pub/Educati...ompRedesLC6.doc Além disso, conversei com o pessoal de redes da empresa que trabalho, que me informou que você tem que configurara o Gatway padrão (nas duas redes) com o endereço do roteador.
  7. Oi 'Fagner'! Observe no trecho de código abaixo, como você passa um parametro parecido para strncmp e fprintf. Observe , também que você não usa o operador & para a passagem destes valores. O mesmo deve ser feito para a passagem de parâpetro de sua função. Ou seja sem o operador &. Estude o porquê disso e verifique que você não estava passando o conteúdo de novo->Tipo para sua função. Em vez disso, você estava passando o endereço de memória. if(strncmp (novo->Funcao,"[ECF]",4)==0) { flag=1; fprintf(fp1,"----------------------------------------- \n"); fprintf(fp1,"[ECF] \n"); fprintf(fp1,"----------------------------------------- \n"); fprintf(fp1,"novoFuncao->%s",novo->Funcao); fgets (novo->Tipo, MAX, fp); /* PASSANDO STRING PARA FUNCAO ORDENA STRING */ ordenaString(&novo->Tipo); fprintf(fp1,"Imprime ---->"); fprintf(fp1,"novoTipo->%s",novo->Tipo); ... }
  8. Oi Leonardo! Você poderia colocar os dois algorítimos aqui para que possamos analisar e te orientar?
  9. Denis Courcy

    (AJUDA) MYSQL

    Oi 'Fabio Roxo'! Você consegue ver a máquina pelo Windows usando nome dela ? Se conseguir enderece pelo nome. Enquanto isso vou consultar minhas bases.
  10. Oi, Rubiz. É igual, sim. Mas você tem que lembrar a forma como guarda a hora, pois 8:00 PM é o mesmo que 20:00 e, além disso, as datas influenciam, também. Exemplo: 8:00 para o dia 01/01 8:00 para o dia 02/01. Outra forma que alguns guardam a data é 08:00:00 e 8:0:0 Ou em forma de string. Quando necessito trabalhar com datas e horas não costumo usar campos date e time separadamente. Normalmente uso timestamp. é mais fiel pois guarda da seguinte forma, sempre: aaaa-mm-dd hh:MM:ss
  11. Denis Courcy

    Ajuda

    Em que, em termos de banco de dados, podemos te ajudar?
  12. Oi, 'Rubiz Gardini'! Experimente usar o nome do campo entre crases assim: `time` e/ou forçar o nome da tabela, assim: `MinhaTabela`.`time` Para ordenar pelo referido campo use a função TIME_TO_SEC assim: TIME_TO_SEC(`MinhaTabela`.`time`)
  13. Oi,'xandones'! esta não é a área apropriada para isto. Mas vou adiantar que seu trabalho pode ser feito em .NET ou java (não javascript) ou PHP (associado com javascript).
  14. Oi,'webroger' Mais uma recomendação. Estude sobre Views Materializadas. Este link tem o conceito do que é uma View Materializada e dentro dele tem links de como montar estes tipos de views.
  15. Oi, cfa! Sua pesquisa pode estar gerando um TABLE SCAN, então verifique se há indices para i.cd_cliente, m.cd_cliente, m.nr_serie, i.nr_serie, m.nr_faixa, i.cd_cliente, l.cd_cliente, i.nr_lote e l.nr_lote, que parecem ser as chaves candidatas (primárias e estrangeiras) para os relacionamentos. Se não houver índices para os relacionamentos, crie-os.
  16. Oi,'webroger' O MySQL não permite a criação de índices para views. Ver Manual Mysql Versão 5, Capítulo 19 Seção 19.2. CREATE VIEW Syntax. Solução: Usar diretamente o select (de forma otimizada) que serviu de base para a criação da view.
  17. Oi 'alexandremanowar' Neste caso você vai ter um trabalhino a mais. Gere os scipts de criação das tabelas (SHOW CREATE TABLES /G) ou usando o mysqldump. (Somente as estruturas das tabelas.) Passo 2. Use o comando SELECT ... INTO OUT FILE ... ) para obter os dados na forma CSV. (Ver manual do MySQL Versão 4.1 em português, Capítulo 6)
  18. Oi,'Gabriel Andrade'! Tente INSERT INTO Nova (id_topico, id_usuario, data, numero_visitas) SELECT id_topico, id_usuario, MAX(data), COUNT(1) AS numero_visitas FROM Antiga GROUP BY id_topico, id_usuario
  19. Denis Courcy

    Tabela de CNAE!

    http://www.receita.fazenda.gov.br/PessoaJu...iscal/cnaef.htm
  20. www.mysql.com/products/tools/migration-toolkit/
  21. Oi, Vivendo&Aprendendo! No form principal coloque o componente TApplication Como função privativa declare type TFrmP000000 = class(TForm) ... private { Private declarations } procedure prvMudarComEnter(var Msg: TMsg; var Handled: Boolean); ... end; Na criação do form principal coloque procedure TFrmP000000.FormCreate(Sender: TObject); begin ... Application.OnMessage := prvMudarComEnter; ... end; No corpo do form principal escreva: procedure TFrmP000000.prvMudarComEnter(var Msg: TMsg; var Handled: Boolean); begin if not((Screen.ActiveControl is TCustomMemo) or (Screen.ActiveControl is TCustomGrid) or (Screen.ActiveForm.ClassName = 'TMessageForm')or (Screen.ActiveControl is Tbutton)) then if Msg.message = WM_KEYDOWN then case Msg.wParam of VK_RETURN, VK_DOWN: Screen.ActiveForm.Perform(WM_NextDlgCtl, 0, 0); VK_UP: Screen.ActiveForm.Perform(WM_NextDlgCtl, 1, 0); end; end;
  22. Oi, 'Vivendo&Aprendendo'! Obrigado pela ajuda. Vou testar assim que chegar em casa.
  23. Oi, alguém conhece a API do windows (e como funciona) que ao deletar um arquivo/pasta, este é movido para a lixeira? Não quero usar a função DeleteFile. esta não atende meus objetivos.
  24. Denis Courcy

    count

    Oi,'shelter'! Acrescente a cláusula having. Select HOUR(DataHoraLigacao)as hora, count(ligacaorecebida ) as Recebida, count(numerotelefone) as Efetuada, count(toques)as N_atendidas from tb_ligacoes where DAYOFMONTH(DataHoraLigacao) = 24 and hour(DataHoraLigacao) between 8 and 20 Group by hora HAVING N_atendidas > 10;
  25. Estou enviando um link com um passo-a-passo para instalação do MySQL 5 no Windows, na terceira tela do "MySQL Server Instance Configuration Winzard" tem uma opção chamada "Include Bin directory in Windows PATH". Se você instalou sem esta opção marcada MARQUE-A. É importante. É disso que fala no manual sobre um tipo de erro que pode aparecer com aquele número.
×
×
  • Criar Novo...