CRUD com Stored Procedures

Delphi

22/08/2012

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

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

22/08/2012

teste
GOSTEI 0
Deivison Melo

Deivison Melo

22/08/2012

Qual a versao do delphi que vc está utilizando?
GOSTEI 0
Rachel Andrade

Rachel Andrade

22/08/2012

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

William

22/08/2012

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.
GOSTEI 0
Rachel Andrade

Rachel Andrade

22/08/2012

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.
GOSTEI 0
William

William

22/08/2012

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.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

22/08/2012

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.
GOSTEI 0
Marco Salles

Marco Salles

22/08/2012

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
GOSTEI 0
Rachel Andrade

Rachel Andrade

22/08/2012

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.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

22/08/2012

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

Douglas Cruz

22/08/2012

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.
GOSTEI 0
POSTAR