Keep updated BO / Manter o BO atualizado


Author
Message
Malcon
Malcon
StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)
Group: Forum Members
Posts: 28, Visits: 93
Estou com uma duvida, não sei se é possivel.

Tenho uma tabela de clientes (16.000 registros com 125 campos, demora uns 3 segundos para buscar). Os meus clientes tem costume de abrir esta tabela pela manha  por default com um FillAll onde eles trazes todos os registros e navegam nos registros o dia todo. Oque acontece que esses registros estao em memoria (BO) e nao refletem mais oque existe no banco.

Existe algum metodo ou propriedade, ou alguma funcao em que eu possa atualizar apenas o registro corrente, sem tem der fazer novamente um FillAll e trazer todos os dados?


I have a doubt, do not know if it's possible.

I have a customer table (16,000 records with 125 fields, it takes about 3 seconds to get). My clients have a way to open this table in the morning by default with a FillAll where they bring all records and navigating the records all day. What happens to those records are in memory (BO) and do not reflect more WHAT exists in the database.

Is there any method or property, or some function where I can update only the current record, without having to give a FillAll again and bring all the facts?

Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.5K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
There are lots and lots of potential ways to handle this, but all of them essentially are based on simply providing the means for the user to select what record or records they want to work with, get just those records, then they close out or start over by picking new records.



One way is to use the BrowseDialog and when you open the form, don't load any records. The user will have to select the records to work with via the BrowseDialog. I think the best place to start is to see the help file and StrataFlix sample app for more details. As you start working through this you can ask more detailed questions and we can help you out.
Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Hey Malcon!

Glad to see you back here. Cool

Malcon
Malcon
StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)StrataFrame Novice (54 reputation)
Group: Forum Members
Posts: 28, Visits: 93
Ola Greg e Ivan.

Entendo o uso da pesquisa para sempre buscar os registros atualizados no banco. Vou tentar explicar melhor meu problema.

Temos uma solucao feita em VB6 utilizado DAO para acesso aos dados, trabalhamos de forma conectada ao banco, ou seja basta eu chamar um SeeChanges na minha conexao e tenho os dados atualizados.

Para acompanha a MS, estamos recriando nossos softwares em C# com SQL Server. Sei que o ADO.net trabalha de forma desconectada, ainda mais usando o StrataFrame.

Meus clientes (em torno de 550 empresas) ja estao acostumadas a "navegar" pelos registros, utilizando as teclas <<     <    >     >>  move next, move first, etc...

O problema que estes registros sofrem muitas alteracoes durante o dia.

Exemplo: No cadastro de clientes, tenho a data e hora da ultima informacao foi trasmitida por ele. Caso eu navegue ate o registro e verifique esta data, ela ja nao reflete a realidade.

Poderia de tempos em tempo atualizar os meus registros da tela, mas nao eh muito "interessante" pois o tempo de carga deste BO gira em torno de 3 a 4 segundos. Se 80 estacoes fizerem essa atualizacao a cada minutos compromete a velocidade do sistema como um todo.

Pensei em varias solucoes:

-Atualizar o BO a cada minuto.

-Atualizar o BO a cada navegacao.

-Ter 2 BO, 1 para executar a navegacao e outro para exibir apenas o registro corrente do primeiro BO (essa solucao seria a mais ideal e mais complexa de sincronizar ambos)

Resumindo. Gostaria de saberi se existe uma forma de apenas dar um "refresh" no registro corrente?

Estou mandando em anexo uma tela do meu software para voce tenta entender um pouco mais do meu problema.

No retangulo tenho os botões de navegação.

A seta verde a quantidade de registros e a posicao em que estou
A seta vermelha faço uma pesquisa atraves do BrowsingDialog, onde posiciono o usuario no registro selecionado
A seta azul utilizo para fazer um filtro nas informacoes, utilizando tambem o browsingDialog, onde em vez de trazer tudo, trago parte do BO e deixo ele navegar apenas em parte dos dados.

Hello Greg and Ivan.

I understand the use of research to always get the updated records in the database. I'll try to explain my problem.

We have made a solution used in VB6 DAO for data access, we work connected to the bank, that is just a SeeChanges I call on my connection and got the updated data.

To monitor the MS, we are recreating our software in C # with SQL Server. I know the ADO.net works in disconnected, even using StrataFrame.

My clients (around 550 firms) are already accustomed to "navigate" through the records using the buttons <<<>>> move next, move first, etc ...

The problem that these records has undergone many changes during the day.

Example: In the customer base, I have the time and date of last information was transmitted by him. If I navigate to the record and verify this date, it no longer reflects reality.

Could from time to time to update my records the screen, but it seems very "interesting" because the load time of this BO is around 3-4 seconds. If 80 stations that make updating every minute compromises the speed of the system as a whole.

I thought about several solutions:

BO-Update every minute.

BO-Update every navigation.

-Have two BO, 1 to perform the navigation and other to display only the current record of the first BO (that would be the ideal solution and more complex to synchronize both)

Summarizing. I wonder if there is a way of just giving a "refresh" the current record?

I'm sending attached a screenshot of my software for you to try to understand a little more of my problem.

In the rectangle I have the navigation buttons.

The green arrow on the amount of records and the position I'm in
The red arrow I search through the BrowsingDialog, where do I position the user on the selected record
The blue arrow to use a filter of information, using also the browsingDialog, where instead of bringing it, bring part of the police report and let him go only part of the data

 

Attachments
athena.png (81 views, 207.00 KB)
Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)Strategic Support Team Member (3.6K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Hey Malcon.

Yep, got the picture. But unfortunately I can't think of any automagically way to accomplish that, besides coding some refresh methods at certain conditions. And remember something, it is not only the updated records, but the new ones and the deleted ones too.

What if instead of filling the BO with all records, you did with only the one chosen through the BrowseDialog, and then program your Navigation buttons to go fetch the next or from the database, once the user clicked them. There would be needed some effort to go to the current one, get its primary key, writing a scallar method that would chase for the next or previous one, and so on...

I also had my clients used to have all records available and navigate through them before, but I chose to try and change the paradigm to a new disconected reallity.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search