Inserção de Texto em campo BLOB

23/08/2004

Estou utilizando o Firebird 1.0 e o componente TSQLQuery do dbExpress para inserir um texto em um campo blob:

var
Mens: TStream;
begin
qryMensag.Close;
qryMensag.SQL.Add(´INSERT INTO MENSAG (MENCODIGO, MENTEXTO) ´ + ´VALUES (1000, :PAR1)´);
Mens:= TMemoryStream.Create;
Memo1.Lines.SaveToStream(Mens);
Mens.Position:= 0;
qryMensag.Params[0].LoadFromStream(Mens, ftBlob);
qryMensag.ExecSQL(true);
Mens.Free;
end;


Quando executo a linha execSQL dá a seguinte mensagem:

Incorrect Values within SQLDA structure

Alguem sabe porque este erro, ou então se tem outra forma de inserir um texto em um campo Blob?

Obrigado


Mcd

Respostas

23/08/2004

Ipc$

Tente mudar ftBlob p/ ftMemo.


Responder Citar

24/08/2004

Mcd

Fiz esta alteração conforme sugestão, mas o erro continua o mesmo !


Responder Citar

24/08/2004

Ipc$

Tente utilizar ParamByName ao invés de Params[0].
Se persistir o erro tente:
qryMensag.ParamByName(´Par1´).AsString := Memo1.Lines.Text;


Responder Citar

24/08/2004

Mcd

Tentei novamente conforme a sugestão, mas a mensagem de erro é a mesma !


Responder Citar

24/08/2004

Ipc$

Tente deixar o parâmetro ExecDirect do ExecSql = false.


Responder Citar

25/08/2004

Mcd

Bingo !

Você estava certo, realmente era o parametro do execsql que deveria ser false.

Obrigado pela ajuda !


Responder Citar