ASP- Acessar dados do BD

5 respostas
ferpelegrini

Alguém pode me ajudar???

Estou com o seguinte problema:

No meu projeto foi definido que o usuário ao fazer o login teria deacordo com as permissões os links ou sua tela criada.
Por isso forma ciradas as seguintes tabelas : LOGIN, PERMISSOES, PERM_FUNC
Na tabela login e perm_func as campos : login = cod_func
Na tabela permissoes e permfunc os campos sao iguais : cod_perm.permissao = cod_perm.perm_func

O código é o seguinte:

[color=blue]
Dim conexao
Dim sql
Dim sqlrs

'Antes tem que instanciar o objeto Connection

set conexao = Server.CreateObject(“ADODB.Connection”)

set sqlrs   = server.CreateObject(“ADODB.Recordset”)

'Uma vez instanciado Connection podemos abri-lo e lhe atribuímos ao banco de dados onde vamos efetuar as operações
conexao.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(“cachaca.mdb”) & “;”

‘Agora criamos a instrução SQL que nos servirá para falar ao BD
sql = “select * from login WHERE login= '”&user&"’ AND senha=’"&pass&"’ "

'Executamos o SQL
Set sqlrs = conexao.Execute(sql)

'verifica se encontrou os dados
if sqlrs.EOF Then
Response.redirect “error.asp”
Response.end()

Else

[b]

Set sqlrs = conexao.Execute("Select * FROM permissoes a, perm_func b WHERE a.cod_perm = b.cod_perm and b.cod_func ='"&user&"'")

		'Mostramos os registros
		   DO WHILE not sqlrs.eof

%>

<tr>
  <td>
&nbsp;
<a href= <%=sqlrs("a.nome_perm") %> ><%sqlrs("a.nome_perm")%> </a>
  </td>
  </tr>

<%
sqlrs.MoveNext

LOOP
	
	END IF[/b]

'Fechamos o sistema de conexão

sqlrs.close
	Set sqlrs = nothing
	
	conexao.close

[/color]

Todavia não estou conseguindo conectar e criar o link

aparece o seguinte erro: [size=18] [/size][size=12] [/size]

[b][color=red]ADODB.Recordset error ‘800a0cc1’

Item cannot be found in the collection corresponding to the requested name or ordinal.

/cachacatamandua/inicial.asp, line 77[/color]
[/b]

5 Respostas

otaviofcs

estou achando que o problema é o nome da tabela. Quando você descreveu (erradamente até pois colocou campo.tabela e não o contrário), disse:

cod_perm.permissao

o nome da tabela é permissao ou permissoes?

S

Na verdade o que tá dando erro aí é o

<a href= <%=sqlrs("a.nome_perm") %> ><%sqlrs("a.nome_perm")%> </a>

vc tem que colocar sem o alias ok.

tenta assim

<a href= <%=sqlrs("nome_perm") %> ><%sqlrs("nome_perm")%> </a>

Abraços

Pedrosa

E o ASP tem um bug clássico de ’ , sempre substitua ’ por " com o replace evitar problemas de SQL Injection, de uma pesquisada sobre isso, se vc digitar um ’ em qualquer campo e gerar erro a página esta desprotegida.

felipeguerra

Sem querer ser chato, mas pq vc não cria uma DLL para fazer a parte de acesso ao banco???

JMan

Ao que parece, você está buscando no recordset por um campo que não existe. Verifique sua tabela.

Criado 16 de junho de 2008
Ultima resposta 16 de jun. de 2008
Respostas 5
Participantes 6