Ir para conteúdo
Fórum Script Brasil
  • 0

Erro No Dbimage


Aghata

Pergunta

Olá amigos!!!

Estou com um problema muito estranho.

Para que imagens (obtidas através da tecla Print) apareçam no meu programa em Delphi e fiquem armazenadas no meu banco eu utilizo o componente "dbimage", certo!? ,pois até aí beleza, é assim que estou fazendo.

O campo que receberá a imagem na tabela tem que ser do tipo "Blob" não é!? Pelo que me informaram tem que ser desse tipo, mas não sei se existe um outro.

Bom, essa é a forma que estou fazendo.

O problema esta quando eu insiro uma imagem no programa e mando salvar. Dá um erro desse tipo: "Operation not applicable", e depois que eu dou Ok no erro as vezes ele salva a imagem e as vezes não.

O que pode ser isso?

Eu estou achando que o erro está nessa variavel "Blob". Quando eu utilizo "memo", minha saída é colocar variavel "varchar" com um tamanho grande ao invés de "blob". Mas com o "DBImage" eu não consigo usar "varchar' devido ao tamanho, vocês sabem que outra variável eu posso estar utilizando?

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

não sei bem como você esta fazendo ai mas posso te garantir que não é pelo fato do seu campo

ser do tipo blob, pois imagens são gravadas nesse tipo de campo mesmo.

faz o seguinte você consegue:

declare "Clipbrd" na sua Uses No topo da sua unit assin

unit Ufrm_cad_operador;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Provider, Clipbrd;
//....




//  Na sua procedure fica assim
procedure TFrm_Cad_Operador.BitBtn1Click(Sender: TObject);
begin
    DBImage1.Picture.LoadFromFile(open.filename); // coloco a imagem no meu dbimage (não sei como você está fazendo ai)
    Clipboard.Assign(DbImage1.Picture);
    DbImage1.Picture.Assign(Clipboard);

Query.Post;  //aqui você salva
//
 End;

esse erro ocorre quando há uma imcompatibilidade de imagem

espero ter ajudado

Link para o comentário
Compartilhar em outros sites

  • 0

Oi amigo, obrigado pela força que está me dando!!!

Para colocar a imagem no DBImage eu estou dando um print na tela para adquirir a imagem desejada e depois dou um ctrl+v no DBImage. Assim eu coloco a imagem no meu DBImage.

Nesta linha:

DBImage1.Picture.LoadFromFile(open.filename);

Você pega a imagem de algum arquivo, ou melhor, abre a imagem em arquivo no DBImage ou você dá um ctrl+v da mesma forma que eu estou fazendo?

Link para o comentário
Compartilhar em outros sites

  • 0

no meu exemplo eu pego de um arquivo, mas você pode colocar atravez "Clipboard" ctrl+v que é o que

você está fazendo. da certo também, pois o poblema que você está temdo é na hora de gravar, certo?

ps... so complementando tem como você fazer iso sem usar o "print/screen"

tipo. clica num botao e o sistema faz isso sozinho.

se você quiser posse te passar como faz .

é so postar ai!!

Link para o comentário
Compartilhar em outros sites

  • 0

Oi meu super amigo Erso!!!

Desculpa por algumas perguntas bobas que eu possa vir a fazer, é que eu sou iniciante e não sei muita coisa!

Bom eu fiz igual como está no seu exemplo:

Declarei "Clipbrd" no uses lá do início da Unit e coloquei este código no botão salvar.

{

DBImage1.Picture.LoadFromFile(open.filename);

Clipboard.Assign(DbImage1.Picture);

DbImage1.Picture.Assign(Clipboard);

Table1.Post;

}

Mas quando eu mando executar o programa, dá o seguinte erro na seguinte linha:

Erro: Undeclared identifier: 'open'

Linha: DBImage1.Picture.LoadFromFile(open.filename);

Eu tenho que colocar algo a mais nessa linha?

Link para o comentário
Compartilhar em outros sites

  • 0

opa

desculpa se intrometer mas o Open que ele se refere

é referente a um componente OpenDialog da paleta

Dialogs...

No caso você precisa colocar no LoadFromFile o caminho

da imagem a ser carregada...

exemplo usando um OpenDialog...

if OpenDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenDialog1.filename);
exemplo passando o caminho da imagem...
DBImage1.Picture.LoadFromFile('c:\minhaimagem.jpg');

abs

Link para o comentário
Compartilhar em outros sites

  • 0

oi Aghata desculpe se não fui claro o suficiente.

O Churc tem razão esse open que eu coloquei é um componente,

esquece essa linha você fez bem em comentar.

explocando.

essa linha "DBImage1.Picture.LoadFromFile(open.filename);" tem a mesma funçao quando você usa o "print"

e da um "ctrl+v" , pra você não é inportante coloquei porque achei seria mais facil de você entender.

se você fez tudo certinho e t gravando como você diz.

o erro que ocorre é do delphi e não do seu sistema (é como se fosse um aviso).

essa mensagem que o delphi coloca pra você não vai acontecer quando o sistema for rodado fora do delphi.

Tem como desabilitar essa mesmo no delphi

faz o seguinte

va ao menu

tools

->Debugger Option

e na aba

Language Exception

desmarcar a opção Stop on Delphi Exceptions

e deixar marcada a opção Integraded debugging

issso fara com que essa mesmo de "Erro " desapareça....

Aghata.. continue postando ate que seu problema possa ser resolvido :D boa sorte!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal brigadão pela ajuda e paciência!!!

Mas oh erro filha da mãe viu.

Erso, eu dei uma olhada no que você falou, mas as opções que você mandou eu marcar e desmarcar já estavam feitas. Não sei não, mas o erro talvez não seja bem do Delphi.

O banco que estou utilizando é o Firebird, eu crio o banco e as tabelas através do SQLExplorer, aquele que aparece no menu do Delphi. Aquele mesmo erro que aparece no delphi tambem aparece no SQLExplorer

quando eu adiciono alguma imagem. Ocorre a mesma coisa aparece o erro mas a imagem é salva.

To ficando doida com isso. Nem sei mas no que mexer pra resolver isso.

:( :wacko:

Link para o comentário
Compartilhar em outros sites

  • 0
o erro que ocorre é do delphi e não do seu sistema (é como se fosse um aviso).

essa mensagem que o delphi coloca pra você não vai acontecer quando o sistema for rodado fora do delphi.

Tem como desabilitar essa mesmo no delphi

faz o seguinte

va ao menu

tools

->Debugger Option

e na aba

Language Exception

desmarcar a opção Stop on Delphi Exceptions

e deixar marcada a opção Integraded debugging

issso fara com que essa mesmo de "Erro " desapareça....

Erso, convém lembrar que no desenvolvimento dos programas, este é um importante recurso para detectar/sanar erros, já que a execução será interrompida e o cursor posicionado na linha em que ocorre o erro. Desabilitar esta opção implica em ter as mensagens de erro na aplicação, o que para alguns significa mais dificuldade em encontrar a origem do problema.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Oi meu super amigo Erso!!!

...

{

DBImage1.Picture.LoadFromFile(open.filename);

Clipboard.Assign(DbImage1.Picture);

DbImage1.Picture.Assign(Clipboard);

Table1.Post;

}

Aghata, seguindo a sugestão dos colegas Erso e Churc, você deve opnar por ler do arquivo ou do clipboard:
{ // lê do arquivo em disco para o DBImage
  if OpenDialog1.Execute then
    DBImage1.Picture.LoadFromFile(OpenDialog1.filename);  
  Table1.Post;
}
ou
{ // lê do clipboard para o DBImage
  DBImage1.Picture.Assign(ClipBoard);
  Table1.Post;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Aghata o dialect é 3 mesmo.

muito estranho esse erro.

temta deletar o campo do tipo blob e criar no vamente.

porque eu testei aqui do jeito que você está fazendo com print + ctrl+v e funcionou eu gravei e não deu erro nenhum!!

que versão do delphi você esta usando ???

e versão do firebird??

não acredito que seja isso, mas.. enfim..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...