-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Use um componente SQL com a instrução normal de crialçao do banco. Use a opção ExecSQL do componente para executar a sql. Tal como você faria para INSERT, DELETE e UPDATE. Nota. O Usuário que conectará no MySQL deverá ter as permissões de criação de banco. Um usuário que eu poderia representar para este exemplo é o root.
-
(Resolvido) Mysql e BDE administratior
pergunta respondeu ao cristianoventura de Denis Courcy em MySQL
1- Baixe a versão mais atualizada do MyODBC 2- Instale o MyODBC 3- Em fontes de dados ODBC (Painel de Controle) configure da seguinte forma 4- Configurar o ODBC no painel de controle na opção fontes de dados ODBC. 4a- Data source name: Servidor 4b- Host Server name or IP: localhost 4c- Database name: nome do banco 4d- User: root ou seu_usuario 4e- password: sua_senha -
Oi, '--Lorena --' ! Você andou faltando as áulas a respeito ou não entendeu o conceito e como desenvolver nele? Não posso ajudá-la se você não sabe nem por onde começar. Não fazemos os execícios. Apenas orientamos no desenvolvimento e, para isto, é necessário que tenha sido feito alguma coisa.
-
'--João Paulo --', Você remouveu a parte do código delphi que renomeava o arquivo para aaaammddhhMMss.sql como referenciei no post anterior? Se não removeu, seu código abaixo ShellExecute(handle,'open', 'cmd.exe',Pchar('/c c:\programa\mysql.exe teste_backup < c:\programa\backup.sql'),nil, SW_SHOW );não vai funcionar. respondendo suas questões: Não. Vua versão do MySQl não usa triggers e seu mysqldump não contempla esta opção. Fez bem em retirar. Valeu. Faltou você informar o parâmetro de usuário no mysql.exe (seria -u root -p sua_senha) No Mysqldump, se você tiver senha tem que usar o parâmetro de --password=sua_senha Outra forma, que é a que uso, é dentro do mysql.exe digite: souce nomedoarquivobackup.sql Como dica: Evite deixar mastigado para o usuário final a forma de recuperar o bakup. Certamente ele vai fazer caca.
-
Oi, Leandro ! Este erro ocorre porque o nome da tabela em reference ('dados_pessoais' ) não está constando no INFORMATION_SCHEMA do MySQL. Para corrigir sem ter que pensar muito na solução faça: Renomeie a tabela, Crie a a tabela com o nome correto, Carregue os valores para dentro dela, a partir da tabela renomeada e Destrua a tabela renomeada.
-
Oi, ='rogsousap'! Você quase acertou. Use: Insert into TabelaV (nome, dtInicio, dtFim) Select nome, dtInicio, dtFim From TabelaF
-
Oi, '--João Paulo --'! Em primeiro lugar, não há o que desculpar. Todos nós estamos aprendendo a todo o momento. Respondendo suas dúvidas. Não. basta você direcionar o PATH do windows da máquina do servidor, local onde deverá ficar este programa, para que fique mapeado o caminho dos binários do banco MySQL. Que, se não me falha a memória, para a versão 3.23 do mysql é esse o caminho: c:\Mysql\Bin Basta voce substituir o nome do banco de dados passado como parâmetro para o mysqldump em --databases sase.No exemplo acima o nome do banco está em vermelho. Não. O programa que passei é completo e deve ser executado diretamente no console da máquina do servidor do banco. Não funcionou porque cometi o erro de não informá-lo que o nome do banco estava escrito na passagem de parâmetro do mysqldump, não o informei que você deveria renomear o nome do banco de "sase" (nome do meu banco de dados) para o nome do seu banco de dados e, porque a variável de ambiente PATH do seu servidor de banco deveria contemplar o que informei na primeira resposta. O nome do arquivo gerado pelo backup será colocadp na pasta onde estiver o executável do backup e o nome do arquivo seguirá a seguinte regra de formação:aaaammddhhMMss.sql onde: aaaa = Ano mm = Mes dd = Dia hh = Hora MM = Minuto ss = Segundo. Assim, um backup não será sobreposto por outro.
-
Oi, 'zoinvoo'! Para obter o que você quer de maneira correta, você deveria modificar sua tabela para : CREATE TABLE `resultado` ( `extracao` varchar(5) NOT NULL, `data` date NOT NULL, `dz1` integer NOT NULL, `dz2` integer NOT NULL, `dz3` integer NOT NULL, `dz4` integer NOT NULL, `dz5` integer NOT NULL, `dz6` integer NOT NULL, `ant1dz1` integer NOT NULL, `ant1dz2` integer NOT NULL, `ant1dz3` integer NOT NULL, `ant1dz4` integer NOT NULL, `ant1dz5` integer NOT NULL, `ant1dz6` integer NOT NULL, PRIMARY KEY (`extracao`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Depois, você deverá aplicar a query UPDATE resultado SET ant1dz1 = dz1 + 1; Na maneira Errada, ou seja, a sua maneira, a SQL seria a mesma da exibida acima, mas focê forçará o "motor" do MySQL a realizar as transformações de tipo e, quando existir uma informação errada, por exemplo, espaço ou letra, a sql corre o risco de abortar, deixando-o na mão.
-
É Denis Com um N não com NN. O caminho do banco já deve ter sido definido no na variável de ambiente do windows que tem o nome "path". O caminho de destino está em --result-file=backup.sql. Veja o fragmento do código do programa abaixo. procedure TfrmBackup.ExecutarBackup; var aa,mm,dd, hh, mmm, ss, sss: word; aux : string; begin aux := 'cmd.exe /c "mysqldump --opt --flush-logs --triggers --port=3306 '; aux := aux + '--user=root --result-file=backup.sql --databases sase"'; É Denis Com um N não com NN. O caminho do banco já deve ter sido definido no na variável de ambiente do windows que tem o nome "path". O caminho de destino está em --result-file=backup.sql (é parâmetro do mysqldump). Veja o fragmento do código do programa abaixo. procedure TfrmBackup.ExecutarBackup; var aa,mm,dd, hh, mmm, ss, sss: word; aux : string; begin aux := 'cmd.exe /c "mysqldump --opt --flush-logs --triggers --port=3306 '; aux := aux + '--user=root --result-file=backup.sql --databases sase"';
-
Oi, '--João Paulo --' Dê uma olhada neste tópico que escrevi para auxiliar o pessoal de delphi que usa mysql. rotina de backup para bancos mysql, programa completo
-
Este é um exercício de seu curso de informática? Não vou de ajudar. Mas vou te orientar. Para a pergunta 1) No google pesquise por passagem de parametros valor x referencia Você vai encontrar a resposta lá. Para a pergunta 2) No google pesquise por functions procedure pascal
-
Oi,'fertel'! Você já ouviu falar de JOIN? Você informou que possui uma tabela [artigos] que tem uma relação de um "artigo" para muitos "votos" com a tabela [votos]. Então, para resolver esta equação use SELECT a.artigo_id, count(v.artigo_id) AS MAIS_VOTADO, MAX(v.Voto) AS MAIOR_VOTO FROM Artigo a INNER JOIN Voto v ON a.artigo_id = v.artigo_id group by a.artigo_id;
-
Oi, 'teofilob'! Você mencionou que teve problemas com disco. Isto pode ter crashado algum arquivo do banco conforme informado neste trecho Tente desinstalar e reinstalar o banco. (Este pode ser o processo menos doloroso).
-
Movendo para área de javascript
-
Oi, Carlos! A consulta correta é: SELECT M.COD_MERC, AVG (C.QTD_MERC * M.PRECO_UNIT) AS MEDIA FROM ITENS_CONTAINERES C, MERCADORIA M, ITENS_DA_NOTA I WHERE C.COD_MERC = M COD_MERC AND M COD_MERC = I.COD_MERC A única dúvida que tenho é quanto ao uso de apóstrofos em MEDIA (não conheço bem o oracle) Pelo SQL ANSI padrão não tem apóstrofos.
-
(Resolvido) Duvida ao converter dados
pergunta respondeu ao cristianoventura de Denis Courcy em MySQL
Cristiano, continuando a resposta anterior: Na linha de comando (usando cmd no executar do windows ou no shell do linux digite: Se você estiver no windows: mysqldump -u root -p --no-data --databases <NomeDoBancoDeDados> --result-file=C:\minhaPasta\MeuArquivo.sql Se você estiver no linux: mysqldump -u root -p --no-data --databases > /MinhaPasta/MeuArquivo.sql Substitua o termo <NomeDoBancoDeDados> pelo nome do banco de dados que você tem como alvo. O Comando acima irá criar um txt em C:\minhaPasta\MeuArquivo.sql somente com a estrutura das tabelas. Se a estrutura for compatível você pode executar o comando completo assim: Para windows: mysqldump -u root -p --lock-tables --databases <NomeDoBancoDeDados> --result-file=C:\minhaPasta\MeuArquivo.sql Se você quiser somente os dados sem as instruções de criação das tabelas digite No windows: mysqldump -u root -p --lock-tables --no-create-db --databases <NomeDoBancoDeDados> --result-file=C:\minhaPasta\MeuArquivo.sql -
(Resolvido) Duvida ao converter dados
pergunta respondeu ao cristianoventura de Denis Courcy em MySQL
Oi, Cristiano! Os arquivos com extensão *.MYI e *MYD são os arquivos físicos do banco de dados MySQL com Engine MyISAM. Você tem que utilizar o aplicativo utilitário de linha de comando chamado mysqldump para obter os dados na forma de txt. Dê uma olhada no manual do MySQL da versão que está sendo utilizada e, se houver dúvidas poste novamente para que possamos te auxiliar. -
Oi,'shelter'! Vamos comentar ponto a ponto toda a função. Para tal vou usar os caracteres /* para iniciar o comantário e os caracteres */ para finalizar o comantário: DELIMITER $$; /*troca o delimitador (caractere que informa quando o comando acabou). Neste caso dentro da função vou usar o caracter ponto-e-virgula e fora da função vou usar os caracteres $$ para indicar que o comando acabou */ DROP FUNCTION IF EXISTS `BancoDeDados`.`ValorApagar`$$ /* Verifica se a função já existe e se já existir deleta ela. O termo BancoDeDados deve ser substituido pelo nome de seu banco de dados e o termo ValorApagar é o nome da função propriamente dito */ CREATE FUNCTION ` BancoDeDados `.`ValorApagar` (Campo Timestamp) NO SQL RETURN double /* Favor retirar o ponto-e-virgula que estava aqui. Foi um erro meu. */ /* O comando acima cria a função ValorApagar no banco de dados indicado pelo nome BancoDeDados. Recebe como parâmetro uma variável, aqui denominada "Campo" que é do tipo Timestamp. A cláusula "NO SQL" Informa ao MySql que a função não executará internamente nenhum código SQL. A cláusula "RETURN double" informa so MySQL que a função retornará um valor do tipo double */ BEGIN /* Aqui se inicia a função */ /*declare Tempo Time;*/ /* Declara uma variável de nome "Tempo" do tipo time */ /* A declaração acima estava provocando um erro insperado. Então retirei a variável da função, mas deixei comentada a declaração paraque sirva de instrução */ declare Seg integer; declare Valor double; /*Set Tempo = Time(campo); *//* Atribui a variavel "Tempo" o valor de retorno da função Time sobre o parâmetro "Campo" */ Set Seg = Hour(campo) * 3600; Set Seg = Seg + (Minute(campo) * 60); Set Seg = Seg + Second(campo) If Seg < = 30 then Set Valor = 0.50; Else Set Seg = Seg - 30; Set Valor = 0.50 + (0.10 * (Seg Div 6)); If (Seg Mod 6) <> 0 then Set Valor = Valor + 0.10; End if; End if; ValorApagar = Valor; /* Informa ao MySQL que afunção está retornando o valor esperado */ END$$ /* Fim da Função */ DELIMITER;$$ /* Troca novamente o delimitador informando ao MySQL que ele volta a utilizar o ponto-e-virgula como finalizador de instrução */ No código acima estamos executando 4 comandos distintos de uma única vez. São eles: o DELIMITER $$; o DROP FUNCTION ... o CREATE FUNCTION ... e o DELIMITER;$$ novamente.
-
(Resolvido) Duvida ao converter dados
pergunta respondeu ao cristianoventura de Denis Courcy em MySQL
Infelizmente não conheço nenhuma ferramenta. Mas você pode usar os scripts do mysqlsump para gerar o que você necessita, bastando fazer pequenas modificações. -
OK. Entre no query browser, selecione seu banco de dados; Copie o texto que contém a função (publicado em um post acima) para a área onde você digita seus sqls Substitua o texto BancoDeDados pelo nome de seu banco de dados nas linhas: DROP FUNCTION IF EXISTS `BancoDeDados`.`ValorApagar`$$ CREATE FUNCTION ` BancoDeDados `.`ValorApagar` (Campo Timestamp) Execute o código, Pronto. sua função está no banco.
-
Oi,'claudio_PHP'! como não conheço PHP (não é minha praia) vou ignorar seu código. Se a resposta que for dada aqui não satisfizer por seu erro estar no PHP, posso transferir este tópico. Vamos a resposta. Quando criptografamos uma palavra devemos comparar o valor criptografado com outro do mesmo tipo. exemplo: SELECT * FROM usuarios WHERE login = 'DENIS' AND senha = SELECT MD5('testing') No exemplo acima usamos os atributos login e senha, para localizar um elemento na atabela usuário. O atributo senha foi cadastrado com MD5('testing') o que resultou na string "ae2b1fca515949e5d54fb22b8ed95575" Nosso select comparou o conteudo de senha "ae2b1fca515949e5d54fb22b8ed95575" com o MD5 de 'testing' que é o mesmo resultado. Particularmente dou preferência ao uso de PASSWORD() em vez de MD5() pela simpples razão que PASSWORD() é a função utilizada pelo MySQL para criptografar as senhas dos usuários do banco. E porque não pode ser descriptografada. Ver manual do MySQL versão 5.0 Seção 12.9.2. Encryption and Compression Functions O algorítimo para MD5 é conhecido e pode reverter o valor criptografado. Ver mesma referência acima início da seção.
-
A dica pode ser encontrada neste endereço Sistema octal Se houyver mais dúvidas poste aqui o que você já fez e quais as dúvidas encontradas que o auxiliaremos (não faremos o exercício, apenas vamos auxiliá-lo).
-
Sou insistente. Qualquer linguagem de programação poderia abrigar o código com as devidas alterações para a execução do mesmo. mas você tem uma ferramenta pederosa e gurdar esta função no banco de dados dará portabilidade a execução de suas consultas. Então, se você não sabe, esta é uma boa ocasião para aprender. Vamos ter um montão te posts até que você aprenda ou desista. Primeiro responda qual o front end que você usa para manipular as tabelas do mysql? Programas Front End Mysql SqlYog é o meu preferido.
-
Você carregou a função? Ela já faz parte do banco como expliquei no post #4?
-
Maquina nao enxerga banco de dados (firebird) de outra
pergunta respondeu ao ionesuarez de Denis Courcy em Demais Bancos
Oi Ionesuarez! Favor Informar o tipo de banco (mysql, access, db2, oracle, firebird, etc), pois cada um destes tem um tipo de conexão. Outro problema pode ser como o programador informou, internemante ao sistema, onde está o banco. Se disse que está em c:, por exemplo, e você mapeou x: o programa não conseguirá achar o banco. Outro fator é forma de abertura do banco definida pelo programador. Se definiu que a abertura do banco é exclusiva e não comprtilhada, então somente um terá acesso. Como você pode ver há algumas variações que necessitam de maiores informações para que possamos auxiliá-la.