dalai Skrevet 21. oktober 2003 Del Skrevet 21. oktober 2003 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.. Lenke til kommentar
michaenh Skrevet 21. oktober 2003 Del Skrevet 21. oktober 2003 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.. Lenke til kommentar
jkvatne Skrevet 22. oktober 2003 Del Skrevet 22. oktober 2003 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. Lenke til kommentar
dalai Skrevet 22. oktober 2003 Forfatter Del Skrevet 22. oktober 2003 men kan jeg filtrere ut de dataene jeg vil ha med adotable eller må jeg dra inn hele tabellen? Lenke til kommentar
jkvatne Skrevet 22. oktober 2003 Del Skrevet 22. oktober 2003 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. Lenke til kommentar
dalai Skrevet 22. oktober 2003 Forfatter Del Skrevet 22. oktober 2003 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. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå