Fórum Erro ao ativar SQLDataSet/ClientDataSet #228336
27/04/2004
0
Um erro de execução dá-se na criação do formulário na seguinte procedure:
Procedure TForm1.FormCreate(Sender: TObject);
begin
SQLDataSet1.Active:=True;//ERRO aki qdo chamo o formulário
ClientDataSet1.Active:=True;
end;
ou quando fecho:
Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SQLDataSet1.Active:=False;//ERRO aki qdo fecho o form
ClientDataSet1.Active:=False;
end;
OBS: Só acontece qdo tento ativar o SQLDataSet ou/e ClientDataSet.
Já ativei manualmente pelo DataModule, pelas propiredades no object inspector e não acontece nenhum erro...
Galera, dá aquela mensagem de erro: ´Access Violation blá blá´. Os componentes estão corretos.
Veja só:
1 componente SQLConnection ligo ao bd(firebird)
1 componente SQLDataSet ligado ao SQLConnection, com CommandText:=´Select * from TABELA´
1 componente DataSetProvider ligado ao SQLDataSet
1 componente ClientDataSet ligado ao DataSetProvider
1 componente DataSource ligado ao ClientDataSet
Tá tudo certo...
O que será???
O problema está no DataModule???
Não é possível acontecer isto...
Alguém sabe o que é???
Se souber me respondam... VLWS FLWS
G1b4
Curtir tópico
+ 0Posts
27/04/2004
Jsaraujo
O problema pode não ser nos componentes, mas sim no formulario, sugiro verificar a maneira com que vc esta abrindo o seu formulario, de uma olhada no menu project/option e veja se o formulario está habilitado para abrir da maneira que vc etiver usando...
Outra coisa, sempre que desabilita alguns dos componentes pode acontecer de fechar outro o erro tb pode estar acontecendo por causa disso.
Espero ter sido útil....
Gostei + 0
27/04/2004
G1b4
Solucionei o problema...
Gostei + 0
30/09/2014
Franklin Mei
Boa noite!
Estou com o mesmo problema e já que Você solucionou tem como compartilhar esse conhecimento?
Certo que o fará, desde já agradeço.
Franklin de Sousa
Gostei + 0
30/09/2014
Franklin Mei
procedure TCustomClientDataSet.InternalCheck(Status: DBResult);
var
UTF8ErrorMessage: NativeUInt;
ErrMsg: string;
ErrMsgBuffer: array of Byte;
begin
if Status <> 0 then
begin
SetLength(ErrMsgBuffer, 2049);
FDSBase.GetErrorString(Status, Pointer(@ErrMsgBuffer[0])); -------------------------------------------- Nessa Linha aqui ------------------------------------------------------
FDSBase.GetProp(dspropUTF8ERRORMSG, @UTF8ErrorMessage);
if LongBool(UTF8ErrorMessage) then
ErrMsg := TMarshal.ReadStringAsUtf8(TPtrWrapper.Create(ErrMsgBuffer)).Trim
else
ErrMsg := TMarshal.ReadStringAsAnsi(TPtrWrapper.Create(ErrMsgBuffer)).Trim;
raise EDBClient.Create(ErrMsg, Status);
end;
end;
Como corrigir essa parada?
Help help help
Franklin
Gostei + 0
03/10/2014
G1b4
Eu realmente não me lembro qual foi a solução encontrada, pois foi há muito tempo. Mas provavelmente a solução surgiu da dica do nosso amigo Jsaraujo.
Abs
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)