Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaeldupalio

Update em campo Null

Recommended Posts

bom dia, preciso da ajuda de vocês programo em asp classico e tenho uma coluna data na minha tabela mysql esta no formato date preciso fazer um update nessa coluna nos campos Null tentei o seguinte sem sucesso:

 

vSql="UPDATE SET DATA_INICIAL = '"&var_datai&"' where DATA_INICIAL = "" or isNull"
Set myRst = Server.CreateObject("ADODB.Recordset")
myRst.Open vSql, conn, 1, 3

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. faltou o nome da tabela e 1 espaço entre "is" e "null"..

 

Dicas boas:

http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx
http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx

 

2. atenção: Update ou delete sem a identificação das linhas afetam a tabela inteira,
assim, se você deseja realmente gravar a mesma data que estiver na variavel "var_datai" em todas as linhas definidas nessa sql, a mesma deverá funcionar corretamente c/ as correções que já postei no item 1, ok?
obs:
- caso apareçam mensagens de erro, poste;
- isto tudo pressupõe que você já está convertendo a variavel p/ o formato correto do mysql.

- tente sempre testar a sql direto no banco, depois faça o código, vc vai ver como vai ganhar tempo com isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. faltou o nome da tabela e 1 espaço entre "is" e "null"..

 

Dicas boas:

http://www.linhadecodigo.com.br/artigo/75/principais-instrucoes-em-sql.aspx

http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sql-insert-update-delete-e-select.aspx

 

2. atenção: Update ou delete sem a identificação das linhas afetam a tabela inteira,

assim, se você deseja realmente gravar a mesma data que estiver na variavel "var_datai" em todas as linhas definidas nessa sql, a mesma deverá funcionar corretamente c/ as correções que já postei no item 1, ok?

obs:

- caso apareçam mensagens de erro, poste;

- isto tudo pressupõe que você já está convertendo a variavel p/ o formato correto do mysql.

- tente sempre testar a sql direto no banco, depois faça o código, você vai ver como vai ganhar tempo com isso.

Fernando mt obrigado pela ajuda: segue o codigo completo e a msg de erro:

<!-- #include file="conntest.asp" -->

<%

 

'recolhendo as datas do formulario

var_datai = trim(request.form("data_inicio"))

var_dataf = trim(request.form("data_fim"))

' Verifica Datai, se é válida

data_teste = trim(request.form("data_inicio"))

ano = right(data_teste,4)'Seleciona Ano

mes = right(data_teste,7)'Seleciona mês e ano

mes = left(mes,2) 'seleciona mes

dia=left(data_teste,2) ' seleciona o dia

datai = ano&"/"&mes&"/"&dia

datai_brasileira = dia&"/"&mes&"/"&ano

 

if IsDate(datai) = False Then

Response.Write("<script language='JavaScript'>alert('Data inicial Inválida use o formato DD/MM/AAAA!');location.href='fechamento.html';</script>")

else

' Verifica Dataf, se é válida

data_test = trim(request.form("data_fim"))

ano = right(data_test,4)'Seleciona Ano

mes = right(data_test,7)'Seleciona mês e ano

mes = left(mes,2) 'seleciona mes

dia=left(data_test,2) ' seleciona o dia

dataf = ano&"/"&mes&"/"&dia

dataf_brasileira = dia&"/"&mes&"/"&ano

 

if IsDate(dataF) = False Then

Response.Write("<script language='JavaScript'>alert('Data Final Inválida use o formato DD/MM/AAAA!');location.href='fechamento.html';</script>")

end if

end if

Function invertdata(data)

d=day(cdate(data))

m=month(cdate(data))

a=year(cdate(data))

invertdata = a & "/"& m & "/" & d

end function

var_datai = invertdata(var_datai)

var_dataf = invertdata(var_dataf)

 

 

vSql="UPDATE * from TAB_QUADRO_BRASFELS SET DATA_INICIAL = '"&var_datai&"' where DATA_INICIAL = "" or is Null"

Set myRst = Server.CreateObject("ADODB.Recordset")

myRst.Open vSql, conn, 1, 3

 

 

response.write"ta dificil"

response.end

 

a msg de erro:

 

Microsoft OLE DB Provider for ODBC Drivers erro '80040e21'

O driver ODBC não oferece suporte para as propriedades solicitadas.

/cyder/fechamento_bf.asp, line 56

 

 

 

help me

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael, calma.. a sql esta ok, como eu disse, testou-a direto no mysql?
claro q p/ testar vc tem que usar uma data válida (no formato válido do mysql) no lugar da variavel.

 

caso queira testar, eu uso 1 outra forma p/ converter datas (mas ai já é ASP):

dim datateste1,datateste2
datateste1=Year(request.form("dataini"))&"-"&Month(request.form("dataini"))&"-"&Day(request.form("dataini"))
datateste2=Year(request.form("datafin"))&"-"&Month(request.form("datafin"))&"-"&Day(request.form("datafin"))

response.write datateste1&" - "
response.write datateste2&"<p>"

tenta ai, comigo sempre funfou ok...

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc quer fazer o update nessa coluna quando ela for nula?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.