Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cleber Cortes

[Resolvido] Diferença entre codigos

Recommended Posts

Amigos procuro ajuda com Banco de Dados.

 

Tenho um Banco de Dados MySQL chamado dbAgenda com uma Tabela tbAgenda.

Os campos da tabela são Codigo (integer) e Nome (varchar).

Tenho um DataModule (dm) com um SimpleDataSet (sdsAgenda) e um DataSource (dsAgenda).

 

No evento onClick do botao Salvar testei os 2 seguinte codigos.

 

1o codigo

---------

dm.sdsAgenda.Append;

dm.sdsAgendaCodigo.AsInteger := 1;

dm.sdsAgendaNome.AsString := 'Teste';

dm.sdsAgenda.Post;

 

2o codigo

---------

dm.sdsAgenda.Append;

dm.sdsAgenda.FieldByName('Codigo').AsInteger := 1;

dm.sdsAgenda.FieldByName('Nome').AsString := 'Teste';

dm.sdsAgenda.Post;

 

Agora faço 2 perguntas:

 

1a Pergunta

-----------

Qual a vantagem em usar:

dm.sdsAgendaCodigo.AsInteger := 1;

ou

dm.sdsAgenda.FieldByName('Codigo').AsInteger := 1;

 

2a Pergunta

-----------

Quando eu uso:

dm.sdsAgendaCodigo.AsInteger := 1;

O Delphi dá a seguinte mensagem:

"Undeclared sdsAgendaCodigo"

O que está faltando declarar?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara com relação a sua primeira pergunta, da primeira forma os campos tem que ser definidos em tempo de projeto, caso contrario voê nao conseguiria utilizar, ja da segunda forma os campos podem ser definidos em tempo de execução.

Imagine a seguinte situação, você possui uma consulta em uma tabela utilizando o SimpleDataSet, e você precisa fazer outra consulta em outra tabela e optou por utilizar o mesmo SimpleDataSet, os campos vão ser diferentes, impossibilitando de utilizar a primeir forma.

 

Porém eu não utilizo nenhuma das duas formas que você mencionou, eu faço da seguinte maneira :

dm.sdsAgenda['Codigo'] := 1;

Pois dessa forma nao preciso me preocupar em colocar AsInteger, AsString, etc. Além de diminuir a quantidade de codigo que preciso digitar, li uma vez que dessa maneira o código fica otimizado!

 

Espero ter ajudado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você da um duplo clique no SimpleDataSet e em seguida clica com o botão direito e seleciona 'Add all fields...' se você não fizer esse procedimento nao podera utilizar : (sdsAgendaCodigo.AsInteger)

 

Entendeu? qualquer coisa posta ai....

 

Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.