Ir para conteúdo
Fórum Script Brasil
  • 0

Data E O Banco De Dados


cokita

Pergunta

Olá pessoal, eu tenho um problema:

Eu preciso inserir datas no meu banco de dados e não está inserindo!

O que acontece é o seguinte, eu tenho uma porção de dados para serem inseridos inclusive o de Data, abre uma página de cadastro (aonde são inseridos os dados pelo usuario) depois uma de confirmação e finalmente uma action que é aonde realmente é cadastrado no BD. Na tela de cadastro o usuário informa a data no formato: dd/mm/aaaa. Que está sendo tratado como necessária!

Os outros dados são cadastros, mas a data não!!! o que fazer?

Obrigada,

Ana Flávia (Cokita)

mad.gif

Link para o comentário
Compartilhar em outros sites

24 respostass a esta questão

Posts Recomendados

  • 0

que data é essa que ele digita?

a data atual?

se for.. porque você não pega a data pelo asp, e grava ela certa?

se não for.. você vai ter que validar a data dele..

Link para o comentário
Compartilhar em outros sites

  • 0

que data é essa que ele digita?

a data atual?

se for.. porque você não pega a data pelo asp, e grava ela certa?

se não for.. você vai ter que validar a data dele..

É uma data de um determinado processo!

Não é a data atual, mas sim a data em que foi gerado o processo!

Poderia me explicar como valida a data para inserção?

Obrigada!

Ana Flávia

Editado por dark0
Link para o comentário
Compartilhar em outros sites

  • 0

oi

bom, veja só...

o processo é gerado, e a data fica disponivel, certo?

Qual é o formato correto dela?

você pega a data, joga numa variavel (a data toda).

Depois, você começa a trabalhar com a variavel que pegou a data.

EX: data = "09082004"
você faria:
dia = LEFT(data,2)
mes = MID(data,3,5)
ano = RIGHT(data,4)
Depois, você adiciona as barras:
data_nova = dia + "/" + mes + "/" + ano
depois você transforma em data de novo:
data_nova = CDATE(data_nova)

Entendeu?

Mas.. uma coisa eu não entendi..

Porque o usuário digitaria a data do processo?

É a data em que o processo é gerado?

Porque você não pega a data pelo asp mesmo ..?

Se o usuario digitar uma data errada, o que acontece?

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

oi

bom, veja só...

o processo é gerado, e a data fica disponivel, certo?

Qual é o formato correto dela?

você pega a data, joga numa variavel (a data toda).

Depois, você começa a trabalhar com a variavel que pegou a data.

EX: data = "09082004"
você faria:
dia = LEFT(data,2)
mes = MID(data,3,5)
ano = RIGHT(data,4)
Depois, você adiciona as barras:
data_nova = dia + "/" + mes + "/" + ano
depois você transforma em data de novo:
data_nova = CDATE(data_nova)
Entendeu? Mas.. uma coisa eu não entendi.. Porque o usuário digitaria a data do processo? É a data em que o processo é gerado? Porque você não pega a data pelo asp mesmo ..? Se o usuario digitar uma data errada, o que acontece? abraços
Olá, deixa eu te explicar melhor: o meu "projeto" tem 3 telas: 1° de cadastro (que é onde o usuário coloca os dados, foi ai que eu fiz o que você falou à cima) 2° a de confirmação (Onde aparece os mesmos dados da tela anterior, mas agora em formato de texto) 3° a action (que faz finalmente a inserção que é onde eu tenho que fazer alguma coisa para que ele insira a data certa, pois ele está inserindo esta data: 1/1/1900 Desculpe essa data não é quando o processo é gerado é a data de autuação de processo juridico então ele precisa dessa data para cadastrar!!! eu fiz um codigo em java script para testar se a data é verdadeira, então insere, ou era pra inserir né?. Entendeu? meu codigo do action esta assim dê uma olhada:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="../../Connections/Connection.asp" -->
<%
var	v_orgao;
var v_dtautuacao,
	v_interessado,
	v_numprocesso,
	v_objeto;
var d,
	m,
	a,
	autuacaoData;

v_numprocesso  = Session.Contents("processo");
v_orgao = Session.Contents("orgao");
v_dtautuacao = Session.Contents("autuacao");
v_interessado = Session.Contents("interessado");
v_objeto = Session.Contents("objeto");
%> 
<%
 if (v_dtautuacao != "") {
	d = day(v_dtautuacao);
	m = month(v_dtautuacao);
	a = year(v_dtautuacao);
	autuacaoData = m &"/"& d &"/"& a;
 }
%>
<%
var rs = Server.CreateObject('ADODB.Command');
rs.ActiveConnection = MM_Connection_STRING;
//sql.CommandText = "INSERT INTO TB_CGDF_CHAMADO (CD_FUNCIONARIO_CHAVE_USUARIO, CD_TIPOCHAMADO_CHAVE, DS_CHAMADO_DESCRICAO) VALUES ("+ vID_FUNC +","+ vID_TIPO +","+ "'"+ vDESC +"'" +")";
//rs.CommandText = "UPDATE TB_CGDF_CHAMADO SET CD_TIPOCHAMADO_CHAVE = "+v_tipo+", CD_SITUACAOCHAMADO_CHAVE = "+v_situacao+", DS_CHAMADO_DESCRICAO = "+ "'" +v_descricao+ "'" +" WHERE CD_CHAMADO_CHAVE = "+ v_numchamado;
rs.CommandText = "INSERT INTO TB_CGDF_PROCESSO (DT_PROCESSO_DATA_AUTUACAO, NM_PROCESSO_NOME_INTERESSADO, DS_PROCESSO_OBJETO, CD_ORGAO_CHAVE, NM_PROCESSO_NUMERO_PROCESSO) VALUES     ("+"'"+autuacaoData+"'"+","+"'"+v_interessado+"'"+","+"'"+v_objeto+"'"+","+v_orgao+", "+v_numprocesso+")";
rs.Execute();
rs.ActiveConnection.Close();
%>

<html>
	<head>
  <!--<meta http-equiv="refresh" content="0; url=index-but.asp">-->
  <base target="_self">
</head>
<body bgcolor="#DEEBBE">

	<script language="javascript">
  alert("Dados cadastrados com sucesso! ");
  window.location = "index-but.asp";
  //84021066
	</script>

</body>
</html>

Editado por dark0
Link para o comentário
Compartilhar em outros sites

  • 0

Olá

Antes de ler sua resposta, quero lhe dizer uma coisa:

Sempre que você for postar alguma resposta, e quiser colocar o comentario de alguém no seu texto, utilize o botao QUOTE, que tem suspenso ali em cima.

E Sempre que colocar algum CODIGO, utilize a tag CODE ali em cima

Certo?

É só um aviso, pois eu editei seus 2 posts já, pra arrumar.. senao fica ruim de ler suas respostas..

Abraços,

Dark

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, deixa eu ver se eu entendi..

o Usuário digita a data, e você tem que validar ela, certo?

Então, você vai ter que fazer mais ou menos aquilo que eu coloquei lá

O usuário digita a data, você pega ela e faz as validações..

você quer fazer por javascript? Tudo bem, pode fazer sim..

Mas aí acho que isso deve ser postado na área de Javascript..

Pois aqui é ASP né..

então, O que você pretende fazer?

Seu script tá muito cheio de coisa, é complicado, hehe

Parece que foi gerado pelo Dreamweaver.. pelo tipo de variaveis

Mas, então, você pretende fazer alguma coisa em Javascript, ou em ASP mesmo?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Ok vou tentar fazer em ASP

no meu codigo antes do insert eu coloquei esse código:

var           dia,
	mes,
	ano,
	data_nova,
                v_dtautuacao;

if (v_dtautuacao != "") then

	dia = LEFT(data,2);
	mes = MID(data,3,5);
	ano = RIGHT(data,4);
	data_nova = dia + "/" + mes + "/" + ano;
	data_nova = CDATE(data_nova);
end if
e ta dando o seguinte erro:
Tipo de erro:
Erro de compilação do Microsoft JScript (0x800A03EC)
';' esperado
/portal/07_sistemas/05_Processos/ca_action.asp, line 27, column 4
end if

Então pode me ajudar?

Obrigada!!!

Link para o comentário
Compartilhar em outros sites

  • 0

puts

você fez no dreamweaver, né?

seu codigo está muito extenso?

Pois, o dreamweaver gera um codigo em Javascript, no meio do ASP.. e tira todo o padrão do codigo! (outra coisa que odeio no Dreamweaver, hehe)

A primeira linha do seu codigo, deve estar declarando que a linguagem a ser usada será javascript, né?

Experimenta tirar ela fora..

Pois, entenda só:

O padrão de páginas ASP, é usar os comandos/conceitos da linguagem vbscript. Quando você faz um codigo pelo Dreamweaver, ele muda o padrão, e começa a usar javascript.

Então, a forma que eu te passei ali, é usando o padrão do ASP, ou seja.. VBSCRIPT.

Como seu codigo foi gerado pelo Dreamweaver, não vai funcionar, pois a linguagem do Dreamweaver é Javascript, e não VBScript.

Entendeu?

Por isso perguntei:

Seu codigo é muito extenso? Porque, se ele for muito extenso, acho que vai dar muito trabalho mudar todo ele pra VBscript..

Mas, se for pequeneninho, acho que dá pra fazer sim!

então, diz aí, qual é a primeira linha do seu codigo?

Link para o comentário
Compartilhar em outros sites

  • 0

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>

Essa é a primeira linha do meu código!!!

Depende d o q será extenso pra você aki a pagina de inserção mesmo equivalem a 50 linha incluindo os html's e uma janelinha em JavaScript ...

Sim eu fiz no dreamweaver sim mas a página em questão foi quase toda feita a mão!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Só por essa linha que você mostrou aí..

Nota-se que foi feito com Dreamweaver, hehe

Ele sempre enche de lixo os codigos!

Bom..

Posta aí o codigo pra mim dar uma olhada

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Sim Bareta.

Sem especificar qual linguagem será usada, o código passa a usar a linguagem padrão do ASP. O VBScript!

Se for especificado JAVASCRIPT, como linguagem.. Todos os comandos.. como IF, FOR, WHILE, vão ser completamente diferentes dos comandos ASP normais.

Pois eles passam a usar o conceito de Javascript para interpretar os codigos.

Entendeu?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Ai está meu código com os devidos comentário com o que foi criado pelo Dreamweaver e o que foi digitado!!! está ilustrado com o "//" na frente ...

Dê uma olhadinha!!

Abraços

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="../../Connections/Connection.asp" -->
<%
var	v_orgao;
                v_dtautuacao,
	v_interessado,
	v_numprocesso,
	v_objeto;
                dia,
	mes,
	ano,
	data_nova;

// eu que criei... até...	
v_numprocesso  = Session.Contents("processo");
v_orgao = Session.Contents("orgao");
v_dtautuacao = Session.Contents("autuacao");
v_interessado = Session.Contents("interessado");
v_objeto = Session.Contents("objeto");

 if (v_dtautuacao != "") 
{	dia = LEFT(v_dtautuacao,2);
	mes = MID(v_dtautuacao,3,5);
	ano = RIGHT(v_dtautuacao,4);
	data_nova = dia + "/" + mes + "/" + ano;
	data_nova = CDATE(data_nova);
}

// aki...
//o recordset eu criei no dreamweaver mas o insert foi feito à mão

var rs = Server.CreateObject('ADODB.Command');
rs.ActiveConnection = MM_Connection_STRING;
rs.CommandText = "INSERT INTO TB_CGDF_PROCESSO (DT_PROCESSO_DATA_AUTUACAO, NM_PROCESSO_NOME_INTERESSADO, DS_PROCESSO_OBJETO, CD_ORGAO_CHAVE, NM_PROCESSO_NUMERO_PROCESSO) VALUES     ("+"'"+data_nova+"'"+","+"'"+v_interessado+"'"+","+"'"+v_objeto+"'"+","+v_orgao+", "+v_numprocesso+")";
rs.Execute();
rs.ActiveConnection.Close();
%>

<html>
	<head>
  <!--<meta http-equiv="refresh" content="0; url=index-but.asp">-->
  <base target="_self">
</head>
<body bgcolor="#DEEBBE">

	<script language="javascript">
  alert("Dados cadastrados com sucesso! ");
  window.location = "index-but.asp";
  //84021066
	</script>

</body>
</html>	

Link para o comentário
Compartilhar em outros sites

  • 0
Sim Bareta.

Sem especificar qual linguagem será usada, o código passa a usar a linguagem padrão do ASP. O VBScript!

Se for especificado JAVASCRIPT, como linguagem.. Todos os comandos.. como IF, FOR, WHILE, vão ser completamente diferentes dos comandos ASP normais.

Pois eles passam a usar o conceito de Javascript para interpretar os codigos.

Entendeu?

Abraços

sim.... valeu dark

Link para o comentário
Compartilhar em outros sites

  • 0

posta aí o connection.asp

você tem MSN?

Link para o comentário
Compartilhar em outros sites

  • 0

Oi

olha só..

Como eu não sabia de que forma você fazia uma conexao com o banco de dados.. eu coloquei tudo aqui no codigo, veja só:

<%

'conectamos ao banco.. (mude o caminho pro seu banco..)

url_conexao = Server.MapPath("banco.mdb")

set conexao = Server.CreateObject("ADODB.Connection")

conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

'atribuimos valores à variaveis

v_numprocesso  = Session("processo")

v_orgao = Session("orgao")

v_dtautuacao = Session("autuacao")

v_interessado = Session("interessado")

v_objeto = Session("objeto")

'testamos se a data tem valor

if v_dtautuacao <> "" then

dia = LEFT(v_dtautuacao,2)

mes = MID(v_dtautuacao,3,5)

ano = RIGHT(v_dtautuacao,4)

data_nova = dia + "/" + mes + "/" + ano

data_nova = CDATE(data_nova)

end if

'criamos o SQL, que faz INSERT no banco de dados

sql = "insert into TB_CGDF_PROCESSO (DT_PROCESSO_DATA_AUTUACAO, NM_PROCESSO_NOME_INTERESSADO, DS_PROCESSO_OBJETO, CD_ORGAO_CHAVE, NM_PROCESSO_NUMERO_PROCESSO) VALUES ('"&data_nova&"','"&v_interessado&"','"&v_objeto&"',"&v_orgao&", "&v_numprocesso&")"

'executamos o SQL.. (aqui pode dar erro.. de tipo de dados incompativeis)

set rs = conexao.execute(sql)

'se der erro, aí a gente vê depois

%>

<html>

<head>

<!--<meta http-equiv="refresh" content="0; url=index-but.asp">-->

<base target="_self">

</head>

<body bgcolor="#DEEBBE">

<script language="javascript">

alert("Dados cadastrados com sucesso! ");

window.location = "index-but.asp";

//84021066

</script>

</body>

</html>

Bom.. no modo ASP Normal.. em VBScript, os comentários são feitos por uma aspa simples no começo da linha.. como você pode ver que eu coloquei.

Antes, você usava // .. mas isso é só pra javascript, ok?

Teste ele aí.. mas mude o banco de dados.. eu coloquei um tipo de conexao com o banco simples.. e sem misterio, que eu uso aqui, e funciona! Só mude o caminho!

Se der erro, posta aí, pra gente ver o que aconteceu!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Ah..

E o esquema da data..

Tem que ver como ela está sendo digitada, e fazer mais algumas validações.. e testar se essa que está sendo feita tá certa

Eu não testei aqui, pois não tenho como saber como o usuario vai digitar

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Gomes -

Bom Olá galera do ASP

Eu não gosto de ser barraqueiro, mas eu não acho aceitável iniciar uma página asp com padrão Javascript, até mesmo porque para a inclusao do banco de dados o ideal é incluir em VBScript (meu ponto de vista).

Uma sugestão???

Realiza as validações client side(Javascript), e depura o valor da data antes de incluir no Bd.

Espero ter ajudado. sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Basicamente foi isso que eu fiz, no script!

ALterei o padrão de javascript, para Vbscript (asp mesmo)

Apenas usando comandos ASP.

Mas, eu precisaria saber o que o campo data dela traz.. como ficam basicamente os valores

Assim, é possível fazer uma validação no asp sem erro algum

Link para o comentário
Compartilhar em outros sites

  • 0

Oi...

Eu não uso o access porque é para a empresa onde eu trabalho que é o BD SQL Server!!!

Ai está o cógido da minha conexão com o banco que está em outra maquina e é conectada atraves de IP como deve-se notar!!!

P.S.: Desculpe ter saido ontem mais é q tive q ir embora!!!

Obrigada

<%
var MM_Connection_STRING = "provider=sqloledb; user id=sa; password=; initial catalog=DB_CGDF; data source=10.226.1.87"
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz o que você falou inclusive coloquei a minha conexão no lugar da sua e deu esse erro oh:

<%
'codigo da minha conexão'
MM_Connection_STRING = "provider=sqloledb; user id=sa; password=; initial catalog=DB_CGDF; data source=10.226.1.87"
%>

'erro que está dando:'
<%
MM_Connection_STRING = "provider=sqloledb; user id=sa; password=; initial catalog=DB_CGDF; data source=10.226.1.87"
%>

Obrigada!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Gomes -

Retire a linha do CDate, pois essa função faz a mesma coisa que a linha de cima

Na verdade ele recebe algo do tipo September 27, 1990 e transforma em 09/27/1990, o que extamente é feito na linha de cima....

Caso não apareça a data real, faça o seguinte:

Na linha em que você tirou o CDate coloque essas linhas:

Response.Write (data_nova)

Response.End()

E verifique o que aparece na tela para você!!!!

Esse valor é o que deveria estar no campo da tabela.

Espero ter ajudado...

Até + cool.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...