-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Oi,'--Junior --'! Observe o enunciado. Faça como abaixo: início algorítimo Leia quantidade de anos do individuo leia quantidade de meses leia quantidade de dias [Exemplo: fulano tem 10 anos 2 meses e 21 dias] multiplique anos * 12. ao resultado da multiplicação some a quantidade de meses lidas. O resultado desta expressão é a quantidade de meses total do indivíduo [Exemplo: ((10 * 12) + 2) = 122 meses] multiplique a quantidade de meses total por 31. ao resultado da multiplicação some a quantidade de dias lidos. O resultado da expressão é a quantidade de dias total do indivíduo. [Exemplo: ((122 * 31) + 21) = 3803 dias) escreva a quantidade total de dias do indivíduo. [Exemplo: 3803] fim algorítimo
-
Oi, Yakota! A resposta a sua pergunta é: Depende da utilização que você quer dar ao seu problema. Operador AND: Será verdadeiro se as duas igualdades de uma expressão forem verdadeiras. Exemplos: Se 1 = 1 AND 2 = 2 então o resultado é VERDADEIRO. Pois as duas igualdades da expressão são VERDADEIRAS. Se 1 = 1 AND 1 = 2 então o reultado é FALSO. Pois a igualdade do lado direito da expressão é FALSA. Se 1 = 2 AND 2 = 2 então o reultado é FALSO. Pois a igualdade do lado esquerdo da expressão é FALSA. Se 1 = 2 AND 1 = 2 então o reultado é FALSO. Pois as duas igualdades da expressão são FALSAS. Operdor OR: Será verdadeiro se pelo menos uma das duas igualdades de uma expressão forem verdadeiras. Exemplos: Se 1 = 1 OR 2 = 2 então o resultado é VERDADEIRO. Pois as duas igualdades da expressão são VERDADEIRAS. Se 1 = 1 OR 1 = 2 então o reultado é VERDADEIRO. Pois a igualdade do lado esquerdo da expressão é VERDADEIRA. Se 1 = 2 OR 2 = 2 então o reultado é VERDADEIRO. Pois a igualdade do lado direito da expressão é VERDADEIRA. Se 1 = 2 OR 1 = 2 então o reultado é FALSO. Pois as duas igualdades da expressão são FALSAS. Operdor XOR: Será verdadeiro se somante uma das duas igualdades de uma expressão forem verdadeiras Exemplos: Se 1 = 1 XOR 2 = 2 então o resultado é FALSO. Pois as duas igualdades da expressão são VERDADEIRAS. Se 1 = 1 XOR 1 = 2 então o reultado é VERDADEIRO. Pois somante a igualdade do lado esquerdo da expressão é VERDADEIRA. Se 1 = 2 XOR 2 = 2 então o reultado é VERDADEIRO. Pois somente a igualdade do lado direito da expressão é VERDADEIRA. Se 1 = 2 XOR 1 = 2 então o reultado é FALSO. Pois as duas igualdades da expressão são FALSAS. Operdor NOT: Inverte o resultado de uma expressão. Se NOT 1 = 1 então o resultado é FALSO. Pois a igualdade verdadeira da expressão 1=1 foi transformada em FALSA. Se NOT 1 = 2 então o resultado é VERDADEIRO. Pois a igualdade falsa da expressão 1=2 foi transformada em VERDADEIRA.
-
Oi, 'Renatosky'! Em vez de for por que não usar repeat until ou while. Não seriam mais práticos?
-
(Resolvido) Instrução SQL para buscar dados e fazer um
pergunta respondeu ao robinhocne de Denis Courcy em Delphi, Kylix
Oi, 'robinhocne'! Que atributo (campo) existe na tabela lancamentos que representa o aluno? Uma vez determinado esta relação basta fazer a integração de um join com um group by Exemplo. Supondo que o atributo "Codigo do aluno" neste caso chamado simplesmente de "código" esteja representado na tabela lançamentos. Então, o sql fiacria assim: SELECT a.Codigo, a.Nome , a.DtCadastro, a.DtTeIni, sum(L.Valor)as "SOMA" FROM Alunos a INNER JOIN Lancamento L ON a.Codigo = L.Codigo WHERE a.tTeIni >= :d1 and L.tipo = 1 GROUP BY a.Codigo Adapte a suas necessidades. Abraço -
Oi, 'Schanceller'! Existe duas maneiras que você pode usar para gerenciar seu banco de dados. a primeira é utilizando o utilitário de linha de comando mysql. a segunda utilizando um programa front-end conforme descrito no link ao lado http://scriptbrasil.com.br/forum/index.php?showtopic=30990 ambos as formas partirão do presupostoo que você sabe sql. Se não sabe, aconselho bustar alguns tutoriais na net. As instruções do utilitário mysql você encontra no manual do mysql. Os demais, no site de seus fabricantes.
-
Oi, 'juliobetta'! Veja se o diagrama que está em anexo se ajusta as suas necessidades. Estoque.pdf
-
Oi, 'juliano.ma' ! Faça assim: SELECT SUM(valor) as valortotal,* FROM tabela ORDER BY nome
-
Oi, '--borges --'! A resposta é SIM, contribui para o aumento e lentidão da base de dados. assim como o excesso de índices ou a ausência deles em consultas não otimizadas. Para saber mais sobre os tipos de dados e os tamanhos ocupados em cada resgistro leia o capítulo 6.2.3.1. Os Tipos CHAR e VARCHAR do manual do mysql versão 4.1 (tradução em português).
-
Oi, Helio! A resposta é sim. Leia os capítulos 1.2.4. Qual o Tamanho Que as Tabelas do MySQL Podem Ter?; 7.2. Tabelas MERGE; e 7.5. Tabelas InnoDB do manual do mysql versão 4.1 (tradução em português), ou os capítulos 1.4.4. How Large MySQL Tables Can Be; 14.3. The MERGE Storage Engine; e 14.2. The InnoDB Storage Engine do manual versão 5.0 (original em inglês).
-
Oi, '--Carla --'! Observe o code abaixo: create table noticias ( id integer unsigned not null auto_increment, titulo varchar(50) not null, conteudo varchar(100) not null, primary key(id) ); create table paginas ( id1 integer unsigned not null auto_increment, titulo1 varchar(50) not null, texto varchar(100) not null, primary key(id1) ); insert into paginas(id1,titulo1,texto) values (1, 'ffff', 'ff ff ff ff ff ff'); insert into paginas(id1,titulo1,texto) values (2, 'gggg', 'gg gg gg gg gg gg'); insert into paginas(id1,titulo1,texto) values (3, 'hhhh', 'hh hh hh hh hh hh'); insert into paginas(id1,titulo1,texto) values (4, 'iiii', 'ii ii ii ii ii ii'); insert into paginas(id1,titulo1,texto) values (5, 'jjjj', 'jj jj jj jj jj jj'); insert into noticias(id,titulo,conteudo) values (1, 'aaaa', 'aa aa aa aa aa aa'); insert into noticias(id,titulo,conteudo) values (2, 'bbbb', 'bb bb bb bb bb bb'); insert into noticias(id,titulo,conteudo) values (3, 'cccc', 'cc cc cc cc cc cc'); insert into noticias(id,titulo,conteudo) values (4, 'dddd', 'dd dd dd dd dd dd'); insert into noticias(id,titulo,conteudo) values (5, 'eeee', 'ee ee ee ee ee ee'); select id, titulo, conteudo, "NOTICIA" as origem from noticias union select id1 as id ,titulo1 as titulo ,texto as conteudo, "PAGINA" as origem from paginas; Observe o resultado: id titulo conteudo origem 1 aaaa aa aa aa aa aa aa NOTICIA 2 bbbb bb bb bb bb bb bb NOTICIA 3 cccc cc cc cc cc cc cc NOTICIA 4 dddd dd dd dd dd dd dd NOTICIA 5 eeee ee ee ee ee ee ee NOTICIA 1 ffff ff ff ff ff ff ff PAGINA 2 gggg gg gg gg gg gg gg PAGINA 3 hhhh hh hh hh hh hh hh PAGINA 4 iiii ii ii ii ii ii ii PAGINA 5 jjjj jj jj jj jj jj jj PAGINA Não é isso que você quer?
-
(Resolvido) mysql 4 parou de funcionar - conflito com mysql 5 de
pergunta respondeu ao paulo iamanaka de Denis Courcy em MySQL
Por favor, passe mais detalhes. Pois se são duas máquinas, uma de produção e outra de desenvolvimento, esta argumentação não procede. O que parou? Tabelas estão erradas? O banco não dá start? Há outros conflitos que você não relatou? Você está apontando para o IP errado? -
Claro que sim. Observe o atributo nfm.cod_empresa no select. Testa e vê o resultado.
-
Oi, 'Kindelis'! O simples uso da cláusula GROUP BY não resolveria seu problema? Exemplo: SELECT SUM(nf_item.val_liq_item)as valor, wfat_mestre.dat_emissao, nfm.cod_empresa FROM nf_item INNER JOIN wfat_mestre ON nf_item.num_nff =wfat_mestre.num_nff AND nf_item.cod_empresa=wfat_mestre.cod_empresa GROUP BY nf_item.cod_empresa, wfat_mestre.dat_emissao No código acima ele vai agrupar os valores por empresa e, dentro desta, por data de emissao.
-
Oi, '--Carla --'! Presta atenção que deu certo sim. (de tanto ver código php aqui no forum, já estou aprendendo, ehehe) Observe que quando você fez o UNION você juntou os atributos das duas tabelas em uma só (Conjunto união 4a. série (antiga 3a.) ensino fundamental. eheh) Então, os atributos titulo1 e id1 de notícias se fundiram com os atributos titulo e id de paginas. Isto aconteceu por causa do uso da cláusula AS nos atributos (esta cláusula dá um novo nome ao atributo. é um apelido). Sem a cláusula AS não seria possível fazer a união entre as tabelas. Por causa do que falei acima os atributos id1 e titulo1 retornarão vazios. Se você quer que saia separado, então é necessário criar um atributo artificial que informará de onde vem a informação. Para isto faça assim: <? $procura = "a"; $sql = mysql_query('SELECT `id`, `titulo`, `conteudo`, "pag" AS `origem` FROM `paginas` WHERE (`conteudo` LIKE "%'.$procura.'%") OR (`titulo` LIKE "%'.$procura.'%") UNION SELECT `id1` AS `id`, `titulo1` AS `titulo`, `texto1` AS `conteudo`, "not" AS `origem` FROM `noticias` WHERE (`texto1` LIKE "%'.$procura.'%") OR (`titulo1` LIKE "%'.$procura.'%") '); while ($i = mysql_fetch_assoc($sql)) { if ($i['origem'] = 'pag') echo "Noticia:<br>" else echo "Pagina:<br>"; echo $i['id']; echo $i['titulo']; echo "<br><br>"; } ?>
-
Oi,'--Carla --' ! como você não me respondeu a relação de dependência entre as tabelas, concluo que n~~ao há a possibilidade de fazer JOIN. Mas, pela característica da resposta que você passou vejo que você pode usar o UNION, ou, no pior caso, uma tabela temporária. Para uso do UNION faça assim: SELECT id, titulo, conteudo FROM paginas WHERE (conteudo LIKE "%'.$procura.'%") OR (titulo LIKE "%'.$procura.'%") UNION SELECT id1 AS id, titulo1 AS titulo, texto AS conteudo FROM noticias WHERE (texto LIKE "%'.$procura.'%") OR (titulo1 LIKE "%'.$procura.'%") Para o uso de uma tabela temporária faça assim: (Criação e Carga) CREATE TEMPORARY TABLE tabela ( id (do tipo de id na tabela paginas), titulo (do tipo de id na tabela paginas), conteudo (do tipo de id na tabela paginas) )ENGINE = MEMORY; INSERT INTO tabela (id, titulo, conteudo) SELECT id, titulo, conteudo FROM paginas WHERE (conteudo LIKE "%'.$procura.'%") OR (titulo LIKE "%'.$procura.'%") INSERT INTO tabela (id, titulo, conteudo) SELECT id1 AS id, titulo1 AS titulo, texto AS conteudo FROM noticias WHERE (texto LIKE "%'.$procura.'%") OR (titulo1 LIKE "%'.$procura.'%") (Exibição) SELECT id, titulo, conteudo FROM tabela; Após a utilização deve-se liberar memória destruindo a tabela temporária. DROP TABLE tabela;
-
Oi, '--Carla --'! Seja um pouco mais objetiva, por favor. O que você espera de resultado em sua pesquisa? Que atributo (campo) relaciona a tabela Noticias com a tabela Paginas? Como é este relacionamento? uma Notícia pode ter várias páginas ou uma página pode ter várias notícias.?
-
Oi, fjuniorwin! Imagine um cadastro de funcionários em uma empresa. Estes funcionários pertencem a um departamento e estes funcionários possuem um gerente. Um gerente também é um funcionário. CREATE TABLE departamento ( ID_Departamento UNSIGNED INTEGER NOT NULL AUTO_INCREMENT, NM_Departamento VARCHAR(40) NOT NULL, PRIMARY (ID_Departamento) )ENGINE = InnoDB; O campo ID_Departamento abaixo fará relacionamento com a tabela “departamentos” acima. Esta restrição não permite exclusão ou alteração em cascata, porque posso excluir um departamento sem excluir os funcionários. Mas me obriga a transferir os funcionários para outro departamento antes de excluir o departamento que eu quero. O campo ID_Gerente é um campo ALIAS (*1) (conterá as mesmas características e informações do campo ID_Funcionarios) do campo ID_Funcionarios e guardará o identificador do funcionário que um funcionário de um departamento está subordinado. O campo CPF é único para que não possa haver dois registros com o mesmo número de CPF, criei um índice único por este campo. CREATE TABLE funcionarios ( ID_Funcionario UNSIGNED INTEGER NOT NULL AUTO_INCREMENT, NM_Funcionario VARCHAR(60) NOT NULL, CPF CHAR(11) NOT NULL, ID_Departamento UNSIGNED INTEGER NOT NULL DEFAULT 0, ID_Gerente UNSIGNED INTEGER NOT NULL DEFAULT 0, PRIMARY (ID_Funcionario) )ENGINE = InnoDB; CREATE UNIQUE INDEX UK_Funcionartio_IX001 ON funcionarios (CPF); CREATE INDEX AK_Funcionario_IX002 funcionarios(ID_Gerente); ALTER TABLE funcionarios ADD CONSTRAINT FK_Funcionario_IX003 FOREIGN KEY (ID_Departamento) REFERENCES departamento ON DELETE NO ACTION, ON UPDATE NO ACTION; Assim, para cadastrar um funcionário, primeiro necessito cadastrar o(s) departamento(s). INSERT INTO departamentos (ID_Departamento, NM_Departamento) VALUES (1, “CONTABILIDADE”); INSERT INTO funcionarios (ID_Funcionario, NM_Funcionario, CPF, ID_Departamento, ID_Gerente) VALUES (1, “JOSE”, “11111111122”, 1, 1); INSERT INTO funcionarios (ID_Funcionario, NM_Funcionario, CPF, ID_Departamento, ID_Gerente) VALUES (2, “JOAO”, “22222222211”, 1, 1); De acordo com o exemplo acima, o ID do gerente é o mesmo que o ID do funcionário para o funcionário”JOSE”. O que significa, por este modelo que ele é o gerente do departamento “CONTABILIDADE” O funcionário “JOAO” também pertence ao departamento “CONTABILIDADE” e possui, como gerente, o funcionário “JOSE”.
-
vcl70.bpl - erro ao executar programas que compilei
pergunta respondeu ao Denis Courcy de Denis Courcy em Delphi, Kylix
Oi, 'Jhonas' ! Obrigado por sua resposta. Porém não gostei dela e continuei pesquisando na net. Descobri que este é um BUG cadastrado pela Borland e que acontece com o Delphi 6 e 7 (não haverá correção para este bug). Ele acontece em alguns casos, mas vou me fixar somente no caso a que se refere o tópico. Se você usa o quickreport e mudou a impressora default para uma em que não está conectado (o que aconteceu comigo, pois meu delphi está em meu laptop), as páginas com formularios do quickreport poderão aparecer com erro. Solução: Colocar uma impressora de pdf (algo como pdf creator, por exemplo), deixá-la como padrão e recomplilar o projeto. Pode fecha o tópico. -
Você precisa usar a data no formato 'aaaa-mm-dd'. Use a função FormatDateTime, da unit SysUtils, para a transformação da data na hora da gravação. Exemplos: Imagine uma tabela com as características CREATE TABLE tabela( minhadata DATE ); Para leitura de registro, use: var minhavariavel : TDateTime; ... query1.Active := False; query1.SQL.Add('SELECT minhadata FROM tabela); query1.Active := True; minhavariavel := query1.FieldByName('minhadata').AsDateTime; ... Para gravação, use: ... query2.Ative := False; query2.SQL.Add('UPDATE minhadata SET minhadata = :pminhadata); query2.ParamByName('pminhadata').Value := FormatDatetime('aaaa-mm-dd', Now); query2.ExecSQL; ...
-
Oi, fjuniorwin! O que você está querendo parece ser um auto relacionamento. Mas preciso que você descreva melhor o que você quer. Use uma estrutura fictícia como exemplo.
-
Prezados, Uso Delphi 7, MySQL 5.0.37, MyOdbc 5.x, BDE, QReport últimamente não consigo mais ver, em tempo de programação, as telas de impressão (as que possuem os formulários com QReport) e, quando tento rodar um programa, compilado em minha máquina, recebo a seguinte mensagem de erro do windows: Project xxxxxxxx.exe raised exception class EAccessViolation with message 'Access violation at address 00690907 in module 'vcl70.bpl'. Read of address 00000028' ... Esta mensagem só aparece para as partes de código que tentam acessar o QReport. A falha de execução acontece tanto dentro como fora do ambiente do delphi. Dentro do Delphi também não consigo mais criar um novo formulário do QReport. Na primeira vez em que isto aconteceu tive que formatar a máquina e reinstalar tudo novamente. Sábado, 29/03/2008 ocorreu novamente. desinstalei e reinstalei o Delphi, em Project / Options / Packages, marquei e desmarquei o "Build with runtime packages" e ele voltou a funcionar. Ontem, domingo 30/03/2008, ocorreu mais uma vez. Não mexi na instalação do delphi. Apenas marquei e desmarquei "Build with runtime packages" em Project / Options / Packages. Não tive sucesso. Está difícil de trabalhar. Alguém tem uma solução mais inteligente?
-
Você pode tratar deste assunto neste tópico. Ficarei feliz em auxiliá-lo no que puder. Para saber como montar um DW sugiro que você leia COMO CONSTRUIR O DATA WAREHOUSE W.H.INMON EDITORA CAMPUS ISBN: 853520141-6 Se você já leu e está pronto para o próximo passo, então sugiro que você obtenha um escopo do que você quer abranger (esta será sua tabela principal - a tabela de fatos), da granularidade ou granularidades (mais de uma tabela de fatos), que você que obter. Que comece a preparar a tabela de dimensão tempo (dimensão básica dentro de um DW) e que estude que dimensões que o seu DW conterá, assim como que atributos (campos) serão importantes manter em cada dimensão. Os próximos passos serão: Criação das tabelas, criação dos programas de extração de dados dos sistemas da empresa para o DW, testes de homologação para os programas de extração, criação das ferramentas OLAP que permitirão que seu pessoal consulte o DW. Por enquanto é só.
-
Vocês deram soluções via programação e não observaram o manual do MySQL para saber que soluções o banco provê sem a necessidade de se preocupar qual a linguaem de programação você usa. Então, Manual do Mysql versão 4.1 (tradução em português) 6.3.2. Funções String LCASE(str), LOWER(str) Retorna a string str com todos caracteres alterados para letra minúsculas de acordo com o conjunto de caracteres atual (o padrão é ISO-8859-1 Latin1): mysql> SELECT LCASE('MYSQL'); -> 'mysql' UCASE(str), UPPER(str) Retorna a string str com todos caracteres alterados para letra maiúsculas de acordo com o conjunto de caracteres atual (o padrão é ISO-8859-1 Latin1): mysql> SELECT UCASE('Hej'); -> 'HEJ'
-
Oi, '--Raphael --'! O seu erro está aqui: select pe.nomePessoa, pe.dataNascimento from Pessoa pe inner join Participa pa ON pa.nomePessoa = pe.nomePessoa where pa.cargo='Ator';
-
Oi, 'João Paulo Taraciuk'! Este é um problema que você tem que resolver via linguagem de programação.