Imagem (Banco de Dados)

Pessoal, pesquisei no fórum e não encontrei nada igual ao meu problema.
Tenho um campo em uma base de dados MySql do tipo longblog.
No SC 9.0.040 o campo é do tipo Imagem (Banco de dados).
Eu incluo ,altero , excluo a imagem perfeitamente!
Porém tem uma funcionalidade que só funciona em meu ambiente de desenvolvimento.
Deixei setado o tamanho da imagem em 200 X 200. No meu ambiente de desenvolvimento , ao entrar no registro desejado, a imagem aparece em “miniatura” conforme minha configuração e se eu clicar nessa miniatura ela abre em tamanho normal.
No meu ambiente de produção, aparece a imagem em “miniatura” porém não permite eu clicar nela para abrir em tamanho normal, ou seja, o link nm_mostra_img não é criado.
Alguém já passou por isso? Podem ajudar?

Já verificou se o popup esta bloqueado?

Julio,

Desculpe me meter no teu projeto, mas imagem em banco é um problema que fica gigantesco e muito complicado depois de um tempo.

Só tem chance de não ser tão caótico se gravar em tabela auxiliar a principal, pois a medida que cresce a tabela a mesma fica cada vez mais lenta.

Sobre o teu problema eu limparia o cache e testaria novamente.

A tabela auxiliar ajuda é muito quando se trata de armazenar campos tipo blob é até um conselho no manual do MySQL (https://dev.mysql.com/doc/refman/5.5/en/optimize-blob.html).
Mas veja que o problema maior é em SGDB´s como a tripa sertaneja MySQL/Percona/MariaDB.
Onde toda tabela que tem BLOB não é aberta em memória e sim em disco antes de devolver a query.
Logo, em um servidor assim, aconselho o uso de uma boa controladora de disco real (via hardware) com bastante cache.
Pois haverá muito I/O de disco conforme as consultas simultâneas forem crescendo
Se a controladora é via software ou com pouco cache vai sofrer muito. Um verdadeiro carro de boi.
Com uma boa controladora real (hardware) com cache razoável eu já vi bancos pequenos com 30GB a 100GB de dados em uma tabela blob (documentos ou fotos) se comportando bem.
Também considere que o manual do MySQL fala de guardar campos BLOB em discos SSD.

Outra coisa é formato do innodb:
Formato Antilope com REDUNDANT (MySQL 4.1 e abaixo) e COMPACT não é muito eficiente com BLOB´s.
O melhor formanto para isto do innodb é “Barracuda” e ROW_FORMAT = DYNAMIC
Logo, usar o formato errado vai dar B.O.

Dê uma lida aqui: https://www.percona.com/blog/2010/02/09/blob-storage-in-innodb/
https://dev.mysql.com/doc/refman/5.7/en/optimize-blob.html
https://dba.stackexchange.com/questions/46543/how-to-optimize-mysql-for-large-blob-updates
https://mariadb.com/kb/en/library/blob/ -> BLOBS can also be used to store dynamic columns.
Logo, a decisão de trabalhar com fotos, documentos e etc em campos blob vai do seu conhecimento do SGDB e do hardware.
Então, se não tem preguiça de ler e dinheiro para investir no hardware… Guardar tudo em BLOB é uma boa pedida.

Pessoal,
obrigado por todos os retornos.
Também acho que desta forma terei problemas, porém é um caso específico e que não irá crescer o cadastro que usa a tabela desta forma.

Já verifiquei bloqueio de popup e não está bloqueado.
Limpei cache…
Atualizei todas as bibliotecas do S.C. no ambiente de produção e nada.
Permissões na pasta tmp está tudo ok, para teste coloquei até 777.
Abri o console do navegador para ver se estava gerando alguma mensagem ,mas não está.

Vou seguir na “investigação” do que pode ser, se alguém tiver mais alguma ideia será bem vinda.

para mostrar a imagem ele tem que criá-la na pasta tmp.
veja se a imagem esta sendo criada no tmp

Sim, está criando a imagem na pasta TMP.
A única diferença é que no ambiente de desenvolvimento ele “deixa” clicar na imagem para abrir em tamanho normal, já no ambiente de produção a imagem não possui “evento click” programado, é o que parece.

Baixe o prod direto da netmake e descompacte sobre o prod da publicação para fazer um teste.
http://downloads.scriptcase.com.br/downloads/v9/packs/scriptcase-prod-9.0.041-pt_br.zip
ou
http://downloads.scriptcase.com.br/downloads/v9/packs/scriptcase-prod-9.0.041-pt_br.tgz

PS: é para descompactar na produção (lugar onde foi publicado)

Alexandre,
quando me refiro ao ambiente de produção, é o ambiente onde publico a aplicação final gerada pelo S.C.

Esse prod que você sugeriu que eu baixe e descompacte no ambiente de produção se não me engano é do próprio S.C. completo e não da aplicação final gerada por ele.
No ambiente de produção que me refiro não tenho S.C instalado, apenas a aplicação final gerada por ele.
São estruturas bem diferentes de diretório.

Não entendeu o que eu disse.
As vezes a publicação do SC não leva certas bibliotecas ou arquivos do prod.
Isto gera erros diversos no ambiente de produção.
Após erros em publicações, baixar o prod e atualizar o ambiente de produção de forma manual o faz voltar a funcionar.
Mas cada um sabe do seu ambiente.
Boa sorte.

Olá Alexandre.
Sobre o problema de imagem, estou usando um banco Postgres, e o problema é o mesmo: quando publico a aplicação não abre a imagem.
Tens alguma dica para este problema do SC?
Agradeço.

Não sei dizer, tem que analisar seu ambiente.

Julio como conseguiu resolver o problema de Update (alterações ou atualizações) nos campos imagem (LONGBLOB)? Cara não tô conseguindo aqui nem a pau. Na tela mostra certinho na consulta Ajax, ele finaliza o processo e você vai ver no banco, TUDO foi gravado, menos a imagem…