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. Sim Sim. Não há necessidade de mudar a sintaxe atual. Talvez precise criar outro índice para otimizar sua consulta.Que ferramenta você usa para gerenciar o banco de dados? Eu uso o SQLyog for Windows. Para visualizar a estrutura atual de sua tabela com os índices, digite SHOW CREATE TABLE <nomedatabela>
  2. Oi, Lucas Se você não trabalhar com indices você vai "sentar", literalmente, o servidor MySQL. Pois, para cada linha comparada na tabela da esquerda ele terá que varrer toda a tabela da direita. Isto quer dizer que se sua tebela da esquerda possuier 1000 registros e na tabela da direita possuir 10000, então ele lerá 1000 x 10000 linhas. O que equivale a 10.000.000 de linhas lidas. Leia sobre criação de indice no manual do MySQL de sua Versão.
  3. Denis Courcy

    Erro na tabela mysql

    Coloque o comando USE `avalon`; antes de criar esta tabela. Supondo que `avalon` seja o nome de seu banco de dados. Este comando acionará e posicionará sua instrução no banco de dados.
  4. Leia o capítulo 19.4. Using the Event Scheduler no manual do MySQL Versão 5.1
  5. Esta tarefa deve ser rodada através de uma procedure e colocada no schedulle do MySQL. O schedulle do MySQL só existe a partir da versão 5.1x.
  6. Denis Courcy

    Erro my sql

    Pode, por favor, mostrar o create table destas duas tabelas contendo, apenas, os atributos que você mencionou acima? Exemplo do que quero: CREATE TABLE `blog` `categoria` definição de como foi criado este atributo CREATE TABLE `categoria` `CODIGO`definição de como foi criado este atributo Não preciso saber mais nada. somente isto.
  7. Oi 'shakall' Vamos por partes: Modifique seu sql para que fique assim: SELECT DISTINCT DS_POSICAO FROM POSICAO_GPS WHERE CD_EMPRESA=17 AND DS_POSICAO IS NOT NULL AND (NR_LAT BETWEEN "-12.92493" AND "-12.91493") AND (NR_LOG BETWEEN "-49.43828" AND "-49.40828") ORDER BY DT_POSICAO DESC LIMIT 1 Crie um indice por NR_LAT e NR_LOG CREATE INDEX `nomedoseuindice` ON `posicao_gps` (`NR_LAT`, `NR_LOG`) Faça testes e reporte resultado.
  8. 'Panthro' Não entendo nada de PHP. O código SQL correto é este "SELECT usuario, SUM(vlrliberado) AS vlrliberado FROM premiacao GROUP BY usuario";. O MySQL Converte automaticamente strings para números com ponto decimal. Tenha certeza que seus valores estejam no formato americano (ponto para decimal e virgula para milhar) ou seu código não somará nada. Verifique se há a possibilidade de modificar o tipo destes atributos para double. É melhor para o MySQL e não haverá erros de cálculos.
  9. 'Panthro', Faça assim: SELECT usuario, SUM(vlrsolicitado) AS vlrsolicitado, SUM(vlrliberado) AS vlrliberado FROM premiacao GROUP BY usuario
  10. 'marcosfj1', Faça assim: UPDATE pedido SET importacao = 1 WHERE `id_pedido` IS NOT NULL AND (`id_pedido_status` = 2 OR `id_pedido_status` = 3) AND `dt_pedido` < "2011-01-01";
  11. Oi 'shakall', Carreguei sua tabela em minha base de testes e apliquei testes com a latitude no formato numérico (como você passou). Ele não usou o índice apesar de ter informado que há um índice possível (Index 8) No formato caracter (formato de definição do atributo na tabela), ele retornou usando o índice Index 8. O erro está na forma como você se referenciou a constante (-19.68916) na cláusula where. Para manter do jeito que você colocou (com constante no formato numérico) você deverá forçar o uso do índice com a cláusula USE INDEX (nomedoindice) assim:explain select * from posicao_gps USE INDEX (`Index 8`) where nr_lat= -19.68916; Porém o uso de explain select * from posicao_gps where nr_lat= '-19.68916'; é mais eficiente.
  12. Comigo funciona dentro do SQLYOG (Ferramenta que eu uso para manipular o banco MySQL). Você pode conferir dando um select na tabela triggers dentro do banco information_schema. O banco Information_schema é só para consulta. Não tente mudar os dados dentro dele. Vai dar M.
  13. Não. Ações diferentes, Instruções separadas.
  14. Executando uma segunda instrução que verificasse se o valor é igual a zero para aquele registro específicao. Algo parecido com o abaixo: delete from minhatabela where meuvalor = 0 and ID = valorDoIDNaqueleRegistro;Entenda por ID o campo chave primária de sua tabela.
  15. Você não conseguirá excluir um registro de uma tabela, através de um trigger, se este registro estiver sendo 'usado' por outro comando sql de alteração (insert/update/delete) da mesma tabela. Você sempre receberá a mensagem: Você pode alterar (incluir/excluir) registro de outra tabela mas não da tabela que você está trabalhando no momento.
  16. Poderia explicar melhor, por favor? Não consegui entender o que você quer deletar.
  17. Obrigado, Jhonas. Vou estudar o material e, se houver novas dúvidas, postarei aqui novamente. Jhonas, Analisei o material que você recomendou. O último site eu conheço, pois foi o que eu usei como exemplo para a montagem do meu código de dragdrop. Ele ensina como mover um TImagem de cada vez. O outro site ( que vem com os fontes que você passou, também traz um executável (ótimo porque aqui onde estou não tenho o Delphi. Só em casa). Neste executável eu só consegui mover uma imagem de cada vez. Eu preciso mover mais de uma. Estou desenvolvendo um jogo (wargame) em que em um hexágono podem existir até 4 unidades (cada unidade uma imagem). Necessito saber como mover as 4 imagens de uma única vez. Tem alguma idéia? De qualquer forma já foi de grande valia pois agora já sei como mover mostrando uma "sombra" da imagem que está mudando de posição.
  18. Obrigado, Jhonas. Vou estudar o material e, se houver novas dúvidas, postarei aqui novamente.
  19. Use a função concat SELECT CONCAT("'",codcli,"'") AS codcli from contasreceber where datavencimento IS NOT NULL and DATEDIFF(datavencimento, NOW()) < 0 and baixa='não' group by codcli" nova
  20. Oi Jhonas, Desculpe a demora na resposta. Sim, esta é a idéia e sim, será outro componente image.
  21. Seu SQL está correto, porém não conheço a linguagem de programação. Moverei seu tópico para a área apropriada. Movendo MySQL -->> PHP
  22. Oi 'Spyder.RV' ! Neste caso você precisa criar o SQL em tempo de execução. Isto é feito através de um comando chamado PREPARE que só roda em STORAGE PROCEDURE. Storages procedures possuem parâmetros que podem ser IN, OUT e INOUT. Os parâmetros IN são parâmetros de valores. Ou seja a procedure recebe o valor no parâmetro e não retorna nenhuma informação. Os parâmetros OUT são parâmetros que são alimentados pela procedure e podem ser usados por você em outra tarefa Os parâmetros INOUT são passados por referência, ou seja a procedure recebe o valor, trata o valor e devolve o valor tratado no mesmo parâmetro. Leia no manual do MySQL, o tópico SQL Syntax for Prepared Statements. Abaixo, seu código adaptado a meu banco de testes A procedure DELIMITER $$; DROP PROCEDURE IF EXISTS `test`.`validarRegistro`$$ CREATE procedure validarRegistro(IN v_tabela VARCHAR(255), IN v_nomePK VARCHAR(255), IN v_valorPK INT, OUT retorno INT) BEGIN SET @MeuSQL = CONCAT('SET @Result = (SELECT COUNT(*) FROM ', v_tabela, ' WHERE ', v_nomePK, ' = ', v_valorPK, ')'); PREPARE stmt1 FROM @MeuSQL; EXECUTE stmt1; DEALLOCATE PREPARE stmt1; SET retorno = @Result; END$$ DELIMITER;$$ A chamadaset @ret = 99; call validarRegistro('ator', 'idator', 1, @ret); select @ret;
  23. Bom dia pessoal, Gostaria de saber como posso selecionar dois ou mais objetos TImage em tempo de execução e como fazer drag & drop com eles.
  24. Oi, 'Jalison' Você tem que informar se o valor de vendaitem.prodid é o novo(NEW) ou o antigo(OLD). Neste caso será sempre o novo. Substitua a linha abaixo: UPDATE produto set prodestatual = produto.prodestatual - vendaitem.itemquantidade where prodid = vendaitem.prodid; por estaUPDATE produto p set p.prodestatual = p.prodestatual - NEW.itemquantidade where p.prodid = NEW.prodid;
×
×
  • Criar Novo...