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

Erro Na Sql


[ GuTo ]

Pergunta

Olá galera

Não sei o q tá errado nessa merda...hehe...não sei mesmo...se alguém puder, me ajude...por favor...

ERRO

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

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na cláusula FROM.

/sitesdoguto/noticia.asp, line 41

NOTICIA.ASP

<%
Option Explicit

dim id

if id = "" then id = request.QueryString("id")

dim db, rs, sql

set db = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("dados.mdb")
%><html>
<head>
<title>Chat Canoas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<body topmargin="0">

<%    
sql = "select * from noticias INNER JOIN membros"    
sql = sql & "ON noticias.id_autor = membros.id"  
sql = sql & "where id=" & id 
rs.open sql,db 
if rs.eof then 
%><h4 align="center" class="cor2">Notícia não existente</h4>
<p align="center"><a href="javascript:history.back()"><img src="http://www.chatcanoas.pop.com.br/icons/seta_left.gif" border="0" width="10" height="09"> Voltar</a></b></p>
<%
else
%><table class="bg2" width="418" border="0" align="center" cellpadding="0" cellspacing="1">
<tr class="bg1"> 
<td width="25%"><%=day(rs("data"))%>/<%=month(rs("data"))%> - <%=hour(rs("data"))%>:<%=minute(rs("data"))%></td>
<td width="367">&nbsp;<b><a href="noticia.asp?id=<%=rs("id")%>"><%=rs("titulo")%></a></b></td>
</tr>
<tr class="bg1"> 
<td colspan="2" class="bg2">
<table width="130" border="0" align="left">
<tr>
<td align="center"><img src="figuras\usr_<%=rs("id_autor")%>.jpg"></td>
</tr>
</table><%=rs("sobre")%></td>
</tr>
<tr class="bg2" height="18"> 
<td height="18" colspan="2"><table width="410" height="18" border="0" align="center" cellpadding="0" cellspacing="0" class="noticia">
<tr>
 <td width="295" style="border-right=#F8F9FB 1px solid;">Autor:
<a href="perfil.asp?id=<%=rs("id_autor")%>">Autor apelido<!-- Como faço pra mostrar o apelido do Autor ou qualquer outro do dado do mesmo? --></A>
</td>
<%  
Dim total,garotos,garotas
set db = Server.CreateObject("ADODB.Connection")  
db.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/geral.mdb")  
set rs = Server.CreateObject("ADODB.recordset")  
rs.open "SELECT COUNT(*) As total_comentarios FROM membros",db,1,1  
total_comentarios = rs("total_comentarios")
rs.close 

db.close
set rs = nothing 
set db = nothing 
%><td width="115" align="right">&nbsp;<a href="noticia.asp?id=<%=rs("id")%>">Coment&aacute;rios</a> (<%response.write(total_comentarios)%>)</td>
</tr>
</table></td>
</tr>
</table>
<%end if%>

<%
db.Close
Set rs = Nothing
Set db = Nothing
%>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Brother!!

sql = "select * from noticias INNER JOIN membros"
Não sei ao certo, mas vamos lá. INNER JOIN é usado mais para relacionamento de campos de tabela para tabela. Experimente usar ou selecionar só o campo especifico da tabela: Ex:
Select nome.membros from membros
ou a tabela completa; Ex:
Select * from membros

.

Pois acho que esta instrução no código esta incorreta.

Abraços!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Bem galera, vou explicar o que eu quero fazer então.

Tenho um BD com várias tabelas, e a principal delas é a membros, onde guarda os dados pessoais de cada membro cadastrado no site.

Depois tenho outras tabelas, as que eu considero de maior importancia depois desta, são a eventos e noticias. Pois bem, nelas ficara armazenado os seguintes campos, respectivamente;

- id, nome, local, data, descricao, id_organizador;

- id, id_autor, titulo, descricao, data;

Então... o id_organizador e id_autor seriam campos que teria o id do usuário cadastrado na tabela membros. Ex.: Eu fui a primeira a pessoa à me cadastrar em meu site, então meu id será 1. Até aí tudo ok. Então eu irei anunciar/promover um evento, daí na hora q eu kerer fazer isso, teria de ser inserido na tabela eventos todos os dados, inclusive o meu id, q seria inserido no campo id_organizador.

Deu pra entender?

Pelo que eu saiba, tenho de usar INNER JOIN. Acho eu que meu código está certo, mas está dando erro. Desculpe, mas não sei. Se alguém puder me ajudar a resolver este problema ficarei grato.

Para quem tiver interessado em saber mais sobre INNER JOIN e querer me ajudar, aqui disponiblizo um link que mostrará um artigo que fala como usar INNER JOIN. Clique aqui e veja o artigo ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Ae rapaziada..

descobri q tudo está ok, o unico problema está no where.

pois em todas as tabelas há um campo com o mesmo nome: id.

Então, na hora de fazer o select, ele não sabe de ql tabela selecionar o id, se é da membros ou da noticias.

então eu mudei a instrução, ficando assim:

<%
sql = "select DISTINCT * from noticias INNER JOIN membros "    
sql = sql & "ON noticias.id_autor = membros.id "  
sql = sql & "where noticia.id='"&id&"' "
rs.open sql,db 
if rs.eof then 
%>
Então vejam o q eu quero... quando eu acessar noticia.asp?id=1 mostrará a noticia de id nº1, da tabela noticias, isso usando querystring. Mas quando eu fiz esta sql deu este erro:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /chatcanoas/noticia.asp, line 41
A linha 41 é a do rs.open sql,db Mas sei q o erro está no finalzinho do código ali da instrução sql, mas não sei como faze-lo funcionar (noticia.id='"&id&"') Lembrando q o inicio do código tem isso:
<%
Option Explicit

dim id

if id = "" then id = request.QueryString("id")

dim db, rs, sql

set db = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
db.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("dados.mdb")
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Ai ai, vivendo e aprendendo... com muito esforço galera, eu ando me superando.

Antes de postar as dúvidas, eu juro q procuro as respostas em tudo quanto é canto. Se não acho, venho aki e posto a dúvida, mas isso não quer dizer que eu deixo de procurar esclarecer minha dúvida pesquisando sozinho em todos meios disponiveis na internet.

Pois bem, testei nesta linha

sql = sql & "where noticia.id='"&id&"' "

tirar as aspas simples ', pois lembrei o id é um numero, então não é string... dae funfou.

Ah, retirei o DISTINCT q tinha colocado, a principio eu não tinha entendido direito pra q servia, depois q entendi vi q só estava atrapalhando.

De qlqr forma, obrigado.

Obs.: fiquei fazendo umas consultas sql com BD e dae surgiu tal idéia.

Link para o comentário
Compartilhar em outros sites

  • 0

:D Putz, q mala eu sou...

Volto aki pra pedir um help...

agora to fazendo a evento.asp que trabalhará principalmente com a tabela eventos, q tem os seguintes campos.

- id, nome, local, data, descricao, id_organizador

E trabalhará também com a tabela membros, que tem como principais campos:

- id, nome, apelido, descricao

Pois bem, note que há campos de mesmo nome em ambas tabelas, pois bem...

Estou listando um evento, o de id nº2, da tabela eventos né. (evento.asp?id=2) B)

Então na tela deveria aparecer:

data do evento, nome do evento, hora do evento, local do evento, organizador do evento e a descrição do evento.

pois bem... como faria pra dar o recordset no nome e na descricao da tabela eventos? Ou seja, não quero mostrar o nome do membro e nem a descrição do membro, mas sim do evento.

Tentei fazer rs("eventos.nome") e rs("eventos.descricao") mas não dá, preciso de ajuda. :blink:

Qlqr coisa, icq 322840175.

Por favor, me ajudem nesta parte... falta pouco. ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Alouuuu...

Vou resumir minha dúvida/problema:

Consegui fazer um INNER JOIN de 2 Tables. Ele responde tudo sem erro, mas tem um problema: Nas 2 tables tenho campos repetidos: nome, descricao que não são comum. No Response.Write ele so pega de 1 table.

Há alguma maneira deu especificar de qual tabela quero nome, sobre...? :blink:

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...