Fórum CRUD com Stored Procedures #422163

22/08/2012

0

Olá, pessoal! Tudo bem?

Hoje surgiu uma dúvida a respeito de uma funcionalidade que já estou começando a crer que não existe no Delphi. No Visual Studio, aprendi a usar DataSets para realizar operações de CRUD, fazendo isso com Stored Procedures. Em um mesmo DataSet eu definia os procedures responsáveis por cada ação (CRUD).

Tem como fazer algo semelhante no Delphi? Ou eu vou precisar de um DataSet para cada procedure?

Obrigada.
Rachel Andrade

Rachel Andrade

Responder

Posts

22/08/2012

Deivison Melo

Qual a versao do delphi que vc está utilizando?
Responder

Gostei + 0

23/08/2012

Rachel Andrade

Oi, Deivison. Como estou estudando Delphi agora, preferi já começar com a versão mais nova, no caso. XE2.
Responder

Gostei + 0

23/08/2012

William

Rachel, se possível poderia ser um pouco mais específica na questão de executar várias store procedures. De início imagino que você poderia usar um componente TSQLQUERY para executar as stores.
Gostaria de mais explicações da sua dúvida para poder entender melhor o que você testá precisando.
Responder

Gostei + 0

24/08/2012

Rachel Andrade

Então, vou tentar explicar como eu aprendi a fazer no Visual Studio e que também gostei da parte do banco de dados.
Tenho uma tabela CLIENTES. Para ela, crio quatro stored procedures para fazer o CRUD:
-sp_CLIENTES_Insert;
-sp_CLIENTES_Delete;
-sp_CLIENTES_Update;
-sp_CLIENTES_Select;

No VS, crio um dataset que recebe os nomes dos quatro procedures, com isso, ele está pronto para fazer as quatro operações, ou seja, não preciso de quatro componentes, um para cada procedimento.

Eu gostaria de saber se é possível fazer o mesmo no Delphi ou se é necessário um dataset para cada procedure.

Obrigada pela atenção.
Responder

Gostei + 0

24/08/2012

William

Rachel, vc pode usar 1 componente SQLQuery e preencher dinamicamente as instruções SQL, no seu caso seriam preenchidas
chamadas de procedures e posteriormente a passagem de parâmetros.

Vamos imaginar 3 botões(INCLUIR, EDITAR, DELETE), vc usa o mesmo componente mas altera o nome e os parâmetros da procedure.
Responder

Gostei + 0

24/08/2012

Joel Rodrigues

Rachel, eu também uso essa estrutura em alguns sistemas e infelizmente não há forma semelhante no Delphi. Como foi dito acima, você precisaria alterar o procedure do dataset dinamicamente ou usar um dataset para cada procedure. No Delphi não existem os "DataSets Tipados" que tem no Visual Studio.

Boa sorte.
Responder

Gostei + 0

24/08/2012

Marco Salles

No meu entendimento não é necessário quatro Dataset para isto... O Bdexpress tem o o TSQLStoredProc para esta finalidade
especifca . O Próprio TSqldataSet tb executa StoredProcedures . Outras engines de acesso a dado tb tem dataset com funçoes
similares
O Fato Rachel Andrade que o Delphi permite estas operações de modo RAD , sem ter que executar StoredProcedures , e muitas
das veze utilizamos esta facilidade que o Delphi nos dá

Mas continue postanto para que a gente tenta chegar a um denominador comum e assim todos possam aprender com sua real
dúvida
[]sds
Responder

Gostei + 0

24/08/2012

Rachel Andrade

Oi, gente.

Novamente obrigada pela atenção.

É, o Joel entendeu o que eu estou usando e pelo jeito não há funcionalidade semelhante no Delphi.

Eu entendo que o Delphi dispõe de ferramentas para fazer estas operações de forma em prática, a questão é que eu gostaria de saber se é possível utilizar o mesmo conceito que uso no VS. Sei também que existem outras formas, só queria saber se desse jeito dava pra fazer no Delphi =)

Mas enfim, acho que já deu pra tirar conclusões. Agradeço cada um que me ajudou.
Responder

Gostei + 0

27/03/2013

Joel Rodrigues

Opa, estou encerrando o tópico, uma vez que a dúvida foi sanada.
Abraço a todos.
Responder

Gostei + 0

08/08/2013

Douglas Cruz

Apenas como informação. Isso era possível no delphi utilizando o BDE.

Acoplando um TUpdateSQL ao TQuery era possível passar os comando Insert, update e Delete para persistência como se consegue no DataAdapter do visual studio.

Mas como tudo muda e geralmente para pior ou melhor, e os indianos adoram inventar coisas novas e descontinuar o que é bom convenceram a borland que o tal do dbexpress, para ajudar que não sabe DML era melhor. Com a adoção do dbexpress e a descontinuidade do BDE pela borland esse recurso morreu. Ao meu ver para quem sabia o que estava fazendo o BDE era muito simples tinha muito mais performance que o dbexpress.

Para otimizar a performance do BDE nas aplicações bastava não usar o controle de transação dele e deixar o SGBD se virar. O negócio virava um canhão.
Com procedure apenas para fazer o CRUD então nem se fala.

No dbexpress dá pra chegar perto disso mas tem que punhetar muito. Veja o manual do produto a partir da página 1726 (UpdateSQL) como referencia.
A sessão 3.2.3.8.15 Intervening as Updates Are Applied explica a intervensão.

Att,

Douglas.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar