2010-01-29 5 views
2

Avec DataSnap 2009, il semble possible d'utiliser une connexion de base de données distante dans le module de données client, en utilisant un TDSProviderConection et un TSQLConnection associé. Le côté client est facile à configurer, je dépose une TSQLConnection sur le formulaire et le relie au composant TDSProviderConnection. Mais quelles sont les étapes dans le datamodule distant côté serveur pour fournir la «vraie» SQLConnection au client? J'ai un module de serveur qui hérite de TDSServerModule, un TDSTCPServerTransport, un TDSServer et un composant TDSServerClass. Comment puis-je lier ces à un TSQLConnection côté serveur?Comment obtenir une SQLConnection distante pour TDSProviderConnection.SQLConnection?

Répondre

3

En fait, le moyen le plus simple d'accéder à la connexion de la base de données côté serveur à partir du client DataSnap 2009 est d'utiliser uniquement un composant TSQLConnection. Définissez sa propriété "Driver" sur "DataSnap" et dans la sous-propriété "ServerConnection" spécifiez une méthode de serveur qui renvoie une référence "TDBXConnection". Vous pouvez ajouter manuellement une telle méthode serveur à votre module de données distant. Il est plus facile d'utiliser une méthode de serveur "DSAdmin.GetConnection" intégrée et de simplement spécifier le nom de la connexion DBExpress telle qu'elle apparaît dans l'Explorateur de données sur le serveur ou dans le fichier DBXConnection.ini. Le gotcha est d'utiliser des guillemets doubles autour du nom de la connexion. Par exemple, si vous avez une connexion Interbase nommé « IBEMPLOYEE » dans l'explorateur de données, il suffit d'entrer dans « ServerConnection » la chaîne suivante:

DSAdmin.GetConnection (« IBEMPLOYEE »)

et définir la propriété « Connected » à "vrai".

Dans ce scénario, vous n'avez rien de spécial à faire sur le serveur DataSnap. En fait, vous n'avez même pas besoin d'un module serveur car vous en utilisez un intégré.

HIH

Pawel

+0

Est-ce que les propriétés côté serveur TSQLConnection remplacent les paramètres du TSQLConnection côté client? Si oui, comment transmettrons-nous les paramètres au serveur pour configurer la connexion, par exemple si le client doit définir certaines choses spécifiques à la session (comme le nom d'utilisateur) dans la configuration de base de données avant l'ouverture du TSQLConnection côté serveur? – mjn

+0

Je suppose que non. Le serveur ne remplacerait pas la connexion côté client. La solution serait de créer une méthode de serveur qui accepte tous les paramètres nécessaires pour la connexion côté serveur, comme passer le nom d'utilisateur/mot de passe. –

Questions connexes