Gå til innhold

Anbefalte innlegg

Skrevet

jeg har fem dbgrids i en pagecontrol.

hver av dem har en datasource og hver datasource har en adoquery knyttet til seg.

 

dette funker fint, men når jeg skal f.eks slette en oppføring så sletter jeg den direkte fra basen med et sql kall (delete from....). men da vil ikke dbgridene oppdatere seg.

 

unntaket er da hvis jeg kaller funksjonen som lager alle Queryene på nytt, men det må da vel finnes en enklere meode? med dbgrid.refresh skjer det ingenting..

Videoannonse
Annonse
Skrevet

Du kan bruke TDataSet og refresh.

Men du vil miste scrollbar posisjon og "automatically resets the scrollbar's position back to the far left portion of the DBGRID component.

".

 

Lagre dataset.bookmark før refresh..

Skrevet

Det er nok ingen enklere metode hvis du må bruke ADOQuery og SQL delete.

Hvis du bruker ADOTable og Table.Delete så oppdateres dataene automatisk.

Skrevet

Både og. Du kan legge inn filter, men i virkligheten leses hele tabellen til RAM først og filtreres deretter. SQL er mye bedre på den måten.

 

Desverre har ikke ADOQuery noe UpdateObject slik som TQuery og TZMySqlQuery (Som jeg bruker mye). Dette med refresh av tabeller er et evig program - det største problemet er med bruk av lookup felter etter endringer i tabellene som brukes for lookup.

 

Det sikreste er alltid å gjøre nye SQL kall etter envher endring av databasen, og gjøre brukergrensesnittet slik at alle endringer krever et knappetrykk e.l. fra brukeren. D.v.s. ingen direkte endringer i grids, selv om det er det enkleste for brukeren.

Skrevet

ja har tatt mine forhåndsregler. men problemet er hvis flere personer skal manipulere i basen samtidig. dersom jeg endrer i dbgridene mine, så vil jeg raskt få dem oppdatert. men dersom en annen person som er logget på programmet utfører diverse operasjoner slik at databasen blir endret, vil ikke jeg få sett dette. har du et grovt forslag på hvordan dette kan løses? (ingen implementasjon, bare hvordan det kan løses) vi snakker altså et flerbruker, sanntidssystem.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...