Fórum Problema com campo blob no DBExpress 4 #370770
26/05/2009
0
O campo está definido da seguinte forma: ´BLOB SUB_TYPE 0 SEGMENT SIZE 80 CHARACTER SET WIN1252´. ( Firebird 2.0/ DBExpress 4 / Delphi 2009 ) Sempre funcionou antes do DBExpress 4. Tentei trocar também a dll, tanto do firebird/interbase quanto a dll do proprio dbexpress. Mas persiste o erro.
Se alguém tiver mais alguma sugestão que possa dar uma iluminada no assunto, será bem-vinda.Já tentei usar uma SQLQuery para fazer um UpDate direto. O erro persiste. Obrigado pela atenção e aguardo alguma ajuda.
Lcfinformatica
Curtir tópico
+ 0Posts
27/05/2009
Discorpio
Os campos Blob sub_type 0 é campo binário para armazenamento do tipo de imagens, para campos Memo, o tipo correto é Blob sub_type 1 ou Blob sub_type text e o segment size pode continuar sendo 80
Gostei + 0
27/05/2009
Lcfinformatica
Gostei + 0
28/05/2009
Discorpio
Retire o texto [color=blue:06eb2fa233]´CHARACTER SET WIN1252´[/color:06eb2fa233] na declaração do campo e veja o que acontece
Gostei + 0
28/05/2009
Lcfinformatica
Gostei + 0
28/05/2009
Discorpio
Bom, se o mesmo está lendo e não está salvando, então dê dois clicks no ClientDataSet e selecione o campo Blob, vá no Object Inspector e verifique se a propriedade ReadOnly está setada para True, se estiver, configure-a para false.
Outra coisa que voce deve observar é que o ApplyUpdates(0) por si só não salva o registro no banco físico, apenas atualiza o DataSet local no Client, e prepara os dados para DataSetProvider empacotá-los, porém os dados só são confirmados no banco físico após o método Commit do SQLConnection ser acionado.
Para salvar com o Commit é assim:
Evento OnClick De Um Botão Qualquer(Sender : Tobject); Var Transacao : TTransactionDesc; Begin Transacao.TransactionID := 1; Transacao.IsolationLevel := xilREPEATABLEREAD; SqlConnection.StartTransaction(Transacao); Try Tabela.Post; SqlConnection.Commit(Transacao); Except SqlConnection.Rollback(Transacao); End; End;
Gostei + 0
29/05/2009
Lcfinformatica
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)