Ir para conteúdo

POWERED BY:

Arquivado

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

Pelinçari

Exibir imagem em uma tabela bucando do banco

Recommended Posts

Boa tarde pessoal, sou novo no forum então já vou me desculpando se cometer algum deslize...

 

Procurei em varios topicos e não consegui encontrar a solução para meu problema, mas já verifiquei que exitem pessoas fazendo o que estou precisando, pena que a duvida era diferente.

 

Estou fazendo uma consulta para exibir os aniversariantes do Mês, as imagens estão salvas em uma tabela do SQL SERVER, mas não sei como carregar na página.

 

Segue abaixo meu código, agradeço a ajuda.

 

Criei um arquivo de conexão com o banco.

 

=========ConexaoBarramar.inc================

<%
sub AbreConexao
  set conexaoDB = Server.CreateObject("ADODB.Connection")
  conexaoDB.CursorLocation=3
  ConexaoDB.Open "Provider=SQLOLEDB;DATABASE=BARRAMAR;SERVER=Note-PC;UID=TC;PASSWORD=TC"
end sub


sub FechaConexao
  conexaoDB.close
  set conexaoDB = nothing
end sub
%>


=========niver.asp============

<!--#include file="conexaoBarramar.inc"-->

<%

DIM conexaoDB, rsNiver, sqlNiver

sqlNiver = " SELECT FOTO_FUNCIONARIO.FOTO, DATEPART(DAY, FUNCIONARIOS.NASCIMENTO) AS DIA, FUNCIONARIOS.CHAPA, FUNCIONARIOS.NOME, CARGOS.DESCRICAO"
sqlNiver = sqlNiver + " FROM FUNCIONARIOS, CARGOS, FOTO_FUNCIONARIO"
sqlNiver = sqlNiver + " WHERE CARGOS.ID_CARGO = FUNCIONARIOS.ID_CARGO"
sqlNiver = sqlNiver + " AND FUNCIONARIOS.ID_FUNCIONARIO = FOTO_FUNCIONARIO.ID_FUNCIONARIO"
sqlNiver = sqlNiver + " AND FUNCIONARIOS.DATA_DESLIGAMENTO IS NULL"
sqlNiver = sqlNiver + " AND DATEPART(MONTH, FUNCIONARIOS.NASCIMENTO)= DATEPART(MONTH, GETDATE())"
sqlNiver = sqlNiver + " ORDER BY 2,3"

Call AbreConexao
Set rsNiver= conexaoDB.Execute(sqlNiver)


%>



<table border="0" cellspacing="2" cellpadding="1" width="590">
<tr>
<td colspan="5" width="589" heigth="240" background="imagens/parabens.jpg"><img src="/Barramar/Imagens/parabens.jpg" alt="Bomfim" border="0" ></td>
</tr>
<tr></tr>
<tr></tr>
<tr>
<td  bgcolor="green" width="10%"> Foto</td>
<td  bgcolor="green" width="5%"> Dia</td>
<td  bgcolor="green" width="10%"> Chapa</td>
<td  bgcolor="green" width="45%"> Nome</td>
<td  bgcolor="green" width="30%"> Cargo</td>
</tr>

<% Do While Not rsNiver.Eof %>


<tr>

<td valign="top" class="Corpo"><img scr="<% = rsNiver("Foto") %>" border="0" /></td>
<td valign="top" class="Corpo"><% = rsNiver("DIA") %></td>
<td valign="top" class="Corpo"><% = rsNiver("CHAPA") %></td>
<td valign="top" class="Corpo"><% = rsNiver("NOME") %></td>
<td valign="top" class="Corpo"><% = rsNiver("DESCRICAO") %></td>
</tr>

<% 
rsNiver.MoveNext 
Loop
%>

</table>


<% 
rsNiver.Close 
Call fechaConexao
Set rsNiver = Nothing

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui :

<img scr="<% = rsNiver("Foto") %>"

 

coloca:

<img src="<% = rsNiver("Foto") %>"

 

 

Vinicius, obrigado pela ajuda, mas o problema não é esse. Acredito que tenha uma função para carregar a imagem em arquivo antes de exibir na pagina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

basicamente, seria, <img src="<% = rsNiver("Foto") %>" se o rs for um endereço válido...

ele esta gerando algum erro ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

basicamente, seria, <img src="<% = rsNiver("Foto") %>" se o rs for um endereço válido...

ele esta gerando algum erro ????

 

Não gera erro, mas também não carrega as imagens... Fica com aquele "X".

 

Pelo que andei lendo tem função para extrair a imagem do banco antes de exibir.

 

O campo do banco é do tipo IMAGE e estou usando o SQL SERVER 2008.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria usando o response.binarywrite ?

 

Acredito que sim, pelo menos é isso que vi em alguns codigos!

 

Sabe como aplicar?

 

Pode ser um exemplo simples se souber!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tem muito segredo, sabe aqueles scripts de upload sem componentes ? Eles usam isso.

a sintaxe é + / - assim:

response.binarywrite rs("campo")

 

Mais uma vez obrigado, mas ainda não deu certo!

 

Nunca imaginei que fosse tão dificil carregar as imagens do banco, estou pesquisando e nenhum codigo que encontro funciona.

 

Já testei outros codigos sem aplicar na minha pagina para testar e nada, vou continuar tentando se achar a solução eu POSTO aqui!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é como falei no post #4, no seu bd, como você esta salvando no campo, coloque apenas o caminho da imagem no bd...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é como falei no post #4, no seu bd, como você esta salvando no campo, coloque apenas o caminho da imagem no bd...

 

Xanburzum,

 

Eu não estou salvando o caminho no DB, a imagem esta salva em um campo do tipo IMAGE.

 

Eu achei um topico em outro forum que ensina como carregar a foto, so que esse codigo so exibe a imagem no browser.

 

Segue o codigo que encontrei, talvez consiga me ajudar a colocar a foto no local que preciso.

 

<%
set rs = createobject("adodb.recordset")
set rs.activeconnection = conexaoDB
rs.CursorLocation = 3
rs.CursorType = 2
rs.LockType = 1 
rs.open "SELECT CAMPO_FOTO FROM TABELA_FOTO WHERE ID = XXXX "
if not rs.eof then


response.Expires = 0
response.Buffer = TRUE
response.clear
Response.ContentType = "image/bmp"  
Response.BinaryWrite rs("CAMPO_FOTO")
End If
%>"

Nunca imaginei que fosse uma coisa tão dificil de fazer!

 

Acho que já procurei em todos os foruns que existe e não encontro solução, mas não vou desistir.

 

Assim que encontrar eu posto aqui pessoal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que geralmente usamos é guardar o caminho, fica mais fácil, mas se você esta usando um campo image,

precisa usar o BinaryWrite e mude o ContentType = "image/jpg"

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que geralmente usamos é guardar o caminho, fica mais fácil, mas se você esta usando um campo image,

precisa usar o BinaryWrite e mude o ContentType = "image/jpg"

 

Mas uma vez obrigado Xanburzum, mas não deu certo...

 

Não posso alterar o ContentType = "image/bmp" para ContentType = "image/jpg" senão aparecem caracteres no lugar da imagem. Parece que a aplicação usada para salvar as fotos no banco grava em .bmp, já estou pensando em extrair as fotos do banco e gravar cada imagem com o mesmo ID do funcionario assim não preciso alterar a estrutura do banco de dados.

 

Queria resolver tudo no ASP mas parece que não tem jeito, eu tenho uma aplicação em delphi para extrair as fotos, vou aguardar mais uns dias e ver se aparece um TANKADO aqui...

 

Pessoal, veja se podem me ajudar...

 

Esse codigo exibe a imagem no navegar...

<% 
set rs = createobject("adodb.recordset") 
set rs.activeconnection = conexaoDB 
rs.CursorLocation = 3 
rs.CursorType = 2 
rs.LockType = 1  
rs.open "SELECT CAMPO_FOTO FROM TABELA_FOTO WHERE ID = XXXX " 
if not rs.eof then 
 
 
response.Expires = 0 
response.Buffer = TRUE 
response.clear 
Response.ContentType = "image/bmp"   
Response.BinaryWrite rs("CAMPO_FOTO") 
End If 
%>
Queria colocar ele dentro desse codigo abaixo para exibir a foto de cada funcionario...

<!--#include file="conexaoBarramar.inc"--> 
 
<% 
 
DIM conexaoDB, rsNiver, sqlNiver 
 
sqlNiver = " SELECT FOTO_FUNCIONARIO.FOTO, DATEPART(DAY, FUNCIONARIOS.NASCIMENTO) AS DIA, FUNCIONARIOS.CHAPA, FUNCIONARIOS.NOME, CARGOS.DESCRICAO" 
sqlNiver = sqlNiver + " FROM FUNCIONARIOS, CARGOS, FOTO_FUNCIONARIO" 
sqlNiver = sqlNiver + " WHERE CARGOS.ID_CARGO = FUNCIONARIOS.ID_CARGO" 
sqlNiver = sqlNiver + " AND FUNCIONARIOS.ID_FUNCIONARIO = FOTO_FUNCIONARIO.ID_FUNCIONARIO" 
sqlNiver = sqlNiver + " AND FUNCIONARIOS.DATA_DESLIGAMENTO IS NULL" 
sqlNiver = sqlNiver + " AND DATEPART(MONTH, FUNCIONARIOS.NASCIMENTO)= DATEPART(MONTH, GETDATE())" 
sqlNiver = sqlNiver + " ORDER BY 2,3" 
 
Call AbreConexao 
Set rsNiver= conexaoDB.Execute(sqlNiver) 
 
 
%> 
 
 
 
<table border="0" cellspacing="2" cellpadding="1" width="590"> 
<tr> 
<td colspan="5" width="589" heigth="240" background="imagens/parabens.jpg"><img src="/Barramar/Imagens/parabens.jpg" alt="Bomfim" border="0" ></td> 
</tr> 
<tr></tr> 
<tr></tr> 
<tr> 
<td  bgcolor="green" width="10%"> Foto</td> 
<td  bgcolor="green" width="5%"> Dia</td> 
<td  bgcolor="green" width="10%"> Chapa</td> 
<td  bgcolor="green" width="45%"> Nome</td> 
<td  bgcolor="green" width="30%"> Cargo</td> 
</tr> 
 
<% Do While Not rsNiver.Eof %> 
 
 
<tr> 
 
<td valign="top" class="Corpo">QUERO COLOCAR O CODIGO ANTERIOR AQUI</td> 
<td valign="top" class="Corpo"><% = rsNiver("DIA") %></td> 
<td valign="top" class="Corpo"><% = rsNiver("CHAPA") %></td> 
<td valign="top" class="Corpo"><% = rsNiver("NOME") %></td> 
<td valign="top" class="Corpo"><% = rsNiver("DESCRICAO") %></td> 
</tr> 
 
<%  
rsNiver.MoveNext  
Loop 
%> 
 
</table> 
 
 
<%  
rsNiver.Close  
Call fechaConexao 
Set rsNiver = Nothing 
 
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui:

<td valign="top" class="Corpo"><img src="Caminho do script acima, passando como parâmetro o ID do campo com a Imagem"></td>

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.