Delphi 2010 + DBExpress + Firebird + Campo Blob
Boa tarde!
Alguém sabe da existência de algum problema em gravar/ler campo blob no Delphi 2010 ?
Tenho uma aplicação em Delphi 2009 que grava/lê campos blob usando o driver TBODBXFB (DBExpress).
Mas no delphi 2010, ele não gera nenhum erro na gravação, mas quando vou verificar o campo pelo IBExpert, aparece o texto que gravei, mas todas as letras separadas por um espaço ??!!??.
Vejam como fica gravando com o Delphi 2009:
Vejam como fica gravando com o Delphi 2010:
E quando vou fazer a consulta deste campo, somente é mostada a primeira letra que foi gravada.
Alguém sabe da existência de algum problema em gravar/ler campo blob no Delphi 2010 ?
Tenho uma aplicação em Delphi 2009 que grava/lê campos blob usando o driver TBODBXFB (DBExpress).
Mas no delphi 2010, ele não gera nenhum erro na gravação, mas quando vou verificar o campo pelo IBExpert, aparece o texto que gravei, mas todas as letras separadas por um espaço ??!!??.
Vejam como fica gravando com o Delphi 2009:
Vejam como fica gravando com o Delphi 2010:
E quando vou fazer a consulta deste campo, somente é mostada a primeira letra que foi gravada.
Nilson Rapcinski
Curtidas 0
Respostas
Marco Salles
18/08/2010
teoricamente não deveria ter problemas. Afinal o Driver Nativo do Firebird resolveria este problema
dos Campo Blobs. Tem ate um video sobre
http://www.andreanolanusse.com/blogpt/novo-driver-dbexpress-para-firebird-no-delphi-2010-e-cbuilder-2010/
talver o ploblema possa ser o Unicode , ja que o Tamanho da String mudou
Se vc usa alguma função relacionado a strings para fazer esta gravação ou esta leitura pode ser ai
a raiz do problema e não o driver
GOSTEI 0
Nilson Rapcinski
18/08/2010
Olá Marco!
Não estou usando os componentes TDBMemo.
No firebird meu campo está definido como Blob Bub Type 1 Charset Win1252.
E na aplicação tenho um TMemo onde faço a seguinte atribuição através de uma Stored Procedure:
DataModule1.TStoredProcedure1.FieldByName('CAMPO').Value := Memo1.Text;
E o TField está definido com FTMemo.
Não estou usando os componentes TDBMemo.
No firebird meu campo está definido como Blob Bub Type 1 Charset Win1252.
E na aplicação tenho um TMemo onde faço a seguinte atribuição através de uma Stored Procedure:
DataModule1.TStoredProcedure1.FieldByName('CAMPO').Value := Memo1.Text;
E o TField está definido com FTMemo.
GOSTEI 0
Marco Salles
18/08/2010
Olá Marco!
Não estou usando os componentes TDBMemo.
No firebird meu campo está definido como Blob Bub Type 1 Charset Win1252.
E na aplicação tenho um TMemo onde faço a seguinte atribuição através de uma Stored Procedure:
DataModule1.TStoredProcedure1.FieldByName('CAMPO').Value := Memo1.Text;
E o TField está definido com FTMemo.
bem
eu Nunca usei o TStoredProcedure , mas ainda acho que é um problema de Unicode
eu tentaria com
Não estou usando os componentes TDBMemo.
No firebird meu campo está definido como Blob Bub Type 1 Charset Win1252.
E na aplicação tenho um TMemo onde faço a seguinte atribuição através de uma Stored Procedure:
DataModule1.TStoredProcedure1.FieldByName('CAMPO').Value := Memo1.Text;
E o TField está definido com FTMemo.
DataModule1.TStoredProcedure1.FieldByName('CAMPO').asString := Memo1.Text;
ou
DataModule1.TStoredProcedure1.FieldByName('CAMPO').AsWideString := Memo1.Text;
ou
DataModule1.TStoredProcedure1.FieldByName('CAMPO').AsAnsiString := Memo1.text;
GOSTEI 0
Nilson Rapcinski
18/08/2010
Bom dia, Marco!
Show de bola...
Funcionou com a opção:
Muito obrigado mesmo.
Show de bola...
Funcionou com a opção:
DataModule1.TStoredProcedure1.FieldByName('CAMPO').AsAnsiString := Memo1.text;
Muito obrigado mesmo.
GOSTEI 0