Ir para conteúdo

POWERED BY:

Arquivado

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

ahsc

[Resolvido] Campos vazios no bd

Recommended Posts

Olá galera, tudo certo?

 

Seguinte: tô montando uma consulta aqui na base de dados access e eu gostaria que apenas dados preenchidos em determinado campo da tabela fosse exibido.

O código está assim:

 

CODE
<%

Dim strSql1, RsCategoriaItem, codSubCategoria

codSubCategoria=request.QueryString("subcategoria")

if codSubCategoria=18 then

strSql1 = "Select cod_produto, explodida, nome_produto FROM produto"

Set RsCategoriaItem = Server.CreateObject("ADODB.Recordset")

RsCategoriaItem.Open strSql1, MM_conexao_STRING

While NOT RsCategoriaItem.EOF

if (RsCategoriaItem("explodida")< >" ") then

%>

<table width="548" border="0" align="center">

<tr><td width="28" align="left" valign="middle"><img src="imagem/ok.png" alt="ok" width="20" height="20" /> </td>

<td width="510" height="25" align="left" valign="middle" class="mailcontato"><a href="<%= RsCategoriaItem("explodida")%>" target="_blank"><%= RsCategoriaItem("nome_produto") %></a></td>

</tr>

</table>

<%

RsCategoriaItem.MoveNext()

Wend

RsCategoriaItem.Close()

Set RsCategoriaItem = Nothing

end if

end if

%>

e obtenho o seguinte erro:

 

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

 

* Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A03EA)

Erro de sintaxe

/azzurra/web/novosite/download.asp, line 60, column 34

if (RsCategoriaItem("explodida")< >" ") then

---------------------------------^

Alguém poderia me dar um help nessa questão?

 

Obrigado a quem puder me dar uma ajudinha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da forma com a qual você me passou, deu esse erro:

 

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

 

* Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0400)

Instrução esperada

/azzurra/web/novosite/download.asp, line 69

Wend

 

não sei como resolver isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro está mais abaixo e não ocorreu devido a solução do cabo gel.

 

certamente você iniciou um while e não colocou o wend

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais tem o wend sim. veja o código:

 

CODE

<%

Dim strSql2, RsCategoriaItem1, codSubCategoria1

codSubCategoria1=request.QueryString("subcategoria")

if codSubCategoria1=26 then

strSql2 = "Select cod_produto, manual, nome_produto FROM produto"

Set RsCategoriaItem1 = Server.CreateObject("ADODB.Recordset")

RsCategoriaItem1.Open strSql2, MM_conexao_STRING

While NOT RsCategoriaItem1.EOF

%>

<table width="548" border="0" align="center">

<tr><td width="28" align="left" valign="middle"><img src="imagem/ok.png" alt="ok" width="20" height="20" /> </td>

<td width="510" height="25" align="left" valign="middle" class="mailcontato">

<a href="<%= RsCategoriaItem1("manual")%>" target="_blank"><%= RsCategoriaItem1("nome_produto") %></a>

</td>

</tr>

</table>

<%

RsCategoriaItem1.MoveNext()

Wend

RsCategoriaItem1.Close()

Set RsCategoriaItem1 = Nothing

end if

%>

A idéia é a seguinte: Depois que houve a consulta no bd, só exibir o campo manual se ele não estiver vazio.

 

Daí eu fiz assim:

 

CODE

<%

Dim strSql2, RsCategoriaItem1, codSubCategoria1

codSubCategoria1=request.QueryString("subcategoria")

if codSubCategoria1=26 then

strSql2 = "Select cod_produto, manual, nome_produto FROM produto"

Set RsCategoriaItem1 = Server.CreateObject("ADODB.Recordset")

RsCategoriaItem1.Open strSql2, MM_conexao_STRING

if <%= RsCategoriaItem1("manual")%> <> "" then

While NOT RsCategoriaItem1.EOF

%>

<table width="548" border="0" align="center">

<tr><td width="28" align="left" valign="middle"><img src="imagem/ok.png" alt="ok" width="20" height="20" /> </td>

<td width="510" height="25" align="left" valign="middle" class="mailcontato">

<a href="<%= RsCategoriaItem1("manual")%>" target="_blank"><%= RsCategoriaItem1("nome_produto") %></a>

</td>

</tr>

</table>

<%

RsCategoriaItem1.MoveNext()

Wend

RsCategoriaItem1.Close()

Set RsCategoriaItem1 = Nothing

end if

end if

%>

Aí me retorna erro ou não mostra todos os campos da mesma forma. Independente do campo manual na tabela do bd estar vazio ou não.

 

Não gostaria de mexer na estrutura de tabela já que teria que mexer em todos os scripts do programa

 

Se alguém puder dar um help eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem algo a mais aí não?

if <%= RsCategoriaItem1("manual")%> <> "" then <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem algo a mais aí não?

if <%= RsCategoriaItem1("manual")%> <> "" then <_<

O trecho do código ao qual você se refere seria para informar ao sistema de que só registros nos quais o campo "manual" estejam preenchidos devam ser exibidos, desconsiderando os registros os quais o campo "manual" estiver vazios.

 

Mais isso não ocorre e não sei o porquê não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele disse para tirar as tags asp que estao sobrando ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

atá, já fiz isso mais mesmo assim não deu certo. Duas formas que eu fiz o código. A primeira:

 

CODE
<%

Dim strSql1, RsCategoriaItem, codSubCategoria

codSubCategoria=request.QueryString("subcategoria")

if codSubCategoria=18 then

strSql1 = "Select cod_produto, explodida, nome_produto FROM produto"

Set RsCategoriaItem = Server.CreateObject("ADODB.Recordset")

RsCategoriaItem.Open strSql1, MM_conexao_STRING

While NOT RsCategoriaItem.EOF

if RsCategoriaItem("explodida") <> " " then

%>

<table width="548" border="0" align="center">

<tr><td width="28" align="left" valign="middle"><img src="imagem/ok.png" alt="ok" width="20" height="20" /> </td>

<td width="510" height="25" align="left" valign="middle" class="mailcontato">

<a href="explodidas<%= RsCategoriaItem("explodida")%>" target="_blank"><%= RsCategoriaItem("nome_produto") %></a></td>

</tr>

</table>

<%

RsCategoriaItem.MoveNext()

 

Wend

RsCategoriaItem.Close()

Set RsCategoriaItem = Nothing

end if

end if

%>

Foi apresentado esse erro:

 

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0400)

Instrução esperada

/azzurra/web/novosite/download.asp, line 71

Wend

 

onde linha 71 equivale aonde está o Wend

 

Da segunda forma:

 

CODE
<%

Dim strSql1, RsCategoriaItem, codSubCategoria

codSubCategoria=request.QueryString("subcategoria")

if codSubCategoria=18 then

strSql1 = "Select cod_produto, explodida, nome_produto FROM produto"

Set RsCategoriaItem = Server.CreateObject("ADODB.Recordset")

RsCategoriaItem.Open strSql1, MM_conexao_STRING

While NOT RsCategoriaItem.EOF

if RsCategoriaItem("explodida") <> " " then

%>

<table width="548" border="0" align="center">

<tr><td width="28" align="left" valign="middle"><img src="imagem/ok.png" alt="ok" width="20" height="20" /> </td>

<td width="510" height="25" align="left" valign="middle" class="mailcontato">

<a href="explodidas<%= RsCategoriaItem("explodida")%>" target="_blank"><%= RsCategoriaItem("nome_produto") %></a></td>

</tr>

</table>

<%

RsCategoriaItem.MoveNext()

end if

Wend

RsCategoriaItem.Close()

Set RsCategoriaItem = Nothing

end if

%>

Não houve erro, porém o campo da tabela que chama-se "explodida" apresentou todos os registros, inclusive os em branco que não quero que apareça.

 

Tem alguma coisa haver com o if está dentro do while ou é leda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na primeira o erro esta acontecendo porque voce abriu um if dentro do wend e nao o fechou ou entao o fechou fora

 

veja seu codigo e corrija isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, esse erro agora entendi por que deu. Mesmo assim ele ainda continua exibindo todos os registros do campo explodida que está no bd. Mesmo os campos não preenchidos. Com eu faço para que ao executar uma consulta no bd ele me retorne apenas os registros cujo campo "explodidas" esteja preenchido? É aí onde até o momento não consegui resolver

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem qeu mudar no select

 

strSql1 = "Select cod_produto, explodida, nome_produto FROM produto WHERE explodida <> ''"

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem qeu mudar no select

 

strSql1 = "Select cod_produto, explodida, nome_produto FROM produto WHERE explodida <> ''"

Então desta forma não precisarei mais de ifs e só obterei os registros cujo campo estaja preenchido, não é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

exato

Mário, só mais uma duvida. No meu select como informo que o campo está em branco?

 

fiz assim e deu erro: "Select cod_produto, explodida, nome_produto FROM produto WHERE esplodida <> ' '"

 

obrigado pela força

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que está resolvido

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.