Ir para conteúdo

POWERED BY:

Arquivado

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

rafaela

Erro na instrução "insert into"

Recommended Posts

Por favor, me ajudem!

 

Tenho esses dois códigos aqui, de cadastro de um livro no banco de dados Access:

 

Arquivo Lab10_1.asp

 

<%@LANGUAGE="VBSCRIPT"%>

<html>
<head>

<title>Inserindo dados na tabela de livros</title>
<script language="javascript">

function validaForm (){

if (document.formLivro.txtCodigo.value.length <1)
	{alert("O campo ISBN não pode ficar em branco.");
	formLivro.txtCodigo.focus();
	return false;
	}

if (document.formLivro.txtCodCategoria.value.length <1)
	{alert ("O campo Código da Categoria não pode ficar em branco.");
	formLivro.txtCodCategoria.focus();
	return false;
	}

if (document.formLivro.txtTitulo.value.length <1)							   
	{alert("O campo Título não pode ficar em branco.");
	formLivro.txtTitulo.focus();
	return false;
	}
	
if (document.formLivro.txtAutor.value.length <1)
	{alert("O campo Autor não pode ficar em branco.");
	formLivro.txtAutor.focus();
	return false;
	}
	
if (document.formLivro.txtPreco.value.length <1)
	{alert("O campo Preço não pode ficar em branco.");	
	formLivro.txtPreco.focus();
	return false;
	}

if (document.formLivro.txtCapa.value.length <1)
	{alert("O campo Imagem da Capa não pode ficar em branco.");
	formLivro.txtCapa.focus();
	return false;
	}
		
</script>
</head>

<body>

<form name="formLivro" method="post" action="ResLab10_1.asp" onSubmit="return validaForm(this);">
Inclusão de Livros<br /><br />
Informe os dados do livro a ser inserido. Os campos com (*) são de digitação obrigatória. <br/>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
	<td>ISBN</td>
	<td><input type="text" name="txtCodigo"> *</td>
  </tr>
  <tr>
	<td>Código da Categoria:</td>
	<td><input type="text" name="txtCodCategoria"> *</td>
  </tr>
  <tr>
	<td>Título:</td>
	<td><input type="text" name="txtTitulo"> *</td>
  </tr>
  <tr>
	<td>Autor:</td>
	<td><input type="text" name="txtAutor"></td>
  </tr>
  <tr>
	<td>Número de páginas:</td>
	<td><input type="text" name="txtNPaginas"> *</td>
  </tr>
  <tr>
	<td>Formato:</td>
	<td><input type="text" name="txtFormato"> *</td>
  </tr>
  <tr>
	<td>Preço:</td>
	<td><input type="text" name="txtPreco" > *</td>
  </tr>
  <tr>
	<td>Resenha:</td>
	<td><textarea  name="txtResenha" rows="5" cols="40"></textarea></td>
  </tr>
  <tr>
	<td>Lançamento (S/N):</td>
	<td><input type="text" name="txtLancamento"></td>
  </tr>
  <tr>
	<td>Data de publicação:</td>
	<td><input type="text" name="txtDataPub"></td>
  </tr>
  <tr>
	<td></td>
	<td><input type="submit" value="inserir" name="btInsere"><input type="reset" value="Limpar campos" name="btLimpa">
	</td>
  </tr>
</table>


</form>

</body>
</html>

 

Arquivo ResLab10_1

 

<%@LANGUAGE="VBSCRIPT"%>

<% Option Explicit
%>
<!--#include file="../dbconexao.inc"-->

<% 
Dim conexaoDatabase
Dim strins, rslivros

Dim varCodigo, varCodCategoria, varTitulo, varAutor, varNPaginas, varFormato, varPreco, varResenha, varLancamento, varDataPub

varCodigo = TRIM(Request.Form("txtCodigo"))
varCodCategoria = Request.Form("txtcodCategoria")
varTitulo = TRIM(Request.Form("txtTitulo"))
varAutor = TRIM(Request.Form("txtAutor"))
VarNPaginas = Request.Form("txtNPaginas")
varFormato = TRIM(Request.Form("txtFormato"))
varPreco = Request.Form("txtPreco")
varResenha = Request.Form("txtResenha")
varLancamento = TRIM(Request.Form("txtLancamento"))
varDataPub = TRIM(Request.Form("txtDataPub"))

varTitulo = REPLACE(varTitulo,"'"," ")
varAutor = REPLACE(varAutor,"'"," ")
varFormato = REPLACE(varFormato,"'"," ")
varResenha = REPLACE(varResenha,"'"," ")
varPreco = REPLACE(varPreco,"'"," ")

strins = "insert into Livros"
strins = strins + "(codLivro, Categoria, titulo, autor, npaginas, formato, preco, resenha, lancamento, dataPub)"
strins = strins + "values('"+varCodigo+ "', "
strins = strins + "'" +varCodCategoria+ "',"
strins = strins + "'" +varTitulo+ "',"
strins = strins + "'" +varAutor+ "',"
strins = strins + varNPaginas+ ","
strins = strins + "'" +varFormato+ "',"
strins = strins + varPreco + ","
strins = strins + "'" +varResenha+ "',"
strins = strins + "'" + varLancamento + "',"
strins = strins + "'" + varDataPub + "')"

call abreConexao
set rslivros = conexaoDatabase.Execute(strins)
%>

<html>
<head>
<title> Inserindo dados em uma tabela </title>
</head>
<body>
O Livro "<strong><% = varTitulo %> </strong>" foi cadastrado com sucesso
</body>
</html>

<% call fechaConexao
   set rsLivros = Nothing
%>

 

tá dando o seguinte erro:

 

Informações técnicas (para a equipe de suporte)

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução INSERT INTO.

/nasp/Laboratorios/ResLab10_1.asp, line 44

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; FDM)

 

o que pode estar acontecendo??? =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique as atribuiçoes das linhas 36 e 38 e troque o mais por & depois faça testes novamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

escreve strins na tela e posta aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique as atribuiçoes das linhas 36 e 38 e troque o mais por & depois faça testes novamente

 

Mário, não entendi.

 

gente, agora deu esse erro aqui, italo pediu:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Número de valores da consulta e campos de destino não coincidem.

/nasp/Laboratorios/ResLab10_1.asp, line 44

 

me ajudem... =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara Rafaela,

 

Eu falei pra você trocar o + pelo & so porque assim fica mais facil de vizualizar o codigo, porque ja esistia o + das atribuiçoes a variavel strins, essa é uma opinao pessoal. Bom o erro estava nas atribuiçoes de valores a variavel strins em algumas linhas faltava aspas ' simples(comum) . . . segue o codigo corrigido:

 

CODE
strins = "insert into Livros"

strins = strins + "(codLivro, Categoria, titulo, autor, npaginas, formato, preco, resenha, lancamento, dataPub)"

strins = strins + "values('"&varCodigo&"', "

strins = strins + "'"&varCodCategoria&"',"

strins = strins + "'"&varTitulo&"',"

strins = strins + "'"&varAutor&"',"

strins = strins + "'"&varNPaginas&"',"

strins = strins + "'"&varFormato&"',"

strins = strins + "'"&varPreco&"',"

strins = strins + "'"&varResenha&"',"

strins = strins + "'"&varLancamento&"',"

strins = strins + "'"&varDataPub&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de

 

set rslivros = conexaoDatabase.Execute(strins)

ponha

 

response.write(strins)
response.end

e o que aparecer na tela voce poe aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa

 

para INSERT, UPDATE e DELETE nao precisa de recordset, apenas para SELECT que precisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique as atribuiçoes das linhas 36 e 38 e troque o mais por & depois faça testes novamente

 

Mário, não entendi.

 

gente, agora deu esse erro aqui, italo pediu:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Número de valores da consulta e campos de destino não coincidem.

/nasp/Laboratorios/ResLab10_1.asp, line 44

 

me ajudem... =/

 

 

italo, copiei esse seu código e deu o seguinte erro:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][Driver ODBC para Microsoft Access] A operação deve usar uma consulta atualizável.

/nasp/Laboratorios/ResLab10_1.asp, line 44

 

Na verdade isso é um exercício de um livro que comprei de ASP, tô começando a estudar agora.

 

Não seria melhor eu te passar os arquivos pra você testar aí? Se não for incômodo...

 

antes de

 

set rslivros = conexaoDatabase.Execute(strins)

ponha

 

response.write(strins)
response.end

e o que aparecer na tela voce poe aqui

 

Mario, fiz o que você disse, apareceu isso aqui:

 

insert into Livros(codLivro, Categoria, titulo, autor, npaginas, formato, preco, resenha, lancamento, dataPub)values('', '','','','','','','','','')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafaela com os codigo que você postou aqui eu os copiei criei o DB e fiz os testes com as minhas alteraçoes e funcionou beleza, se quiser pode me mandar os arquivos no email maisbrasil@hotmail.it assim que eu os receber dou uma olhadinha e te respondo . . .

Compartilhar este post


Link para o post
Compartilhar em outros sites

alem disso evite deixar codigo junto aos parenteses

 

 

insert into Livros  (codLivro, Categoria, titulo, autor, npaginas, formato, preco, resenha, lancamento, dataPub)  values  ('', '','','','','','','','','')

veja se os nomes dos campos dos formularios estao iguais aos que voce tenta recuperar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique as atribuiçoes das linhas 36 e 38 e troque o mais por & depois faça testes novamente

 

Mário, não entendi.

 

gente, agora deu esse erro aqui, italo pediu:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Número de valores da consulta e campos de destino não coincidem.

/nasp/Laboratorios/ResLab10_1.asp, line 44

 

me ajudem... =/

 

 

italo, copiei esse seu código e deu o seguinte erro:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][Driver ODBC para Microsoft Access] A operação deve usar uma consulta atualizável.

/nasp/Laboratorios/ResLab10_1.asp, line 44

 

Na verdade isso é um exercício de um livro que comprei de ASP, tô começando a estudar agora.

 

Não seria melhor eu te passar os arquivos pra você testar aí? Se não for incômodo...

 

antes de

 

set rslivros = conexaoDatabase.Execute(strins)

ponha

 

response.write(strins)
response.end

e o que aparecer na tela voce poe aqui

 

Mario, fiz o que você disse, apareceu isso aqui:

 

insert into Livros(codLivro, Categoria, titulo, autor, npaginas, formato, preco, resenha, lancamento, dataPub)values('', '','','','','','','','','')

 

 

Italo, mandei pro seu e-mail, ok? Muito obrigada!

 

Pois é, Anderson, talvez eu esteja errando em algo ali, mas como tô começando, não consegui visualizar isso.

 

obrigada a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

separe o codigo dos parenteses

 

insert into Livros  (codLivro, Categoria, titulo, autor, npaginas, formato, preco, resenha, lancamento, dataPub)  values  ('', '','','','','','','','','')

Em insert nao precisa de RS

 

set rslivros = conexaoDatabase.Execute(strins)

Veja o nome dos campso no form para recuperar igual

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafaela seu codigo depois da alteraçao que eu fiz esta funcionando perfeitamente, so que você precisa criar novas regras de validaçao para o formulario porque no se banco de dados o campo Nº PAGINAS esta para NUMERO, o campo PREçO esta para MOEDA e o campo DATA esta para DATA/HORA ou seja se no formulario você nao digitar nesses campo os tipos correspondentes retorna esse erro mesmo, faz novos testes e vai ver se quiser pode testar o sistema aqui http://maisbrasil.sytes.net/estudo/Laboratorios/Lab10_1.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafaela seu codigo depois da alteraçao que eu fiz esta funcionando perfeitamente, so que você precisa criar novas regras de validaçao para o formulario porque no se banco de dados o campo Nº PAGINAS esta para NUMERO, o campo PREçO esta para MOEDA e o campo DATA esta para DATA/HORA ou seja se no formulario você nao digitar nesses campo os tipos correspondentes retorna esse erro mesmo, faz novos testes e vai ver se quiser pode testar o sistema aqui http://maisbrasil.sytes.net/estudo/Laboratorios/Lab10_1.asp

Italo, sou um tanto leiga no assunto, na verdade esse banco de dados e o código vieram num livro que comprei, tô começando ASP agora...

 

Nâo compreendi muito bem o que você quis dizer, desculpa a ignorância :unsure:

 

Vou tentar ver mais tarde, se você puder me ajudar...

 

Ah, e infelizmente não estou conseguindo abrir esse link :blink:

 

bjus e obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te explicar direitinho entao, quando você cria um banco de dados, você alem de definir o nome do campo você defini o tipo de dados que ele vai receber, no seu banco exite os campos listado abaixo:

 

Nome do campo: Tipo de dados:

 

CodLivro Texto

Categoria Texto

Titulo Texto

Autor Texto

NPaginas Numerico

Formato Texto

Preco Valuta

Resenha Memo

Lancamento Texto

DataPub Data/Ora

COD Contatore

 

entao se no seu formulario por exemplo você digitar texto no campo Numero de Paginas (NPaginas) vai retornar um erro de Tipo incopativeis de dados . . . seucodigo esta funcionando perfeitamente você so tem que criar mais funçoes que verifique os dados digitados no formulario, pra você ferificar isso preencha o formulario respeitando o tipo de dados para cada campo, tb nao sou expert porem no que posso estou ai . . . tente denovo acessar o formulario http://maisbrasil.sytes.net/estudo/Laboratorios/Lab10_1.asp mais cedo estavo com um problema penso que ja esta tudo ok, assim você aproveita e testa meu server pra mim rs . . .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafaela seu codigo depois da alteraçao que eu fiz esta funcionando perfeitamente, so que você precisa criar novas regras de validaçao para o formulario porque no se banco de dados o campo Nº PAGINAS esta para NUMERO, o campo PREçO esta para MOEDA e o campo DATA esta para DATA/HORA ou seja se no formulario você nao digitar nesses campo os tipos correspondentes retorna esse erro mesmo, faz novos testes e vai ver se quiser pode testar o sistema aqui http://maisbrasil.sytes.net/estudo/Laboratorios/Lab10_1.asp

Italo, sou um tanto leiga no assunto, na verdade esse banco de dados e o código vieram num livro que comprei, tô começando ASP agora...

 

Nâo compreendi muito bem o que você quis dizer, desculpa a ignorância :unsure:

 

Vou tentar ver mais tarde, se você puder me ajudar...

 

Ah, e infelizmente não estou conseguindo abrir esse link :blink:

 

bjus e obrigada!

 

 

agora sim,. italo, consegui entender, tá ocorrendo tipo uma incompatibilidade nos campos, certo?

 

Enfim, tentei mais umavez esse link e nada... Tá fora... rs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim e agora, RS . . . se for você que for usar o sistema basta você tomar bastante cuidado com a inserçao dos dados, se terceiros forem usarem o sistema ai você vai ter que fazer o tratamento de erros q sao as verificaçoes de digitaçao no formulario . . .

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.