Savepoint
Uso um componente chamado TOracleQuery, da suit DOA(Direct Oracle Access). Ele tem um método chamado Savepoint. Alguém me explicaria como esse método funciona? O que significa isso:
TOracleQuery.Session.Savepoint(´Meu ponto´);
Paulo
Curtidas 0
Respostas
Osocram
01/09/2009
olha eu não uso esse treco ae não...
Mas se for seguir o raciocínio dos DataSet o savePoint seria p vc salvar a posição do ponteiro.
Por exemplo vc tem um dbgrid com 10 registros... e vc esta posicionado no terceiro e mudou um valor, então o sistema vai ter q fazer um loop em todos os registros p recalcular o total novamente.
Se vc so fizer o loop colocando um first; e fazer o loop normal ao terminar o ponteiro estará no final e não onde o ususario tinha posicionado.
Dae que vem o SavePoint, antes do loop vc faz um SavePopint, faz o loop e ao terminar vc carrega o savePoint novamente e o cursor vai retornar onde estava, assim o usuario não perdido vendo o dbgrid rolando os registros até o final e ficando la.
Isso se esse componente está seguindo o raciocinio dos DataSet nativo do delphi.
Mas se for seguir o raciocínio dos DataSet o savePoint seria p vc salvar a posição do ponteiro.
Por exemplo vc tem um dbgrid com 10 registros... e vc esta posicionado no terceiro e mudou um valor, então o sistema vai ter q fazer um loop em todos os registros p recalcular o total novamente.
Se vc so fizer o loop colocando um first; e fazer o loop normal ao terminar o ponteiro estará no final e não onde o ususario tinha posicionado.
Dae que vem o SavePoint, antes do loop vc faz um SavePopint, faz o loop e ao terminar vc carrega o savePoint novamente e o cursor vai retornar onde estava, assim o usuario não perdido vendo o dbgrid rolando os registros até o final e ficando la.
Isso se esse componente está seguindo o raciocinio dos DataSet nativo do delphi.
GOSTEI 0
Paulo
01/09/2009
Após eu ter postado a pergunta, é que eu vi essa suit de componentes tem help. E no help dele achei a resposta:
Demais, obrigado pela resposta.
Identifies a point in a transaction to which you can later roll back. In the parameter, you can pass any name to identify the savepoint.
Demais, obrigado pela resposta.
GOSTEI 0
Fabriciocolombo
01/09/2009
olha eu não uso esse treco ae não...
Mas se for seguir o raciocínio dos DataSet o savePoint seria p vc salvar a posição do ponteiro.
Por exemplo vc tem um dbgrid com 10 registros... e vc esta posicionado no terceiro e mudou um valor, então o sistema vai ter q fazer um loop em todos os registros p recalcular o total novamente.
Se vc so fizer o loop colocando um first; e fazer o loop normal ao terminar o ponteiro estará no final e não onde o ususario tinha posicionado.
Dae que vem o SavePoint, antes do loop vc faz um SavePopint, faz o loop e ao terminar vc carrega o savePoint novamente e o cursor vai retornar onde estava, assim o usuario não perdido vendo o dbgrid rolando os registros até o final e ficando la.
Isso se esse componente está seguindo o raciocinio dos DataSet nativo do delphi.
Isso que vc exemplificou é Bookmark e não SavePoint. O SavePoint do TClientDataSet funciona para salvar o estado atual do DataSet, para poder reverter as alterações feitas neles, como se fosse uma transação.
GOSTEI 0
Osocram
01/09/2009
Verdade... me confundi feio
ahuahuah
Mau ae. Eu falei sobre BookMark.
Isso que vc exemplificou é Bookmark e não SavePoint. O SavePoint do TClientDataSet funciona para salvar o estado atual do DataSet, para poder reverter as alterações feitas neles, como se fosse uma transação.[/quote:316fd1c209]
ahuahuah
Mau ae. Eu falei sobre BookMark.
[quote:316fd1c209]olha eu não uso esse treco ae não...
Mas se for seguir o raciocínio dos DataSet o savePoint seria p vc salvar a posição do ponteiro.
Por exemplo vc tem um dbgrid com 10 registros... e vc esta posicionado no terceiro e mudou um valor, então o sistema vai ter q fazer um loop em todos os registros p recalcular o total novamente.
Se vc so fizer o loop colocando um first; e fazer o loop normal ao terminar o ponteiro estará no final e não onde o ususario tinha posicionado.
Dae que vem o SavePoint, antes do loop vc faz um SavePopint, faz o loop e ao terminar vc carrega o savePoint novamente e o cursor vai retornar onde estava, assim o usuario não perdido vendo o dbgrid rolando os registros até o final e ficando la.
Isso se esse componente está seguindo o raciocinio dos DataSet nativo do delphi.
Isso que vc exemplificou é Bookmark e não SavePoint. O SavePoint do TClientDataSet funciona para salvar o estado atual do DataSet, para poder reverter as alterações feitas neles, como se fosse uma transação.[/quote:316fd1c209]
GOSTEI 0