Avatar billede xing Novice
14. februar 2004 - 15:28 Der er 9 kommentarer og
1 løsning

MSSQL & DBGrid

Jeg har en form med

ADOConnection1
ADOTable1
DataSource1
DBGrid1

Som har kontakt til en MSSQL 2000 database

Det køre fint uden fejl, men hvis jeg køre programmet fra 2 maskiner og ændre i griden på den ene maskine bliver den anden maskines grid ikke opdateret.

Hvordan kan man gøre sådan at hvis man ændre i den ene grid så vil den anden bliver opdateret med det sammen?
Avatar billede koden12 Nybegynder
14. februar 2004 - 15:52 #1
Hvad er en MYSQL 2000 database ?
MYSQL sidst nummer er 4 ? (4.2 eller sådan )

VH
koden12
Avatar billede xing Novice
14. februar 2004 - 17:29 #2
MSSQL 2000 server

MS = Microsoft
Avatar billede nca Juniormester
14. februar 2004 - 17:58 #3
Vil det sige, at du ændre i dataene i en post fra én maskine og ønsker at det også slår igennem på den anden maskine, som har den samme base åben?
Avatar billede xing Novice
14. februar 2004 - 18:26 #4
Samme base og samme tabel

Jeg har lagt mærke til at min

ADOConnection1 holder sig opdateret

men

ADOTable1 holder sig ikke opdateret

Måske er det derfor at min grid ikke ændre sig på den anden maskine
Avatar billede xing Novice
14. februar 2004 - 18:31 #5
Hvis jeg skriver

  ADOTable1.Active := false;
  ADOTable1.Active := True;

Så opdatere den min grid

Men er der ikke en eller anden måde så den bare opdatere løbene, så behøver jeg menlig ikke lave en knap som gør det
Avatar billede nca Juniormester
14. februar 2004 - 18:42 #6
Hver gang du laver en ændring kan du lave ADOTable1.Requery();
Måske kan du sætte Requery ind i eventen OnRecordChangeComplete for din ADOTable
Avatar billede xing Novice
14. februar 2004 - 18:56 #7
ADOTable1.Requery();

Virker lidt bedere

end min

ADOTable1.Active := false;
ADOTable1.Active := True;

men den anden computer kan jo ikke se at jeg lige har ændre, og det er det jeg vil have...

Har prøvet at lave en timer som hvert min udføre

ADOTable1.Requery();

Men det er lidt surt at den springer helt i toppen af griden hvert min..
Avatar billede ibhe Novice
15. februar 2004 - 05:08 #8
Jeg har ikke selv testet dette, men har du prøvet at sætte cursortype til ctdynamic i ADOtable?

I delphi help står der at cursortype default sættes til ctkeyset (Keyset cursor; records added by other users are not visible; records deleted by other users are inaccessible), mens cursortype ctdynamic siger (Dynamic cursor; data modifications, deletions, and insertions by other users are visible; scrolling forward and back allowed.) - Umiddelbart lyder det som om det er det du skal gøre, men som sagt, jeg har ikke testet det.
mvh ib
Avatar billede nca Juniormester
15. februar 2004 - 12:10 #9
Det du er i gang med at lave et en Multiuser applikation.
Jeg har forsøgt med MSAcces og der kan det ikke lade sig gøre.
Det du kan prøve er:
Sær CursorType til ctDynamic
Sæt CursorLocation til clUseServer

Du kan teste om det virker ved at køre 2 versioner af dit program på den samme maskine. En ændring i den ene version skal slå igennem på den anden
Avatar billede xing Novice
16. februar 2004 - 06:47 #10
i er inde på noget af det rigtige ibhe og nca

Nu for jeg bare den fejl at

DBGrid1

Ikke kan klare multi-user app, skod over det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester