2016-06-01 5 views
1

Ich habe ein paar Server, die replizieren. Wir möchten sicherstellen, dass Nutzer die App auf dem primären Server verwenden und unter bestimmten Umständen nur den 2nd-Server verwenden.Kann ich eine Datenbank auf einem anderen Server als das PostOpen-Skript-Ereignis öffnen?

Ich habe im PostOpen-Ereignis des Datenbankskripts Code hinzugefügt, um zu prüfen, von welchem ​​Server die App geöffnet ist. Wenn sie sich nicht auf dem richtigen Server befinden, erscheint eine Meldung, dass sie sich auf dem falschen Server befinden und fragt, ob sie fortfahren wollen oder nicht.

Was ich tun möchte, ist, wenn sie "Nein" wählen, nicht auf dem 2ndary-Server fortzusetzen, möchte ich diese Datenbank schließen und öffnen Sie die auf dem primären Server.

Ich habe versucht, die UI Workspace OpenDatabase, aber das hat nicht wirklich funktioniert. Es ist wahrscheinlich nicht möglich, aber ich dachte, ich würde fragen, ob es einen Weg gibt, dies zu tun.

Dank clem

+0

Sind die Server geclustert? –

Antwort

1

Ich habe den folgenden Code in einer Anwendung von mir (abgespeckte) laufen zu erreichen, was Sie tun möchten:

strServer = "YourMasterServer" 
strFilePath = Source.Database.Filepath 

Call Source.Close() 
Call ws.Opendatabase(strServer, strFilePath) 

Der Code im PostOpen- Ereignis ist der Datenbank.

+0

Hallo Torsten, ich habe es versucht, aber es hat nicht funktioniert. Es öffnet die Datenbank auf dem 2. Server und nicht auf dem Primärserver. clem – Clem

+0

Dann haben Sie etwas falsch gemacht ... Sind Sie sicher, Sie haben den richtigen Server für "strServer" ausgewählt? –

+0

Würde dies nicht zu einer Schleife führen? D. h., Der Benutzer wird auf YourMasterServer geöffnet, PostOpen wird ausgelöst. Code schließt das Fenster, öffnet die Datenbank auf Ihrem YourMasterServer. PostOpen feuert. Code schließt Fenster, etc ... –