-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
(Resolvido) por que esta dando erro nesse comando sql?
pergunta respondeu ao Greed de Denis Courcy em Delphi, Kylix
Pode manter a data no formato string e o DateTimePicker, mas tem que mudar o código para que a leitura e a gravação não sejam impedidas. -
(Resolvido) por que esta dando erro nesse comando sql?
pergunta respondeu ao Greed de Denis Courcy em Delphi, Kylix
Oi, 'Greed'! Se o campo data é string seu comando que está assim DM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = :AGENDA'); DM.QueryAgenda_Consulta.Params[0].AsDate := Date; Não deveria ser assim?DM.QueryAgenda_Consulta.Sql.Add ('WHERE Data_consulta = :AGENDA'); DM.QueryAgenda_Consulta.Params[0].AsString := Datetostr(Date); -
(Resolvido) por que esta dando erro nesse comando sql?
pergunta respondeu ao Greed de Denis Courcy em Delphi, Kylix
Oi, Erso! Foi por isso perguntei qual o tipo de banco ele está usando. existem diversos formatos de data e diversos bancos usando padrões diferentes. Um exemplo prático é o MySQL que a data é no formato aaaa-mm-dd. -
(Resolvido) por que esta dando erro nesse comando sql?
pergunta respondeu ao Greed de Denis Courcy em Delphi, Kylix
DM é o meu DataModule Que banco você está usando? Data_consulta tem o mesmo formato de agenda? Ele não está entendendo que o conteúdo da variável "agenda" deve ser comparado a um formato data. -
(Resolvido) Cadastro e visualização do código gerado aut. pelo My
pergunta respondeu ao Alex Xavier de Denis Courcy em PHP
Tal como está no manual do MySQL. 6.3.6.2. Funções Diversas Versão 4.1 SELECT LAST_INSERT_ID(); -
media anual e mensal clicando no mes desejado
pergunta respondeu ao brunocasado de Denis Courcy em PHP
Oi 'brunocasado'! Você quer que sua tabela seja como no exemplo hipotético abaixo? | PRODUTO | JAN | FEV | MAR | ... | NOV | DEZ | TOTAL | | a | 3 | 5 | 6 | ... | 9 | 4 | 30 | | b | 4 | 2 | 8 | ... | 7 | 4 | 25 | ... | z | 8 | 3 | 2 | ... | 4 | 4 | 40 | então seu SQL deverá ser assim: SELECT produto, SUM(IF(MONTH(data) = 1, qtd, 0)) AS JAN, , SUM(IF(MONTH(data) = 2, qtd, 0)) AS FEV, SUM(IF(MONTH(data) = 3, qtd, 0)) AS MAR, ... , SUM(IF(MONTH(data) = 11, qtd, 0)) AS NOV, , SUM(IF(MONTH(data) = 12, qtd, 0)) AS DEZ, SUM(qtd) AS TOTAL FROM tabela WHERE data BETWEEN '2007-01-01' AND '2007-12-31' GROUP BY produto; -
Oi, paulobetto ! Seu problema é bem básico e seria resolvido se você soubesse um pouco mais de SQL. Para poder ajudá-lo responda as questões abaixo que estão relacionadas à sua pergunta Como você gostaria que os registros viessem? Filtrado por algum campo? Ordenado por algum campo?
-
(Resolvido) Instalação do mysql-essential-6.0.4-alpha-win32
pergunta respondeu ao neoerick de Denis Courcy em MySQL
Oi, 'neoerick'! O MySQl, quando da criação de constraints pressupõe que você já tenha criado os índices que serão usados como foreign Keys. Pelo que ví isto não aconteceu, então sugiro que você refaça seus alter tables com as seguintes instruções. alter table cliente add constraint FK_cliente_IX_002 foreing key (nick_turma) references turma(nick_turma) add constraint FK_cliente_IX_003 foreing key (nick_ou_matricula) references usuario(nick_ou_matricula); alter table usuario add constraint FK_usuario_IX_002 foreing key (log_estados) references estados(log_estados); alter table teste add constraint FK_teste_IX_002 foreing key (numero_perguntas) references pergunta(numero_perguntas); alter table pergunta add constraint FK_pergunta_IX_002 foreing key (numero_questao) references questao(numero_questao); alter table perfil_profissional add constraint FK_perfil_profissional_IX_002 foreing key (numero_questao) references questao(numero_questao); Leia o Manual de vua versão do MySQL. Muitas de suas dúvidas serão sanadas lá. -
Oi, 'JurisCode'! Fiz um DER do que você pediu. Está em anexo a este post. se houver dúvidas e ou comentários, favor retornar. Biblia.pdf
-
Oi, VTAVARES! O que você está pedindo faz parte de um artigo que estou escrevendo e que se refere a referência cruzada tipo a que o MS Access Faz. No seu caso é mais simples pois, pelo que você informou, há campos fixos para as colunas que, no caso, são: hora0, hora1 e hora2. Vamos ao código: SELECT produto, SUM(IF(hora=0, qtde, 0)) as Hora0, SUM(IF(hora=1, qtde, 0)) as Hora1, SUM(IF(hora=2, qtde, 0)) as Hora2 FROM tabela É importante que só haja um lançamento para cada hora em cada produto, ou el vai te retornar a soma dos mesmos. É importante, também, que haja um índice por produto. se não houver vai haver TABLESCAN e o tempo de resposta vai crescer exponencialmente conforme o crescimento da tabela.
-
Oi, 'Ronaldo Bueno' Sua dúvida não é sobre um autorelacionamento. O que encontrei foi um relacionamento muitos pata muitos, pois, de acordo com o que você escreveu, um nome de departamento pode estar em diversos sites e cada site pode ter diversos nomes de relacionamentos. Vide anexo sites_vs_deptos.pdf A montagem das tabelas é simples o relacionamento entre elas está nos atributos iniciados por ID. Veja se você consegue prosseguir e informe se houver proplemas. Sites_vs_deptos.pdf
-
Use a função UPPERCASE para transformar tudo em maiúscula, então compare com o que você quer (também em maiúscula) Exemplo if pos('EDUARDO', UpperCase(memo.text))>0 then resp:='achou' else resp:='não achou'; Leia o manual ou o help do Delphi. Tem um montão de informações interessantes lá.
-
De que banco para que banco? Se MySQL de que versão para que versão?
-
(Resolvido) auto incremento personalizado
pergunta respondeu ao antonio.ajsl de Denis Courcy em MySQL
Oi, Antonio! O que o Micheus falou está correto. Para que você não precise se preocupar com a inclusão destes dados, criei uma trigger de inclusão de dados que implementa o auto_increment do jeito que você quer. Segue o código abaixo: DELIMITER $$; DROP TRIGGER `test`.`TriggerIncl_PlanoContas`$$ CREATE TRIGGER `test`.`TriggerIncl_PlanoContas` BEFORE INSERT on `test`.`planocontas` FOR EACH ROW BEGIN declare numero integer; Set numero = (select max(CodRed) From planocontas where idGrupoConta = new.idGrupoConta); if (numero <= 0) or (numero is null)then set numero = (new.idGrupoconta * 1000) + 1; else set numero = numero + 1; end if; set new.CodRed = numero; END$$ DELIMITER;$$ Um abraço -
(Resolvido) Como exportar em XLS o resultado de uma consulta?
uma questão respondeu Denis Courcy em MySQL
Exporte em CSV. e importe no excel como arquivo txt separado por virgula. Vou usar um exemplo que está no manual do MySQL 4.1 Capítulo 6 - Seção 6.4.1. Sintaxe SELECT SELECT a,b,a+b INTO OUTFILE "/tmp/result.text" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM tabela_teste; -
Não. Quero dizer que se linha é "xxxxxxxxx08:15xxxxxx" quando pegar substring(linha 10,5) vou obter "08:15" que é uma hora válida. Mas se em vez de "08:15" tiver "8:15" como neste exemplo, "xxxxxxxxx8:15xxxxxx" e eu pegar substring(linha 10,5) vou obter "8:15x" que não é uma hora válida. E pode haver outros erros, tais como "815" ou "8 15" ou "08 15", etc. Verifique os dados. Como mais um recurso, modifique o select onde está "TIME(SUBSTRING(linha, 10, 5)) AS Hora" passe para"SUBSTRING(linha, 10, 5) AS Hora"
-
Eu uso o MySQL Admin em substituição ao WinMySqlAdmin e como gerenciador de banco de dados, o SQLYog que tem uma versão free. O Mysql tem um que é legalzinho. Veja nos tópicos em destaque neste fórum, o post do Micheus.
-
Você já verificou se o dado na posição em "TIME(SUBSTRING(linha, 10, 5)) AS Hora FROM arquivo" está com o formato correto?
-
Oi, 'garden' Em sua pergunta Resposta: Estabelecendo controle através de linguagem de programação.Não há o que fazer através do MySQL. Um abraço
-
Oi, Well! Desculpe a demora na resposta. Resposta Sim. É a prática utilizada. Resposta: Não posso dizer sem analisar melhor. Modelos de dados errados e falhas de programação, tais como falhas no controle de concorrencia de gravação de dados) são exemplos que certamente causarão inconsistência nos dados). Sim. Observação da regras de normalização, aplicação correta de constraints e programação que observe as regras de gravação em ambientes multiusuários, são as metodologias indicadas para evitar tais falhas.
-
Oi, João Paulo! Para a mudança de versão, Você deveria ter seguido os seguintes passos, se você está usando o SO MSWindows XP: 1 - Backup completo usando o utilitário Mysqldump (em minha opinião a melhor ferramenta de backup do MySQL). 2 - Interromper serviço do MySQL 3.23 3 - Desinstalação completa do MySQL versão 3.23. 4 - Em Serviços no Painel de controle, verificar nome do serviço do mysql 5 - Remover o serviço do MySQL 3.23, se este estiver preso. Na linha de comando (usando utilitario cmd do windows) executar sc delete <nome-do-servio> 6 - Instalar o MySQL 5.0.37 (No mínimo esta versão pois ela está estável) 7 - Recuperar backup usando o utilitário de linha de comando mysql 8 - Editar cada tabela e modificar os seguintes tipos de dados: Decimal para double Numeric para integer, Tinyint, smallint, mediumint ou bigint conforme o tamanho de cada um. Nas chaves primárias que usam campos (int) integer auto_increment, usar integer unsigned Nota Evidt fazer cópia física do banco de dados. O percentual de fracasso na recuperação dos dados é de mais de 50%. Os dados ficam em C:\arquivos de programas\MySQL\MySql 5.0\Data. Sobre o componente ZEOS para Deplhi, use o 6.6. Eu uso o BDE com MyODBC 5. Qualquer dúvida poste novamente. Um Abraço
-
Oi, Valmir! Quando o MySQL começa a fazer este tipo de sacanagem (pois este comando está presente no manual), eu mudo a lógica. tente: WHERE NOT (linha LIKE "********%") AND NOT (linha LIKE " %") AND NOT (linha LIKE "Date Time%"); Ou WHERE SUBSTRING(linha, 1, 10) <> "**********" AND SUBSTRING(linha, 1, 10) <> " " AND SUBSTRING(linha, , 1, 10) <> "Date Time"; Informe sucesso ou fracasso. Um Abraço P.S. Foi bom acontecer o erro pois o OR estsava errado. Era AND.
-
Oi, Valmir! Como falei no post anterior, retire o parêntese Hora )FROM e sua rotina funcionará corretamente. sua rotina deverá ficar assim: INSERT INTO import_atn (Data, Hora) SELECT DATE(CONCAT(SUBSTRING(linha, 7, 2),'-',SUBSTRING(linha, 3, 2),'-20',SUBSTRING(linha, 1, 2)) AS Data, TIME(SUBSTRING(linha, 10, 5)) AS Hora FROM arquivo WHERE linha NOT LIKE "********%" OR linha NOT LIKE " %" OR linha NOT LIKE "Date Time%";
-
Oi, Marcao! Tenho algumas ressalvas a fazer sobre seu código. 1 - Não encontrei utilidade para a tabela cases_cstm; 2 - O formato da data do MySQL é aaa-mm-dd e não precisa do uso de Format_date para comparar. O uso de funções do jeito que você fez (date_format(cases.date_entered, '%Y-%m-%d') >= "2008-03-03") não deixa o MySQl usar índices para otimizar a consulta, o que leva sempre a um TABLE SCAN; 3 - Quando você comparar de uma data ou outro valor numerico está entre um valor e outro (inclusive) use o BETWEEN em vez de fazer o que fez aqui:(date_format(cases.date_entered, '%Y-%m-%d') >= "2008-03-03" AND date_format(cases.date_entered, '%Y-%m-%d') <= "2008-03-10"); 4 - Quanto a sua consulta, o simples uso da função IF resolve melhor que a subselect que você usou; 5 - O MySQL não trabalha bem com o tipo de subquery que você usou. Ver manual do MySQL. 6 - Crie indice não único para o atributo date_entered. Aqueles que usarem sua consulta agradecerão muito. Segue o código: SELECT COUNT(c.id) AS todas, date_format(c.date_entered, '%d-%m-%Y') As data, SUM(IF(c.date_entered = c.data_encerramento, 1 , 0)) as encerradas FROM cases c WHERE c.date_entered BETWEEN "2008-03-03" AND "2008-03-10" GROUP BY c.date_entered
-
Scripts variam de banco para banco. Se você está falando de um banco com padrão SQL (SQL ANSI) este fiaceria assim, segundo seu exemplo: CREATE TABLE nome_da_tabela ( cod_aluno INTEGER NOT NULL, dt_nascimento DATE NOT NULL, RG VARCHAR(20), CPF CHAR(11), Endereco VARCHAR(90), PRIMARY (cod_aluno) ); Aconselho que você procure na net alguns tutoriais sobre SQL e Normalização de bancos de dados relacionais. Só mais uma coisa. Este Tópico deveria ter sido colocado na seção Demais bancos deste fórum.