Jump to content
TeixeiraRamos

Campo data cadastrar

Recommended Posts

Josimar e Gustavo,

Obrigado gente, mas por favor, me permita informar o seguinte. Eu não estou inventando nada tudo que vocês estão vendo faz parte de um capítulo de um livro. Nas páginas números 264 a 279, o autor demonstra e comenta algumas linhas do código. Trata-se do livro MsSQL - Guia de Programador - André Milani - Ed. novatec.

Acontece que no livro não tem exemplo de campo com data dai que eu entrei com mais esse campo para aprender.  Todo o código do autor cadastra, altera e exclui registros no banco de dados. Sem Erro!

Só apresenta erro quando entro com o campo "date". 

Se eu tenho que assumir a responsabilidade dos erros que a postagem é minha eu assumo. Mas sinceramente a única coisa que fiz foi entrar no banco de dados incluir mas um campo data e alterei o código nos locais necessários.  

Mas em nenhum momento eu criei:

 

Citar

If Request.QueryString("acao") = "adicionar"

 

Josimar (da terra da minha mulher), conheço PE, terra boa...

Se eu errar naquilo que você sugere pode meter a bronca, puxar orelha...

Aqui coloquei SQL diretamente no HTML. Mas não acontece nada.

'Caso ocorra um erro, prossiga até o tratamento de erro
On error resume next
'Verifica se o arquivo foi chamado a partir de um formulário
If Request.QueryString("acao") = "adicionar" then
   sql =  "INSERT INTO livros (livro, autor, editora, data_inicio) VALUES ('Teste Forum', 'Josimar', 'Josimar Livros', '2017-07-18')" 

Esse formulário chamado gerencia-registro.asp abre com dois link:

Clique aqui para inserir um novo registro.
Clique aqui para visualizar os registros.

Se eu clicar em "...inserir um novo registro..." abre a página inserir.asp  com os campos em brando para entrar com um novo registro.

Se eu clicar em "...visualizar os registros..." abre a página lista.asp onde mostra todos os registros.

Concordo que eu ao entrar com esse campo date posso está errando em alguma coisa (considerando que o Gustavo postou que na função não tem erro) na SQL.

Vou voltar a fazer um exame acurado no código.

Obrigado.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Não amigo, não estamos aqui pra puxar orelha de ninguém rsrsrs. Nós apenas estamos partilhando de seu problema para tentarmos encontrar uma solução.

 

Você está usando banco de dados mySql ou MsSQL?

 

Vi que acima quando você mencionou o livro do autor você citou MsSQL (Microsoft SQL)

Share this post


Link to post
Share on other sites

Valeu Josimar,

Puxar orelha é só uma força de expressão. Desculpe alguma coisa.

O nome correto do livro é "MySQL - Guia do Programador - autor André Milani - Ed. novatec."

Com relação ao nome do livro desculpe também.

Já fiz diversas tentativas, mas ainda não foi possível.

Continua o erro que aponta para a página gerencia-registro.asp:

Citar

Erro: [MySQL][ODBC 3.51 Driver][mysqld-5.7.13-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

  Onde sugere ser a SQL, mas onde?

Mais um vez muito obrigado Josimar pela atenção.

Share this post


Link to post
Share on other sites

tente colocar esse trecho no inicio da página asp vai ter que salvar no banco no ato que a página abrir independente de qualquer ação... vamos fazer salvar no banco...

<%

sql =  "INSERT INTO livros (livro, autor, editora, data_inicio) " 
sql = sql & "VALUES ('Teste Forum', 'Josimar', 'Josimar Livros', '2017-07-18')" 
'Executa a expressão SQL no servidor
cnnDB.Execute sql

%>

 

Share this post


Link to post
Share on other sites

Bom dia a todos,

Vamos lá Gustavo e Josimar,

Primeiro vamos a um dos meus erros grave que estava gerando esse "Erro". A função InverteDataMySql abaixo sugerida desde o início:

Function InverteDataMySql(data_inicio)
if not isdate(data_inicio) then exit function
if instr(data_inicio, " ") > 0 then
hora  = split(data_inicio, " ")(1)
end if
InverteDataMySql = year(cdate(data_inicio)) & "-" & month(cdate(data_inicio)) & "-" & day(cdate(data_inicio))
if hora <> "" then InverteDataMySql = InverteDataMySql & " " & hora
End Function 

deveria ficar dentro do formulário gerencia-registro.asp e estava no inserir.asp.

Bastou eu colocar a função no formulário certo e tudo foi resolvido.

Entendo que tem que ser uma coisa de cada vez, mas já pensaram o que tem dentro de uma "form":

checkbox, list/Menu etc e onde vamos achar isso para estudar, fazer, testar?

Desculpes os autores, mas os livros só mostram exemplos de campo texto.

Bem é a vida...se vocês descobrirem livro, apostila etc para estudar HTML com ASP interagindo com MySQL por favor me avise.

Obrigado por tudo, inclusive Josimar tenho um amigo que também não usa função, segundo ele: " sem função... só manipulando as variáveis...". Vou testar depois, sem função, agora Não! Salvei 10 vezes os formulários inclusivo o da função e imprimi.   

Até a próxima e muito sucesso para vocês!!!

 

 

 

 

 

 

 

 

 

  • +1 1

Share this post


Link to post
Share on other sites

Josimar,

Não achei do Neri Neitzke nada sobre ASP,  MySQL?

Curso ASP.NET depois vou querer sim.

Obrigado!

Share this post


Link to post
Share on other sites

Minha gente, boa noite,

Ainda tenho um problema. Nem sempre vou ter que digitar data.

Devo colocar na SQL, NULL?

Estou entrando com registro e, não digito data, mostra erro assim:

Citar

Erro: [MySQL][ODBC 3.51 Driver][mysqld-5.7.13-log]Incorrect date value: '' for column 'data_inicio' at row 1

Direto no banco entro com (NULL) e tudo bem. Mas no ASP não tem condições.

 

Share this post


Link to post
Share on other sites

Com relação a função nem me atentei da mesma não estar no arquivo por ser uma função genérica que pode ser usada em várias páginas ASP o melhor seria não colocar na página a ser usada e sim numa página específica de funções e depois dar um include nas páginas que forem usar tais funções desta forma evita até redundâncias de códigos dificultando em manutenções tendo que corrigir em diversas páginas a mesma coisa... exemplo:

 

ARQUIVO FUNCOES.ASP

Function SomaValor(v1,v2)

SomaValor = cdbl(v1)+ cdbl(v2)

End Function

 

Function TiraEspaco(Texto)

for i = 1 to 100

TiraEspaco = replace(Texto," ","")

next

End Function

 

FIM  DO ARQUIVO FUNÇÕES

 

ARQUIVO CLIENTES.ASP

<!--#include file="FUNCOES.ASP"-->

 

<%

if request("botao") = "SALVAR CLIENTE" then

nomecliente  = TiraEspaco(request("nomecliente"))

end if

%>

<form name="form">

...

</form>

FIM DO ARQUIVO CLIENTES.ASP

 

Como pode ver a função tiraespaco não está diretamente na página clientes.asp mas foi referenciada de funcoes.asp do jeito que foi incluída o arquivo é porque está na mesma pasta se estivesse fora desta pasta é só deixar assim:

<!--#include file="../FUNCOES.ASP"-->

 

agora com relação ao campo está vazio lá no banco deve permitir valor nulo...

 

 

 

 

Share this post


Link to post
Share on other sites

OK.

Obrigado, vou aproveitar suas sugestões.

Muito obrigado.

Sucesso para você e sua Família.

Fique com Deus.

Share this post


Link to post
Share on other sites

Pessoal Boa Noite.

Tive um sério de problema. A data só entrava no formulário inserir (INSERT INTO...) com a função.

Ocorre que se Editar tem que entrar com a data novamente. Em fim...tentei de tudo.

Estou tentando entrar com a formatação direto na SQL.

Postei na área MySQL.

Por favor moderador, não sei se aqui poderia fechar.

Pode me ajudar?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By RAFAEL HENRIQUE DE SOUZA
      Boa noite pessoal. 

      Estou com um problema e não consegui sair do lugar, tenho uma tabela de documentos (id, doc, path, ext, id_cli) e outra tabela de controle contendo o Id_documento, tipo_doc, data_criacao.
      Preciso informar se o documento listado ja foi substituído.
      A regra é a seguinte: Para o documento de mesmo cliente e mesmo tipo ele compara as datas alimentando a coluna de status para o mais recente e substituído par os demais.
      Segue o código para ajuda.

      create table `tb_documento` (
          `ID_DOCUMENTO` int (11),
          `DOCUMENTO` varchar (60),
          `PATH` varchar (60),
          `EXTENCAO` varchar (15),
          `ID_CLIENTE` int (11)
      ); 
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('1','TESTE1','C:\\DOCUMENTOS','PDF','1');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('2','TESTE DOC','C:\\DOCUMENTOS','XLS','1');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('3','ASLJDBASIHD','C:\\DOCUMENTOS','XLS','1');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('4','EXTREME','C:\\DOCUMENTOS','PDF','1');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('5','TESTE NOVO','C:\\DOCUMENTOS','DOC','2');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('6','WIN','C:\\DOCUMENTOS','DOC','2');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('7','XTREME','C:\\DOCUMENTOS','PDF','2');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('8','SAMSUNG','C:\\DOCUMENTOS','XLS','2');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('9','CPD','C:\\DOCUMENTOS','DOC','3');
      insert into `tb_documento` (`ID_DOCUMENTO`, `DOCUMENTO`, `PATH`, `EXTENCAO`, `ID_CLIENTE`) values('10','QQWAS','C:\\DOCUMENTOS','PDF','4');
      -------------------------------------------------------------------------------------
      create table `tb_tipo_documento` (
          `ID_TIPO` int (11),
          `ID_DOCUMENTO` int (11),
          `DATA_CRIACAO` datetime 
      ); 
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('1','1','2019-06-23 18:18:15');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('3','2','2019-06-24 18:19:52');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('2','3','2019-06-19 18:20:22');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('4','9','2019-06-11 18:31:21');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('4','10','2019-06-07 18:31:44');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('5','5','2019-06-26 18:32:15');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('1','4','2019-06-03 18:32:21');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('1','6','2019-06-01 18:36:17');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('3','7','2019-06-14 18:36:35');
      insert into `tb_tipo_documento` (`ID_TIPO`, `ID_DOCUMENTO`, `DATA_CRIACAO`) values('1','8','2019-06-20 18:36:59');
      ------------------------------------------------------------------------

      Modelo de resultado esperado:
      SELECT 
          TD.*,
          TTP.ID_TIPO,
          TTP.DATA_CRIACAO,
          '' AS 'STATUS'
      FROM 
          TB_DOCUMENTO TD
      LEFT JOIN 
          TB_TIPO_DOCUMENTO TTP ON TTP.ID_DOCUMENTO = TD.ID_DOCUMENTO;
      ----------------------------------------------------------------------
      Pessoal muito obrigado, qualquer ajuda é bem vinda!
       
    • By TeixeiraRamos
      Olá,
      Com essa "Procedures" consigo criar a coluna data e semana.
      Como poderia fazer para a "Precedures" criar uma outra coluna só com o dia e o mês, como por exemplo: 27 de fevereiro
      Obrigado
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tb02_santosdodia(ctb02_datasantosdia, ctb02_diassemanas) VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END  
       
    • By TeixeiraRamos
      Olá,
      Por favor favor, em um script tenho:
      <?php $sql = "SELECT pensamento_do_dia FROM tbpdodia WHERE data_inicio = CURRENT_DATE"; . . . ?> Meu computador a data e a hora se encontram normal.
      Contudo, 2 (duas) horas antes das 00:00 a data muda, só no site, para o dia dia seguinte.
      Ontem, 23/02/2019, às 19:00 estava no site 23/12/2019 (igual ao computador). Quando chegou mais ou menos às 22:01, abri o site já se entrava a data 24/02/2019.
      A query dentro das linhas <?php ?> também influencia. Tenho que colocar algo na sql com current_date. 
    • By asacap1000
      Salve Galera, estou quase finalizando um relatório porém travei em um campo.
      Este relatório consiste em subtrair hora de entrada e saída, trazer em dias horas e minutos de um período.
      Depois preciso calcular a média destes resultados.
      eu barrei na parte de dias não vem a informação correta.
       
      Segue select se alguem puder me dar uma força.
       
      SELECT io.id_in_out, IOP.DOCUMENT,IO.TIME_IN entrada, IO.TIME_RELEASE_PP saida, LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) /24 )), 2, '0') || ':' || LPAD(TRUNC(((IO.TIME_RELEASE_PP - IO.TIME_IN) * 24 )), 2, '0') || ':' || LPAD(TRUNC(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600) / 60), 2, '0') || ':' || LPAD(TRUNC(MOD(MOD((IO.TIME_RELEASE_PP - IO.TIME_IN) * 86400, 3600), 60)), 2, '0') TEMPO FROM DESMEMBR DD, IN_OUT_POS IOP, IN_OUT IO, SPEDITEURE S, VEHICLE V, DRIVER D WHERE DD.TYP_PROCESS = 'DINACI' AND 'DI' = IOP.TYP_DOCUMENT AND DD.NR_DI = IOP.DOCUMENT AND IOP.ID_IN_OUT = IO.ID_IN_OUT AND IO.ART_IN_OUT IN ('CA', 'CC', 'CCE') AND IO.STAT <> '80' AND S.ID_SPEDITEUR = IO.ID_SPEDITEUR AND V.ID_VEHICLE = IO.ID_VEHICLE AND IO.TIME_IN >= TO_DATE('01/12/2018', 'dd/mm/yyyy') AND IO.TIME_IN <= TO_DATE('31/12/2018', 'dd/mm/yyyy') AND D.ID_DRIVER = IO.ID_DRIVER O resultado acima está vindo assim:
       
      1    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
      2    378470    1211942181    14/12/2017 09:35:41    14/12/2017 13:32:31    00:03:56:50
       
      Depois de acertar isso preciso realizar a média que a principio eu utilizaria o AVG mas dá erro.
       
      Agradeço quem puder me ajudar.
    • By Nioshi
      Bom dia pessoal, tenho o seguinte problema, meu back-end com PHP precisa fazer um select no banco de dados SQL server, e uma das condições para pegar o dado é a data, até ai sem problemas, se eu utilizar:
      $dataInicio = $dataInicio->format('d/m/Y'); ele pega o dado sem problema algum do meu banco, porem quando foi tentado implementar em outro SQL Server, ele retorna o seguinte erro: 
      SQLSTATE [22007, 242]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]A conversão de um tipo de dados nvarchar em um tipo de dados datetime resultou em um valor fora do intervalo. ou seja, eu acho que o problema é a forma que o sql foi instalado(inglês,português), enfim, o que eu realmente preciso e se tem como eu saber o dateformat do SQL server, antes de setar a variável da data para consulta.
       
      no SQL do cliente se colocar o seguinte código:
      $dataInicio = $dataInicio->format('m/d/y'); ele também funciona sem problema algum, o que eu preciso saber é quando utilizar qual.
       
      Obrigado desde já.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.