Ir para conteúdo

POWERED BY:

Arquivado

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

Reginaldo

[Resolvido] Insert com problema

Recommended Posts

Pessoal preciso faze um insert mas vira e mexe tenho o seguinte erro:

 

 

Microsoft JET Database Engine (0x80040E14)

Número de valores da consulta e campos de destino não coincidem.

/ejs/grava_nf_parcelado.asp, line 50

ja pesquisei... com informações do tipo string que devem entrar entre aspas simples... mas em aspas simples num da pra por variavel então eu usei aspas simples e composta assim: '"&variavel&"'

 

do tipo numero em aspas compostas "variavel"

 

mas acho que não to sabendo pro tipo data/hora

 

tive que faze um fuá pra escreve a data de um jeito que entre corretamente no BD.. e mesmo assim só entra em um campo... no outro ta entrando como tempo ao invéz de data..

 

isso quando entra né.... porque tem hora que funciona dessa forma ai... e tem hora (maioria das veses) da esse erro acima...

 

o meu insert esta assim:

 

lanca = "INSERT INTO NF_PGT (numero_nf, vencimento, baixa, valor_pgt, qtd_parcelas, valor_total, data_entrada, numero_parcela) VALUES ("&numero&", '"&pr_vencimento&"', 'nao', "&valor_parcela&", "&numero_parcelas&", "&valor_total&", '"&hoje&"', '"&parc_nf&"')"
SQL.execute(lanca)

 

se quiserem ver o programa completo é este aqui:

 

<!-- #include file = "conecta.asp" -->
<%
'converte todas as informações temporais para o padrão brasileiro
Session.LCID=1046

'--------------

numero=Request.Form("numero")
pr_vencimento=Request.Form("primeiro_vencimento")
intervalo=Request.Form("intervalo")
parcelas=Request.Form("parcelas")
valor_total=Request.Form("vl_total")

pr_vencimento = CDate(pr_vencimento)

If (IsDate(pr_vencimento) <> true or pr_vencimento < Date()+1 or isNumeric(intervalo) <> true or isNumeric(parcelas) <> true or intervalo < "2" or parcelas < "2") then
%>

<script language="javascript">
alert("ATENÇÃO! O Primeiro vencimento deve ser no minimo para <%=Date()+1%> , O Intervalo entre os pagamentos deve ter pelomenos 2 dias e as parcelas devem ser no minimo 2");
history.back(-1);
</script>

<%	   
response.End()
Else

arraydata = split(pr_vencimento,"/")

dia = arraydata(0)
mes = arraydata(1)
ano = arraydata(2)

pr_vencimento = dia&"/"&mes&"/"&ano
pr_vencimento = CDate(pr_vencimento)

valor_parcela = valor_total / parcelas
numero_parcelas = parcelas
parc = 0
hoje = Day(now)&"/"&Month(now)&"/"&Year(now)
hoje = CDate(hoje)

Do While parcelas > 0

parc = parc + 1

parc_nf = parc&" de "&numero_parcelas

lanca = "INSERT INTO NF_PGT (numero_nf, vencimento, baixa, valor_pgt, qtd_parcelas, valor_total, data_entrada, numero_parcela) VALUES ("&numero&", '"&pr_vencimento&"', 'nao', "&valor_parcela&", "&numero_parcelas&", "&valor_total&", '"&hoje&"', '"&parc_nf&"')"
SQL.execute(lanca)

parcelas = parcelas - 1
pr_vencimento = pr_vencimento + intervalo

Loop


SQL.close
Set SQL=nothing
END IF
%>

<script language="javascript">
alert("VENCIMENTOS LANÇADOS!");
window.location = 'nf.asp'
</script>

 

alguem poderia me dar uma mãosinha com isso ? ja pesquisei bastante mas não encontrei nenhum material que explicasse com claresa....

 

grato desde já.

 

 

 

ps: senhores administradores, antigamente a gente contava aqui no forum com um tipo de tag igual ao

 ... só que ela compilava o codigo e o coloria... ficava muito mais facil do visitante entender o codigo... porque não temos mais este recurso?

 

 

 

Reginaldo Santoro

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o teste, coloca aspas simples em tudo, até em números, e qual é o sem problema com as datas?

 

 

Respodendo a outras questão

o BBCode ASP, está com alguns problemas, sofrendo algumas alterações para se adequar a migração de dados, creio que já percebeu que agora é servidor UOL, então por esse motivo ele ainda não pode ser usado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted' k

 

meu problema com data é o seguinte, eu fiz um loop pra gravar parcelas de pagamento....

 

e a cada loop ele pega a data do primeiro vencimento e soma 30 dias

 

como se fosse Date() + 30 entende ?

 

mas ao entrar no registro entra como tempo... tipo: 00:02:52

 

 

uanto a aspas simples.. da certo coloca uma variavel entre aspas simples ? ela compila como texto aki... mas vou testar.

 

Obrigado Ted' K

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu campo é campo de data ou data/hora???

 

seria melhor se você colocar cada dado em um campo diferente, data em um campo DATE e hora em um campo TIME

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao faça + 30 simplesmente

 

utilize dateadd para isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted' K estou usando banco de dados access... la só tem campo datahora... não tem, especifico pra data e nem pra hora...

 

mas se o negocio persistir eu vo acaba guardando em um campo do tipo memorando.. e depois quando for usar eu pego do BD e converto a string com CDate pro formato Date() ... o velho jeitinho brasileiro... hehehe

 

mas seria ótimo se funcionasse como deveria.. eu vou acabar migrando pra php.. o asp tem zilhoes de regras pra complicar a nossa vida... sempre me esbarro nelas.. ja fiz algumas coisas em php... o negocio é curto e grosso.. sem blablabla.. heheh mas nem posso mais faze isso.. não tenho mais tempo... migração é complicado...

 

eu estou usando campo do tipo datahora

 

 

Mario como funciona este dateadd ? poderia dar um exemplo ?

 

 

obrigado a vocês =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

é uma função do VBScript

 

voce soma ou subtrai valores a datas

 

Exemplo

 

Somar 5 dias

 

DATA = Dateadd("d", DATA, 5)

 

para subtrair éra so colocar um valor negativo

 

para mudar outros valores voce muda o parametro

 

d = dias

m=mes

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted' K com aspas simples em tudo recebi este erro:

 

Microsoft JET Database Engine (0x80040E07)

Tipo de dados imcompatível na expressão de critério.

/ejs/grava_nf_parcelado.asp, line 50

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a linha do erro?

 

o que fez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mario obrigado pela ajuda.. sem esse seu toque da data nada teria dado certo...

 

foi só fazer a operação com esse dateadd que o problema na inserção acabou..

 

 

 

Grato pela atenção dos senhores..

 

FELIZ 2008

Compartilhar este post


Link para o post
Compartilhar em outros sites

Traquilo

 

Parabens pela solução

 

Feliz 2008

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.