Erro ao ativar SQLDataSet/ClientDataSet
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
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
Curtidas 0
Respostas
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....
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
27/04/2004
Brigadão, JSAraujo.
Solucionei o problema...
Solucionei o problema...
GOSTEI 0
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
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
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
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
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
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