Fórum LoadfromStream stream read error #443349
17/05/2013
0
eu tenho um grid na tela, o cliente tem a autonomia de mudar as colunas, ocultá-las, e modificar os tamanhos...
eu salvo as configurações em um campo blob do meu bd, até ai tudo bem...funciona perfeitamente...
o problema é na hora de fazer o loadfromstream, ele não funciona, não dá o load...
se eu salvo o campo blob em um stream e salvo esse stream em um .txt com savetofile e fizer o loadfromfile no columns, elle funciona... vou colocar o codigo abaixo e me digam onde errei....
savetostream
try
s := TMemoryStream.Create;
CTRL_GRID.DSGRID.DataSet.Close;
CTRL_GRID.DSGRID.DataSet.Open;
CTRL_GRID.DSGRID.DataSet.Append;
CTRL_GRID.DSGRID.DataSet.FieldByName('USUARIO').AsString := UsuarioLogado.Login;
CTRL_GRID.DSGRID.DataSet.FieldByName('TITULO').AsString := FCadastros_Padrao.Name;
CTRL_GRID.DSGRID.DataSet.FieldByName('TELA').AsString := FCadastros_Padrao.Name + CTRL_CADASTROS.DSPADRAO.DataSet.Name;
DBGridTabela.Columns.SaveToStream(s);
TBlobField(CTRL_GRID.DSGRID.DataSet.FieldByName('GRID')).LoadFromStream(s);
CTRL_GRID.DSGRID.DataSet.Post;
S.Free;
Showmessage('Colunas salvas com sucesso.');
except
raise Exception.Create('Erro ao salvar.');
end;
loadfromstream que dá erro
try
s := TMemoryStream.Create;
CTRL_GRID.DSGRID.DataSet.Close;
CTRL_GRID.DSGRID.DataSet.Open;
CTRL_GRID.FiltrarGrid(FCadastros_Padrao.Name, FCadastros_Padrao.Name + CTRL_CADASTROS.DSPADRAO.DataSet.Name, UsuarioLogado.Login);
TBlobField(CTRL_GRID.DSGRID.DataSet.FieldByName('GRID')).SaveToStream(s);
DBGridTabela.Columns.LoadFromStream(s); //o erro é nessa linha
S.Free;
except
raise Exception.Create('Error Message');
end;
loadfromstream que funciona mas eu não quero assim
s := TMemoryStream.Create;
CTRL_GRID.DSGRID.DataSet.Close;
CTRL_GRID.DSGRID.DataSet.Open;
CTRL_GRID.FiltrarGrid(FCadastros_Padrao.Name, FCadastros_Padrao.Name + CTRL_CADASTROS.DSPADRAO.DataSet.Name, UsuarioLogado.Login);
TBlobField(CTRL_GRID.DSGRID.DataSet.FieldByName('GRID')).SaveToStream(s);
s.SaveToFile('c:\teste.cfg');
DBGridTabela.Columns.LoadFromFile('c:\teste.cfg');
S.Free;
desde já...obrigado
Wendel Fassarella
Curtir tópico
+ 0Posts
17/05/2013
Diogenes Sampaio
Faça o seguinte:
s.Position:= 0; DBGridTabela.Columns.LoadFromStream(s);
T++
Gostei + 0
17/05/2013
Wendel Fassarella
muito obrigado....
agr...como que eu fecho o tópico??
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)