-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Você deverá realizar as seguintes modificações. Transformar todos os campos de todas as tabelas de DECIMAL para DOUBLE e de NUMERIC para INTEGER. Cadastrar um usuário root@% com todos os direitos ou ninguém, em outra estação que não a localhost, conseguirá acessar o servidor do banco. O resto é normal. Pense e estude mais um pouco e instale a versão 5.1, pois vem com scheduler onde você pode agendar procedures para serem executadas em momentos definidos por você. As modificações acima também se aplicam a versão 5.1.
-
Oi Renato! O que você deseja é facil de resolver. use uma subquery desta forma: (para facilitar vou chamar as tabelas de pessoa, eventos e rl_eventos_pessoa, respectivamente na ordem em que apareceram em sua pergnta) Select distinct e.id_eventos from Eventos e WHERE e.id_eventos not in (select distinct rl.id_eventos from rl_eventos_pessoa rl where rl.id_pessoa = 1)
-
Oi, Andréia! Vou mover este tópico para a área de Delphi. Lá eles te ajudarão melhor.
-
(Resolvido) Power point - Objetos teimosos
pergunta respondeu ao Denis Courcy de Denis Courcy em Microsoft Office
Muito obrigado. uso o office 2000 e nele tem a opção "Definir Padrões de AutoForma". Fiz o que você falou e deu certo. -
Prezados estou escrevendo uma apresentação. Nela precisei uasr um objeto em 3D. Para isto cliquei no objeto retangulo e, depois, no objeto 3D. Obtive o que queria. O problema é que todas as vezes que necessito usar um objeto de desenho ele vem em 3D, inclusive as cores de preenchimento em tabela. Como faço para automatizar para 2D novamente?
-
Oi, Thales! O que você necessita é separar as consultas em duas. Uma buscando os 10 primeiros registros e outra ordenando conforme você deseja. Para buscar os primeiros 10 registros, sugiro a criação de uma tabela temporária que residirá na memória RAM e esta é criada assim: CREATE TEMPORARY TABLE temp ( ... aqui entra a lista de campos que você necessita.... )ENGINE = MEMORY; Agora carregue a tabela temporária com os dados dos 10 primeiros registros da tabela física. Isto se faz assim: INSERT INTO temp ( ...conforme a lista de campos criada...) SELECT ...conforme a lista de campos criada na tabela temp... FROM usuarios LIMIT 10; e, agora, a ordenação para exibição: SELECT ...conforme a lista de campos criada na tabela temp... FROM temp ORDER BY campo; Quando terminar de usar a tabela temp, não se esqueça de destruí-la para liberar memória. Faça isto assim: DROP TABLE temp É só. Qualquer dúvida é só postar novamente.
-
(Resolvido)Atualizar campos do banco de dados
pergunta respondeu ao João Paulo Taraciuk de Denis Courcy em MySQL
Oi, João Paulo! Faça o seguinte: 1 baixe o manual do MySQL versão 4 (porque está em português, para te facilitar). Neste manual, no capítulo 6 tem todas as instruções SQL que você necessita. 2 clique em iniciar, executar e, de lá digite: command (se você estiver no windows 98) ou cmd (se você estiver em uma versão superior) 2.1 ao abrir o prompt do DOS digite CD \Mysql\bin 2.2 neste diretório digite Mysql -u root -p 2.3 o programa vai te pedir a senha. Digite-a. (Se não pedir é porque não tem senha). 2.4 (Inserir no Banco sistema) digite: mysql> USE SISTEMA; (não esqueça do ponto e virgula ele determina o fim do comando) (estou supondo que o banco sistema já esxista) 2.5 (dentro da tabela configuracoes o campo cupom, formato smallint, 2 caracteres de tamanho) digite o comando: mysql> ALTER TABLE configuracoes mysql> ADD COLLUMN cupom smallint(2); 2.6 verifique o conteudo da tabela que você alterou para saber se você fez direito. digite: SHOW COLUMNS configuracoes ; 2.7 (inserir no mesmo banco uma tabela chamada teste com um campo teste1, varchar(30)) digite: mysql> CREATE TABLE TESTE ( mysql> teste1 varchar(30) mysql> ); 2.8) verifique se a tabela criada está lá mysql> SHOW TABLES teste1; 2.9) verifique se a estrutura foi feita como esperado mysql> SHOW COLUMNS teste1; 2.10)digite QUIT para encerrar o mysql e, em seguida, digite EXIT para fechar atela do DOS Obs. Os itens 2.6, 2.8 e 2.9 são só para seu aprendizado. não é necessário fazer sempre. É só. Boa Leitura do manual. -
(Resolvido)Atualizar campos do banco de dados
pergunta respondeu ao João Paulo Taraciuk de Denis Courcy em MySQL
Oi, 'João Paulo Taraciuk'! Use o mysql na linha de comando. No prompt do DOS digite mysql -u usuario -p Ele vai te pedir a password do usuario que voce forneceu vai aparecer o prompt do mysql, assim: mysql> Digite os comandos DDL normais seguidos de ponto e virgula. Para finalizar digite quit para sair do mysql e exit para sair do prompt do DOS A tabela que voce mexer não poderá estar sendu utilizada por ninguém, visto que você está usando uma versão inferior a 5.0. É só. qualquer outra dúvida é so postar. -
Oi, 'Renaaato' ! Você está usando a versão 5.x do MySQL, suponho. Crie um usuário root@%, com todas as permissões de acesso e este problema acaba.
-
Para listar quais tabelas existem no banco de dados use o comando SHOW TABLES para listar o conteudo de cada tabela use o comando SELECT para apagar uma tabela use o comando DROP TABLE nomedatabela para apagar o conteudo de uma tabela use o comando DELETE FROM nomedatabela Voce irá encontrar a sintaxe correta para cada um destes comandos lendo o manual do MySQL (pode usar o da versão 4.1 que está em portugues). Veja o capítulo 6 do referido manual. Se não for esta resposta que você necessita, informe sua pergunta com mais detalhes para que possamos tentar ajudar.
-
Você precisa marcar as folhas de ponto de saída de férias e as de retorno de férias para os períodos entre meses. Você pode testar se o [mes] de entrada de férias estiver marcado e imprimir a data de entrada e de retorno de férias e fazer a mesma coisa para o [mes] de retorno de férias. Os demais deverão ficar em branco, tal como você necessita.
-
Oi, 'fcandrade' ! Fiz esta função agora e não tenho como testá-la, mas creio estar correta. Ela var varrer uma cadeia de caracteres qualquer até o limite de 30 posições, gravando em uma variável somente os caracteres numéricos. No final ela retornará a cadeia de caracteres limpa. Vai ficar gravada em seu banco de dados e pode ser usada com qualquer instrução SQL, tal como exemplificado abaixo, após a descrição da função. Se houver dúvida ou erro na função, por favor, reporte para que possamos corrigí-la. DELIMITER $$; DROP FUNCTION IF EXISTS MEUBANCO.LimpaNum$$ CREATE DEFINER=root@localhost FUNCION LimpaNum(velho char(30)) RETURNS char(30) CHARSET latin1 BEGIN declare x int default 1; declare novo char(30) default ''; declare aux char(1); while x <= 30 do set aux = substring(velho, x, 1); if aux >= '0' and aux <= '9' then set novo = concat(novo, aux); end if; set x = x + 1; end while; return novo; END$$ DELIMITER;$$ UPDATE TABELA SET CAMPO = LimpaNum(CAMPO);
-
Não. não seria eficiente. Talvez o melhor fosse criar uma tabela com totalização com chave única para o coduser, por exemplo (você decide que campo(s) faria(m) parte desta chave única), e você incrmentasse os votos nela a cada entrada de registros. O tempo de gravação seria o mesmo (update tabela nova = insert tabela atual) mas a quantidade de registros gerados seria bem menor. Ou seja otimizaria o tempo de consulta. Uma select com a que está usando requer um processamento da subselect a cada linha lida na select principal.
-
Pelo que entendi cada coduser pode ter mais de um voto. Correto? e o que você define como votos_absolutos? Em sua select o group by vai trazer a quantidade de votos e votos_absolutos agrupados por usuario. Por favor explique melhor para que possamos auxiliá-lo. Outra coisa, para seu conhecimento. O COUNT(*) retorna o número de linhas existentes na tabela conforme os critérios de busca definidos por GROUP BY e WHERE
-
Tive problema semelhante quando passei um banco da versão 3.23 para 5.0.37. A solução foi passar os campos decimal para double mantendo as partes inteiras e decimais. Exemplo: era decimal(12,2) e passou a ser double(12,2). A versão 5.* não entende os tipos numeric (que passaram a ser integer) nem os tipos decimal (que passaram a ser double).
-
Conforme prometido segue em anexo o modelo lógico de um dicionário de dados. Havendo dúvidas e/ou interesse no assunto, é só postar. DicionariodeDados_ModeloL_gico.pdf
-
Oi, 'fcandrade' ! Sua dúvida é de como montar uma função dentro do MySQL? Se é isso use como base a função que postei em Busca por Fonemas (19/10/2007) Quanto a dica ou tutorial sobre montagem de função o manual do MySQL poderá suprir as dúvidas que necessita (controles de fluxo e funções de uso do MySQL). Havendo mais dúvidas poste novamente
-
Oi, 'Helio Ricardo'! No seu caso produto não se relaciona com estoque na cardinalidade de 1 para Muitos. A cardinalidade correta é de Muitos para Muitos. Assim sendo, altere suas tabelas conforme abaixo: tabela produto: cod_prod, produto, modelo, descricao, qtd_min, qtd_max, preco_venda, saldo_atual tabela estoque: cod_estoque, data_Movimento, Tipo_Movimento, qtd_Movimentada, Valor_Unitário, qtd_Saldo tabela relacionamento_produto_estoque: cod_prod(fk), cod_estoque(fk), nota_fiscal, num_serie, data_movimento, tipo_movimento Explicações: Na Tabela produto, incluí o elemento saldo_atual que é atualizado a cada movimentação de mercadoria, porém facilitando a consulta sem ter que varrer toda a ficha kardec (ficha de estoque do produto) para calculá-lo. Na tabela estoque a data_Movimento informa tanto lançamento de entrada como de saída do estoque; O tipo_Movimento informa de o movimento é de entrada ou saída; Valor_unitário é o valor unitario da mercadoria tanto para entrada quanto para saída; qtd_saldo é o resultado do Saldo_anterior (qtd_saldo no lançamento anterior deste produto ou saldo_anterior, estratégicamente colocado na tabela produto) acrescido ou subtraído, conforme o tipo de movimento, da quantidade movimentada. sua função é manter um histórico do saldo da mercadoria, já que na tabela produto só mostra o saldo atual. A tabela relacionamento_produto_estoque é a tabela que assegura a cardinalidade muitos para muitos com as tabelas produto e estoque. deve haver nela um lançamento para cada tipo de movimento. Serve como apoio aos casos que você necessita e serve, também, como histórico de quando determinada mercadoria (numero de série) entrouu ou ssaiu do estoque. É isso. Boa sorte com seu projeto. Qualquer dúvida poste novamente para que analisemos.
-
Para cálculo de financiamento em juros compostos iguais aos praticados pelo mercado, você pode utilizar a fórmula R = A / FVAs(i,n) Onde R = valor da prestação A = Valor a vista i = Taxa de juros (representado desta forma 5% = 5/100 ou 0,05) n = tempo (em meses, dias, anos; dependendo do que você quer) FVAs(i,n) é uma função que executa o seguinte cálculo: resultado = ((1 + i)^n) -1) / (i(1 + i)^n)
-
Oi, Décio! Utilize a função DateDiff (encontrei no help do access) DateDiff ("y", [DataDoPedido], [DataDeEnvio]) -----------> (Eu testei e deu certo)
-
Vou transferir você para a área de PHP.
-
Oi, Adriano! Nesta situação a chave estrangeira deve ser um campo com o id do cliente na tabela carro, pois o modelo precisa responder a pergunta "O carro do cliente é?" ou "O cliente possui que carro?". Esta é uma relação 1 para 1 sendo o domínio em carros variando de 0 a 1. Como exemplo seria assim: Tabela Cliente id_Cliente, nome, endereço, etc, PRIMARY (idCliente) Tabela Carro idCliente, idCarro, (este atributo pode ser a placa do carro, já que atualmente no Brasil só pode haver 1 carro para cada placa) ano, modelo, etc, PRIMARY (idCliente, idCarro) Na forma acima você já deixaria o modelo pronto para que o cliente possua nenhum, um ou vários carros. Ou seja transformaria o relacionamento em 1 para N. Sendo o domínio para carros variando de 0 a N. A consulta para responder as perguntas acima, as SELECTs seriam assim: Para que retornasse somente os clientes que possuissem carros (e seus carros) SELECT * FROM Cliente cli INNER JOIN Carro car ON cli.idCliente = car.idCarro Para que retornasse todos os clientes e mostrando os carros daqueles que possuissem os mesmos SELECT * FROM Cliente cli LEFT JOIN Carro car ON cli.idCliente = car.idCarro Neste último caso, os capos da tabela carro, para os clientes que não possuissem carros, seriam preenchidos com nulo. Você está usando o engine MyISAM ou o InnoDB? Para MyISAM a resposta acima basta. Para InnoDB você poseria acrescentar um constraint que obrigaria você a não cadastrar carro antes de cadastrar cliente. Ou seja, só haveria carros cadastrados para clientes já cadastrados. Isto evitaria inconsistência no banco. Para tal você deverá aplicar uma atualização na tabela, da seguinte forma: ALTER TABLE Carro ADD CONSTRAINT FK_CLICARRO FOREIGN KEY (idCliente) REFERENCES Cliente (idCliente) ON DELETE CASCADE ON UPDATE CASCADE; Este tipo de constraint facilita na hora de deletar o cliente, pois de outra maneira você deveria deletar os carros do cliente, primeiro e depois, deletar o cliente.
-
Oi, João! Tenho quatro observações a fazer. A primeira: Por que você está usando GROUP BY se não está utilizando nenhuma função de agragação, tipo COUNT, SUM, etc.? Se não usa função de agregação, então não há necessidade de GROUP BY (Nem quando se trabalha com relatórios tipo quebra, também chamados de master-detail). A segunda: LEFT JOIN é sinonimo de LEFT OUTER JOIN A Terceira: Crie indices para os atributos: na tabela1: id e data (um índice para cada) na tabela2: id_tabela1 Dependendo do tamanho de sua tabela estes índices agilizarão esponencialmente o tempo de consulta, evitando TABLE SCAN e perda de tempo na ordenação do resultado final. Utilize, tabém, índices em atributos dentro de cláusulas WHERE. A quarta: A cláusula ORDER BY funciona acrescentando atributos(campos) e ordenando conforme os atributos são hierarquizados. Isto significa que o primeiro atributo ficará ordenado, o segundo ficará ordenado dentro do primeiro e assim sucessivamente. Exemplo: Dados os atributos campo1 e campo2 com o seguinte conteúdo: Campo1 Campo2 --------- ---------- A1 B2 B1 A2 D1 C2 A1 D2 D1 A2 O select com ORDER BY campo1, Campo2. O resultado será: A1 B2 A1 D2 B1 A2 D1 A2 D1 C2 Em sua consulta se sua intenção é obter resultado semelhante ao acima, então informe o atributo da tabela2 que você deseja ordenar. SELECT tabela1.*, tabela2.foto FROM tabela1 LEFT JOIN tabela2 ON tabela2.id_tabela1 = tabela1.id ORDER BY tabela1.data, tabela2.id
-
Todos terão que ter o MyODBC instalados em suas máquinas. Depende da linguagem de programação. algumas, como Delphi e PHP, possuem um pacote próprio que permitem conexão sem ODBC. Não sei se o VB possui este tipo de conexão. Pelo que sei, não há perda de performance usando o MyODBC.
-
(Resolvido) Não da permissão para criar View e Procedures
pergunta respondeu ao kuroi de Denis Courcy em MySQL
13.5.1.5. REVOKE Syntax REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] {tbl_name | * | *.* | db_name.*} FROM user [, user] ... REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ... até mais