CRUD com Stored Procedures
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.
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
Curtidas 0
Respostas
Joel Rodrigues
22/08/2012
teste
GOSTEI 0
Deivison Melo
22/08/2012
Qual a versao do delphi que vc está utilizando?
GOSTEI 0
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
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.
Gostaria de mais explicações da sua dúvida para poder entender melhor o que você testá precisando.
GOSTEI 0
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.
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
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.
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
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.
Boa sorte.
GOSTEI 0
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
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
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.
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
22/08/2012
Opa, estou encerrando o tópico, uma vez que a dúvida foi sanada.
Abraço a todos.
Abraço a todos.
GOSTEI 0
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.
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