Inserção de Texto em campo BLOB
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
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
Curtidas 0
Respostas
Ipc$
23/08/2004
Tente mudar ftBlob p/ ftMemo.
GOSTEI 0
Mcd
23/08/2004
Fiz esta alteração conforme sugestão, mas o erro continua o mesmo !
GOSTEI 0
Ipc$
23/08/2004
Tente utilizar ParamByName ao invés de Params[0].
Se persistir o erro tente:
qryMensag.ParamByName(´Par1´).AsString := Memo1.Lines.Text;
Se persistir o erro tente:
qryMensag.ParamByName(´Par1´).AsString := Memo1.Lines.Text;
GOSTEI 0
Mcd
23/08/2004
Tentei novamente conforme a sugestão, mas a mensagem de erro é a mesma !
GOSTEI 0
Ipc$
23/08/2004
Tente deixar o parâmetro ExecDirect do ExecSql = false.
GOSTEI 0
Mcd
23/08/2004
Bingo !
Você estava certo, realmente era o parametro do execsql que deveria ser false.
Obrigado pela ajuda !
Você estava certo, realmente era o parametro do execsql que deveria ser false.
Obrigado pela ajuda !
GOSTEI 0