Erro ao ativar SQLDataSet/ClientDataSet

Delphi

27/04/2004

Uso FireBird(configurado como local) c/ DbExpress. Só uso um terminal.
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

G1b4

Curtidas 0

Respostas

Jsaraujo

Jsaraujo

27/04/2004

Boa tarde amigo,

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
G1b4

G1b4

27/04/2004

Brigadão, JSAraujo.
Solucionei o problema...


GOSTEI 0
Franklin Mei

Franklin Mei

27/04/2004

Cedro do Abaeté, 30 de Setembro de 2014 - 20:37

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
Franklin Mei

Franklin Mei

27/04/2004

Quando ativo o ClientDataSet por código aparece o erro de access violation

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
G1b4

G1b4

27/04/2004

Bom dia Franklin,

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
POSTAR