Fórum Uso correto de ClientDataSet, DataSource, ADOQuery e ADODataSet #407588
13/09/2011
0
Seguinte queria que os mais experientes me dessem um dica de programação.
Não sou avançado em Delphi mais quando preciso recorro aos forum e sites na net e consigo o que quero.
Bom tenho programado há algum tempo e uso programação multicamadas ou 3 camadas, sempre banco de dados SQL Server, hoje estou usando o 2008 as vezes uso alguma coisa em MySQL que não é o caso que vou citar.
Meus sistemas startam os servidores que tem os componentes ADOQuery e ADODataSet.
Dentro do executável do cliente tenho um DataModule com os componentes ClientDataSet, DataSource. até ai tudo tranquilo, minha questão é:
Quando vou chamar um insert em uma tabela uso o seguinte modo:
procedure TfrmCadAluno.btnIncluirClick(Sender: TObject);
begin
cdsPessoa.Close;
cdsPessoa.CommandText := ('Select * From Pessoa Where 1=0');
cdsPessoa.Open;
cdsPessoa.Append;
cdsPessoa.FieldByName('DtCadastro').Value := Date;
cdsPessoa.FieldByName('EstCivil').Value := '1';
.... continua o codigo ..
end;
isso sempre em um botão inserir no form Cadastro de pessoas (frmCadPessoa). o cdsPessoa (ClientDataSet) coloquei no proprio form junto com o dtsPessoa (DataSource), os componentes estão ligados direitinho estão funcionando corretamente.
Quando o cliente usa o botão alterar coloco simplesmente um cdsPessoa.Edit;
ao fazer uma query no banco sempre uso a seguinte maneira:
SQL1 := '' ;
SQL1 := SQL1 + 'Select * from Pessoa'+#13;
SQL1 := SQL1 + ' Where Cod_Empresa = '+IntToStr(CodEmpresa) +#13;
SQL1 := SQL1 + ' and Nome like '''+IntToStr(cdsPadrao.FieldByName('Cod_Pessoa').Value)+ '%'''+#13;
cdsVerifica.Close;
cdsVerifica.CommandText := (SQL1);
cdsVerifica.Open;
ao deletar um registor uso:
SQL1 := '' ;
SQL1 := SQL1 + 'Delete From Pessoa'+#13;
SQL1 := SQL1 + ' Where Cod_Pessoa = '+IntToStr(cdsProcura.FieldByName('Cod_Pessoa').Value);
cdsVerifica.Close;
cdsVerifica.CommandText := (SQL1);
cdsVerifica.Execute;
Essa maneira que trabalho é a correta? ou se não é a correta pode ser usada?
Tem como melhorar?
Como posso ganhar performace no sistema?
Queria alguns exemplos de como poderia ficar baseado nos exemplos que dei.
Aguardo a ajuda de vocês, abraços...
Não sou avançado em Delphi mais quando preciso recorro aos forum e sites na net e consigo o que quero.
Bom tenho programado há algum tempo e uso programação multicamadas ou 3 camadas, sempre banco de dados SQL Server, hoje estou usando o 2008 as vezes uso alguma coisa em MySQL que não é o caso que vou citar.
Meus sistemas startam os servidores que tem os componentes ADOQuery e ADODataSet.
Dentro do executável do cliente tenho um DataModule com os componentes ClientDataSet, DataSource. até ai tudo tranquilo, minha questão é:
Quando vou chamar um insert em uma tabela uso o seguinte modo:
procedure TfrmCadAluno.btnIncluirClick(Sender: TObject);
begin
cdsPessoa.Close;
cdsPessoa.CommandText := ('Select * From Pessoa Where 1=0');
cdsPessoa.Open;
cdsPessoa.Append;
cdsPessoa.FieldByName('DtCadastro').Value := Date;
cdsPessoa.FieldByName('EstCivil').Value := '1';
.... continua o codigo ..
end;
isso sempre em um botão inserir no form Cadastro de pessoas (frmCadPessoa). o cdsPessoa (ClientDataSet) coloquei no proprio form junto com o dtsPessoa (DataSource), os componentes estão ligados direitinho estão funcionando corretamente.
Quando o cliente usa o botão alterar coloco simplesmente um cdsPessoa.Edit;
ao fazer uma query no banco sempre uso a seguinte maneira:
SQL1 := '' ;
SQL1 := SQL1 + 'Select * from Pessoa'+#13;
SQL1 := SQL1 + ' Where Cod_Empresa = '+IntToStr(CodEmpresa) +#13;
SQL1 := SQL1 + ' and Nome like '''+IntToStr(cdsPadrao.FieldByName('Cod_Pessoa').Value)+ '%'''+#13;
cdsVerifica.Close;
cdsVerifica.CommandText := (SQL1);
cdsVerifica.Open;
ao deletar um registor uso:
SQL1 := '' ;
SQL1 := SQL1 + 'Delete From Pessoa'+#13;
SQL1 := SQL1 + ' Where Cod_Pessoa = '+IntToStr(cdsProcura.FieldByName('Cod_Pessoa').Value);
cdsVerifica.Close;
cdsVerifica.CommandText := (SQL1);
cdsVerifica.Execute;
Essa maneira que trabalho é a correta? ou se não é a correta pode ser usada?
Tem como melhorar?
Como posso ganhar performace no sistema?
Queria alguns exemplos de como poderia ficar baseado nos exemplos que dei.
Aguardo a ajuda de vocês, abraços...
Nilson Alvernaz
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)