Ir para conteúdo

POWERED BY:

Arquivado

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

hunger

erro em sist. de eventos

Recommended Posts

fala..... beleza?

 

nestes ultimos dias tenho aparecido direto aqui resolvendo alguns probleminhas no sistema q estou fazendo. estou perto do fim.... mas como sempre preciso de uma ajuda de vcs!

 

este deve ser simples. á página em questão foi feita para listar os registros do banco de dados. Mas quando abro a pagina, ele diz q nao foi encontrado registros.... de acordo com a programção, q pede para escrever isso na tela caso nao tenha nada. mas tem!

 

vou postar o código, e por favor, se alguem tiver alguma sugestão do q pode ser o erro, me avise! agradeço desde já!

 

Marcos Hunger.

 

 

<% 'Efetuando a conexão com a base de dados criada -----------------------Set Conn = Server.CreateObject("AdoDb.Connection") Conn.provider="Microsoft.Jet.OLEDB.4.0" Conn.connectionstring="e:\home\dad\dados\bdeventos.mdb" Conn.open '--------------------------------------------------------------------------'Vamos criar o objeto Record Set -> neste caso é necessário declará-lo,'pois vamos utilizar algumas funções deste objeto Set RS = Server.CreateObject("adodb.recordset")RS.PageSize = 10 'quantidade de registros por página. Você pode alterar sem conforme precise.Dim RS__MMColParamRS__MMColParam = "ativa"If (Request("MM_EmptyValue") <> "") Then   RS__MMColParam = Request("MM_EmptyValue")End If'Vamos fazer a busca na tabela contatosSQL = "SELECT * FROM eventos WHERE STATUS = '" + Replace(RS__MMColParam, "'", "''") + "' ORDER BY ID DESC"RS.Open SQL,Conn,3'Vamos agora verificar exceções do tipo “fim de arquivo” (EOF), se a página atual é menor 'que zero, se é maior que o número total de páginas, etc.IF RS.EOF then Response.Write "nenhum registro encontrado"Response.End 'paramos o programaELSE'Definindo em qual pagina o visitante estáIF Request.QueryString("pagina")="" then intpagina=1 ELSEIF cint(Request.QueryString("pagina"))<1 thenintpagina=1 ELSEIF cint(Request.QueryString("pagina"))> RS.PageCount then intpagina=RS.PageCount ELSEintpagina=Request.QueryString("pagina")END IFEND IFEND IFEND IF'Fim das verificações de exceções'Usamos a propriedade AbsolutePage para dizer ao RS que página ele esta RS.AbsolutePage=intpagina' Inicia o contador que vai controlar os registros mostradosintrec=0%><table width="578" border="0" cellpadding="4" cellspacing="1"><% 'Enquanto o contador for menor que a quantidade de registros mostrados ou' não for o final do arquivo While intrec < RS.PageSize and not RS.EOF '------------------- AQUI VEM TUDO O QUE SERÁ PAGINADO -----------------------If (cor = "#EFF1F5") Thencor = "#F8F9FC"Elsecor ="#EFF1F5"End If%><tr align="left" valign="top" class="texto"> <td width="40%" valign="middle" bgcolor="<%=cor%>" class="texto"><div align="left"><strong><%=(RS("TITULO_EVENTO"))%></strong></div></td><td width="40%" valign="middle" bgcolor="<%=cor%>" class="texto"> <div align="left"><%response.write Left ((RS("LOCALIDADE")),25)%>...</div></td><td width="14%" valign="middle" bgcolor="<%=cor%>"><div align="right"><%=(RS("DIA"))%>/<%=(RS("MES"))%>/<%=(RS("ANO"))%></div></td><td width="6%" valign="middle" bgcolor="<%=cor%>"> <div align="center"><a href="view.asp?ID=<%=(RS("ID"))%>">Detalhes</a></div></td></tr><% '---------------------------------------------------------------------------------------------RS.MoveNext' Acrescenta +1 ao contadorintrec=intrec+1 'Se for EOF (fim de arquivo), imprimir branco na telaIF RS.EOF then response.write " " END IFWend 'fim do loop%></table>    <div align="center"><br>      <%'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”. IF intpagina > 1 then %>      <a href="eventos.asp?pagina=<%=intpagina-1%>" class="noticia">[ Anterior ]</a>         <% END IF 'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página IF strcomp(intpagina,RS.PageCount) <> 0 then %>       <a href="eventos.asp?pagina=<%=intpagina + 1%>" class="noticia">[ Próxima ]</a>       <% END IF%>      <%RS.Close()Set RS = Nothing%></p>      </div>  </div></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah, vou verificar uma coisa. talvez la no servidor o bd esteja apenas com permissao de escrita, e nao de leitura....> bom....jacabei de fazer isso. mas continua a mesma coisa. ate pq na verdade lendo ele ja estava, pq tem uma outra pagina q puxa informações dele numa boa. entao desconsiderem isso. só preciso entender pq nesta pagina agora nao está retornando o rsultado. se alguem tiver alguma sugestao, por favor avise..... to perdido aqui! ja olhei esse codigo mil vezes, nao vejo nada de errado!abço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa....bom, estou até agora tentando achar alguma coisa errada... mas nao consegui!se alguém entao tiver qquer sugestão.... avisa ae, ok?!agradeço a todos...marcos hunger

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos...Seu Programa parece bem funcional... não consegui achar outro problema....Mas oq pode ser é sua instrução SQLFaça o Seguinte...Retire todo o codigo de execução da instrução SQLColoque assimResponse.Write SQLanalise a instrução impressa na tela e veja se não há algum problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

'Vamos fazer a busca na tabela contatos

SQL = "SELECT * FROM eventos WHERE STATUS = '" + Replace(RS__MMColParam, "'", "''") + "' ORDER BY ID DESC"Response.Write SQL

Tentae... não custa nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza.... vou ver e caso nao saiba como arrumar eu posto aqui o resultado, ok?valeu pela ajuda,Marcos Hunger.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, escreveu isso na tela:SELECT * FROM eventos WHERE STATUS = 'ativa' ORDER BY ID DESCnenhum registro encontradocoloquei exatamente onde você explicou....

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q você tinha pedido antes pra retirar o sql ne....

 

entao eu retirei o seguinte:

 

RS.Open SQL,Conn,3

q ficava abaixo do:

 

SQL = "SELECT * FROM eventos WHERE STATUS = '" + Replace(RS__MMColParam, "'", "''") + "' ORDER BY ID DESC"

e adicionando o:

 

Response.Write SQL

deu o seguinte como retorno:

 

SELECT * FROM eventos WHERE STATUS = 'ativa' ORDER BY ID DESC ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed. /eventos/eventos.asp, line 203

Compartilhar este post


Link para o post
Compartilhar em outros sites

A instrução SQL esta exatamente como você queria???PQ você Tem esta parte na instrução SQL?= '" + Replace(RS__MMColParam, "'", "''") + "'??

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola, isso está definido antes, com:

Dim RS__MMColParamRS__MMColParam = "ativa"If (Request("MM_EmptyValue") <> "") Then   RS__MMColParam = Request("MM_EmptyValue")End If

mas é o seguinte.... sou iniciante em asp, nao manjo direito. e como estou fazendo pelo DW, ele joga um monte de código.... todas as outras paginas estão funcionando, e tem isso.... você acha q neste caso pode ser q este trecho do código esteja causando o erro?sei q sem o dw a programação ficaria mais leve, sem tanta coisa.... mas ainda nao sei fazer "na unha"....

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eh o seguinte não tem nada errado na sua SQLverifica se tem algum registro que tenha o campo STATUS ativo

Compartilhar este post


Link para o post
Compartilhar em outros sites

FabricioO erro esta ai pq eu pedi que ele retirasse o Comando RS.Open..por isso gerou o erro ... mas oq interessa é o Response.Write SQLimprime na tela como o programa esta interpretando a instrução SQLisso pra ver se não há erros com a instrução

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, ja verifiquei...poderia ser mesmo, mas no caso ha registros ativos sim....

Cara o fato é:Como há registros ele deveria pegar, pois não importa o codigo que o DW gera, se é um lixo, se é exagerado ou o que, só importa a SQL final, o que realmente é tentado fazer, e o que rola é isso:SELECT * FROM eventos WHERE STATUS = 'ativa' ORDER BY ID DESCou seja se tem registros na tabela eventos que tenham o campo STATUS igual a string "ativa" então pega...Se tem deveira tá pegando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é.... logo de cara, qdo disse nao ter registros, olhei la se havia ou nao.... justamente por essa linha de comando q você comentou.o estranho é q a pagina parece nao ter erro. e ha registros ativos..... nao sei pq nao dá!tp, pensei q poderia ser algum erro no bd. mas, as outras paginas q utilizam este bd estão funcionando normalmente.... a pagina q grava registros nele, a q altera, exclui..... e a q lista os registros.agora nao sei q raios tem nessa pagina q nao mostra nada!sem contar com esse lance do sql, que pelo q nos vemos está certinho, o q você acha q poderia ter algum erro, q pudesse impedir a programação de puxar os registros la do bd?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz uma página separada, sem paginação usando só a base desse script, seria +/- isso:

Set Conn = Server.CreateObject("AdoDb.Connection")

Conn.provider="Microsoft.Jet.OLEDB.4.0"

Conn.connectionstring="e:\home\dad\dados\bdeventos.mdb"

Conn.open

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

 

'Vamos criar o objeto Record Set -> neste caso é necessário declará-lo,

'pois vamos utilizar algumas funções deste objeto

Set RS = Server.CreateObject("adodb.recordset")

 

Dim RS__MMColParam

RS__MMColParam = "ativa"

 

'Vamos fazer a busca na tabela contatos

SQL = "SELECT * FROM eventos WHERE STATUS = '" + Replace(RS__MMColParam, "'", "''") + "' ORDER BY ID DESC"

RS.Open SQL,Conn,3

 

IF NOT RS.EOF then

Response.Write RS.RecordCount &" Registros<BR>"

ELSE

Response.Write "Vazio"

End If

Feche a conexão e o RecordSet

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP [/tr][tr]

Set Conn = Server.CreateObject("AdoDb.Connection")

Conn.provider="Microsoft.Jet.OLEDB.4.0"

Conn.connectionstring="e:\home\dad\dados\bdeventos.mdb"

Conn.open

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

 

'Vamos criar o objeto Record Set -> neste caso é necessário declará-lo,

'pois vamos utilizar algumas funções deste objeto

Set RS = Server.CreateObject("adodb.recordset")

 

Status = "Ativa"

 

'Vamos fazer a busca na tabela contatos

SQL = "SELECT * FROM eventos WHERE STATUS ="

SQL = SQL & Status & " ORDER BY ID DESC"

RS.Open SQL,Conn,3

 

IF NOT RS.EOF then

Response.Write RS.RecordCount &" Registros<BR>"

ELSE

Response.Write "Vazio"

End If

Feche a conexão e o RecordSet

[/tr]

 

Tenta Assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo do BD está como texto ou é do tio boleano?

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.