Notax Postado Setembro 6, 2007 Denunciar Share Postado Setembro 6, 2007 Pessoal, não querendo abusar, mas já abusando... to com mais esse mistério... quebrando a cuca desde hoje demanhã e não consigo sequer entender...o que ta acontecendo é que meu insert ta inserindo as datas no banco de forma correta dos dias 13 ao 31 de qualquer. mes...tipo 13/01/07 = 13/jan/07 bem certinho no sistema brasileiro...já as datas dos dias 01 ao 12 inverte e fica no sistema americano... ou seja se eu digito 01/02/07 (01 fev 07) ela aparece no banco 02/01/07!!!por que será???abaixo segue o script (parte da data) do insert que uso para inserir os dados no banco:<%Response.Expires = 0 Dim objConn, objRs, strQuery, strConnection, historico, tipo, valor, repercussao, quantidade, chcBoleto, vezes, qtdParcela, i, dtInicial, x, dtParcela, dtVencimento, dt, data, datai Dim anoi, mesi, diai, ComandoSQL anoi=year(Request.Form("dtInicial")) mesi=month(Request.Form("dtInicial")) diai=day(Request.Form("dtInicial")) Session.LCID=1033 ComandoSQL = "SELECT * FROM a_pagar WHERE DATA #" & DateSerial(anoi,mesi,diai) & "# ORDER BY DATA ASC" 'Set bd = Conexao.Execute(ComandoSQL) Session.LCID=1046 historico = Request.Form("txtDescricao") tipo = Request.Form("cmbTipo") 'valor = Request.Form("txtValor") valor = replace(Request.Form("txtValor"),",",".") repercussao = Request.Form("qdrRepercussao") Quantidade = Request.Form("txtQuantidade") chcBoleto = Request.form("chcBoleto") datai = request.form("txtData") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Setembro 7, 2007 Denunciar Share Postado Setembro 7, 2007 Notax ! kara, qual DB você ta utilizando ? Access ?o campo que usa para inserir as datas esta como Data/Hora ?Para melhorar sua aplicação, use a função Cdateanoi=year(Cdate(Request.Form("dtInicial"))) mesi=month(Cdate(Request.Form("dtInicial"))) diai=day(Cdate(Request.Form("dtInicial")))Session.LCID = 1033 --> Data Padrão AmericanioSession.LCID = 1046 --> Data Padrão BrasileiroPara saber mais leia o tópico abaixohttp://www.imasters.com.br/artigo/777/asp/..._o_sessionlcid/falou Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 7, 2007 Autor Denunciar Share Postado Setembro 7, 2007 (editado) então Romero... agradeço sua atençao e espero que possa continuar colaborando com esse mistério... fiz as sugestões que sugeristes... mas quando lancei a data 02/02/07 no banco apareceu assim 30/1/1900... nada a ver, certo?eu devo estar errando em algum outro lugar... por isso estou colocando o codigo completo para caso o amigo ou mais alguém que possa contribuir tenham a visao geral do problema... de qualquer. forma valeu força...o nome do campo onde a data é preenchida no formulário se chama txtData e não datai como eu havia postado anteriormente... desclpem o engano... mas só aconteceu aqui... e não no código... essa parte tenho certeza de que não estava errada nos meus teste ;)forte abraço Editado Setembro 17, 2008 por Notax Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 10, 2007 Denunciar Share Postado Setembro 10, 2007 bom eu cansei de enfrentar esses problemas de datas com a ****** do accesse tenho duas soluções1- o uso de um campo pra dia outro pra mes e outro para ano...2- usar o padrão americano e só inverter na hora de exibir... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 10, 2007 Autor Denunciar Share Postado Setembro 10, 2007 Po Bareta... brigadão pelo retorno...Sabes que eu estava pensando em utilizar um campo pra cada... mas não sei como fazer e nem sei se isso ajudaria... visto que no meu script inicial ele inverte apenas quando os dias vão do 01 ao 12... dos dias 13 ao 31 funciona legal!to quebrando a cabeça e já to bem sem ideias!no caso de usar o padrão americano e só inverter na hora de exibir é um problema pra mim, pois os usuários terão de se acostumar a trabalhar com datas invertidas... o que é muito ruim... além de que poderão haver falhas de lançamentos... visto que já estamos acostumados ao nosso padrão...Será que o amigo teria um exemplo para postar aqui de um script funcionando com um campo para dia um para mes e um para ano? como funcionaria com o insert nesse caso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 10, 2007 Denunciar Share Postado Setembro 10, 2007 veja que não é preciso digitar a data no format americano você vai digitar normaldata=10/11/12 data=month(data)&"/"&day(data)&"/"&year(data) basicamente isso como contexto de inversão já 3 campos do tipo numero [dia - mes - ano] sql="Insert into datas (dia,mes,ano) values ("&dia&","&mes&","&ano&")" ou sql="Insert into datas (dia,mes,ano) values ("&day(data)&","&month(data)&","&year(data)&")"é bem simples mais em determinados casos não da pra usar assim.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 10, 2007 Autor Denunciar Share Postado Setembro 10, 2007 Bom... então deixa eu ver se eu entendi...Caso eu queira continuar usando um campo único, eu poderia digitar as datas no formato certo... e no script do insert eu colocaria:data = request.form ("txtData")data=month(data)&"/"&day(data)&"/"&year(data)e neste caso não uso nenhuma session.LCID, certo?desta forma será incluso de forma correta no banco, não é isso?valeu a força... e desclupa a incomodação! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 10, 2007 Denunciar Share Postado Setembro 10, 2007 usa o lcid do formato americano para reforçar .... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 10, 2007 Autor Denunciar Share Postado Setembro 10, 2007 (editado) Pessoal... to começando a acreditar que posso estar com problema no loop e não na formatação das datas!na verdade nem sei mais o que pensar! já estou em cima disso a tanto tempo que só de olhar fico vesgo!a última modificação que eu fiz com auxilio do bareta e do romero trouxe uma peq. melhora... mas ainda não resolveu e o diagnóstico continua o mesmo! vejam bem:quando lanço datas dos dias 13 ao 31 e peço para repeitr "n" vezes sai direitinho... bem bacana...por exemplo 25/01/07 repetindo 3x = 25/01/07 25/02/07 25/03/07agora dos dias 1 ao 12 só o primeiro lançamento sai correto, depois fica invertido... exemplo:lanço 02/01/07 e peço para repetir 3x = 02/01/07 03/01/07 04/01/07... ou seja... o primeiro lançamento sai correto e depois aumenta só a primeira casa... mas ela não representa dias e sim meses... por que se peço para repetir 13x por exemplo, quando paça o numero 12 volta para o numero 1 e o ano aumenta...isso me faz voltar a acreditar que com o loop não tem erro, e sim com alguma inversão que não estou conseguindo fazer!qualquer sugestão é bem vinda! já estou no nível do desespero :)forte abraço a todos! e tomara que possam me ajudar! Editado Setembro 17, 2008 por Notax Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 12, 2007 Denunciar Share Postado Setembro 12, 2007 experimente a sqlComandoSQL = "SELECT * FROM a_pagar WHERE DATA between #"&datainicial&"# and #"&datafinal&"# ORDER BY DATA ASC,ID"seleciona o intervalo de datas ordena por data em ascendente caso a data seja repetida usa o id como criterio... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 13, 2007 Autor Denunciar Share Postado Setembro 13, 2007 valeu a atenção... mas infelizmente não funcionou denovo! só a primeira data sai certinho, as outras saem invertidas!Pessoal, meu problema continua o mesmo... Já tentei diversas formas e não consigo corrigir... Tentei das formas que o romero sugeriu, tb. das formas que o Bareta indicou... não funcionou... e reconhecidamente estes caras são feras no assunto... o que eu quero dizer, é que pelo jeito meu caso é um mistério mesmo, pois apesar de eu ainda ser amador... esses caras com certeza não são... fico aqui pensando e matutando como eu poderia fazer para resolver esta questão... já contatei até com o servidor, que lavou suas mãos, garantindo que o meu script deva estar com algum erro... o que logicamente é possivel mesmo... deve existir alguma coisinha qualquer ainda errada, pode ser que seja um detalhe dos mais ridículos, mas se existe eu com certeza não estou vendo! o que mais me espanta é que para datas que vão dos dias 13 ao 31 funciona perfeitamente... digito no sistema brasileiro e inclui no BD no sistema brasileiro tb! a inversão pro sistema americano só ocorre nas datas que tem os dias entre 1 e 12! é como se o sistema "entendesse" que de um ao doze só pode ser mês e daí ele inverte! Chego a pensar se derepente não pode ter algum errinho no meu loop, mas eu testo ele em separado e funciona legal...Peço portanto, encarecidamente a todos que puderem contribuir (e sei que tem vários cobras aí no forum) se tiverem um tempinho que o façam... acredito que este caso realmente poderá contribuir para outras pessoas.Cheguei a pensar na possibilidade (dentro da meu amadorismo) se derepente não seria o caso de criar um select case específico para os dias 01 ao 12... só que eu não faço a menor ideia de como fazer isso! nem se isso é realmente possível!Aproveito para agradecer a atenção e o carinho que muitos aqui no ScriptBrasil demenstram, ajudando desconhecido a troco de nada! isso é muito nobre e espero aumentar meus conhecimentos a ponto de poder contribuir tb!um forte abraço a todos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Setembro 13, 2007 Denunciar Share Postado Setembro 13, 2007 poe todo o codigo ai Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 13, 2007 Autor Denunciar Share Postado Setembro 13, 2007 (editado) valeu a força Bareta..Abração a todos Editado Setembro 17, 2008 por Notax Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Notax Postado Setembro 14, 2007 Autor Denunciar Share Postado Setembro 14, 2007 (editado) Pessoal, até que um dia nasceu! consegui... lógicamente isso não terria sido possivel sem a ajuda de vocês..mas enfim, vamos esclarecer...Depois que o bareta deu a sugestão de desagrupar a data em tres campos, sendo um para dia, um para mes, e um para ano, as coisas começaram a clarear... até que resolvi começar do zero e ir testando função por função...As questões de session, no meu caso, só funcionam se eu coloco primeiro 1033 e depois vou pra 1046... e isso era um problema... segunda coisa... no meio do loop eu criava uma nova condição, que eram as datas do "parcelamento" esta data, apesar de a data inicial estar bem formatada, por uma razão ou outra invirtia novamente... daí eu coloquei única e exclusivamente nesta variável "dtParcela" que é igual a variável "data" a ser inclusa no banco a sugestão do romero... ou seja: data = Cdate(month (data) &"/"& day (data) &"/"& year (data))o que eu acho que tava acontecendo era uma salada de fruta... porque eu tava formatando dtParcela, que é igual a data... e depois reformatava data denovo... então eu arrumava, desarrumava, arrumava denovo e assim dava o xabú que vocês viram...Putz... é difícil até de explicar quando deu certo! rsssmas enfim... era isso... agradeço a contribuição e a atenção de todos...um forte abraçonotax Editado Setembro 15, 2007 por Notax Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Notax
Pessoal, não querendo abusar, mas já abusando... to com mais esse mistério... quebrando a cuca desde hoje demanhã e não consigo sequer entender...
o que ta acontecendo é que meu insert ta inserindo as datas no banco de forma correta dos dias 13 ao 31 de qualquer. mes...
tipo 13/01/07 = 13/jan/07 bem certinho no sistema brasileiro...
já as datas dos dias 01 ao 12 inverte e fica no sistema americano... ou seja se eu digito 01/02/07 (01 fev 07) ela aparece no banco 02/01/07!!!
por que será???
abaixo segue o script (parte da data) do insert que uso para inserir os dados no banco:
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados
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.