-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
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
-
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.
-
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.
-
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.
-
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.
-
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.
-
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); ... }
-
Oi Leonardo! Você poderia colocar os dois algorítimos aqui para que possamos analisar e te orientar?
-
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.
-
Problema na ordenação de resultados SQL
pergunta respondeu ao Rubiz Gardini de Denis Courcy em MySQL
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 -
Em que, em termos de banco de dados, podemos te ajudar?
-
Problema na ordenação de resultados SQL
pergunta respondeu ao Rubiz Gardini de Denis Courcy em MySQL
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`) -
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).
-
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.
-
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.
-
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.
-
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)
-
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
-
http://www.receita.fazenda.gov.br/PessoaJu...iscal/cnaef.htm
-
www.mysql.com/products/tools/migration-toolkit/
-
Executar Evento antes de Procedimento
pergunta respondeu ao Vivendo&Aprendendo de Denis Courcy em Delphi, Kylix
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; -
(Resolvido) API Windows para deletar arquivos
pergunta respondeu ao Denis Courcy de Denis Courcy em Delphi, Kylix
Oi, 'Vivendo&Aprendendo'! Obrigado pela ajuda. Vou testar assim que chegar em casa. -
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.
-
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;
-
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.