Quelqu'un peut-il me donner un exemple de code source montrant comment se connecter localement à une base de données SQL Server 2005 à partir de JavaScript? J'apprends la programmation Web sur mon bureau.
Ou dois-je utiliser un autre langage de script? Suggérez des alternatives si vous les avez, mais j'essaie maintenant de le faire avec JavaScript. Mon SQL Server est installé localement sur mon bureau - SQL Server Management Studio 2005 et le navigateur IE7.
javascript
sql-server
database-connection
Profitez du codage
la source
la source
Réponses:
Vous ne devez pas utiliser le javascript client pour accéder aux bases de données pour plusieurs raisons (mauvaise pratique, problèmes de sécurité, etc.) mais si vous voulez vraiment le faire, voici un exemple:
Une meilleure façon de se connecter à un serveur SQL serait d'utiliser un langage côté serveur comme PHP, Java, .NET, entre autres. Le javascript client ne doit être utilisé que pour les interfaces.
Et il y a des rumeurs d'une ancienne légende sur l'existence du serveur javascript, mais c'est une autre histoire. ;)
la source
Ce serait vraiment mauvais à faire, car le partage de votre chaîne de connexion ouvre votre site Web à tant de vulnérabilités que vous ne pouvez pas simplement corriger, vous devez utiliser une méthode différente si vous voulez qu'il soit sécurisé. Sinon, vous vous ouvrez à un large public pour profiter de votre site.
la source
Un code de travail parfait ..
la source
services Web
SQL 2005+ prend en charge les WebServices natifs que vous pourriez presque utiliser, même si je ne le suggérerais pas, en raison des risques de sécurité que vous pourriez rencontrer. Pourquoi ai-je dit presque . Eh bien, Javascript n'est pas natif SOAP, il serait donc un peu plus compliqué de le faire. Vous devez envoyer et recevoir SOAP via
XmlHttpRequest
. Vérifiez google pour les clients Javascript SOAP.la source
Jouer avec JavaScript dans un HTA Je n'ai pas eu de chance avec une
driver={SQL Server};...
chaîne de connexion, mais un DSN nommé était OK:j'ai configuré TestDSN et il a testé OK, puis a
var strConn= "DSN=TestDSN";
fonctionné, j'ai donc continué à expérimenter pour mes tests internes et à des fins d'apprentissage.Notre serveur a plusieurs instances en cours d'exécution, par exemple server1 \ dev et server1 \ Test, ce qui a rendu les choses un peu plus délicates car j'ai réussi à perdre un peu de temps à oublier d'échapper au
\
as\\
:)Après quelques impasses avec
server=server1;instanceName=dev
les chaînes de connexion, j'ai finalement obtenu ceci un pour travailler:var strConn= "Provider=SQLOLEDB;Data Source=server1\\dev;Trusted_Connection=Yes;Initial Catalog=MyDatabase;"
En utilisant les informations d'identification Windows plutôt que de fournir un utilisateur / pwd, j'ai trouvé une diversion intéressante en découvrant les subtilités de
Integrated Security = true
vIntegrated Security = SSPI
vTrusted_Connection=Yes
- voir Différence entre Integrated Security = True et Integrated Security = SSPIAttention, RecordCount reviendra comme
-1
si vous utilisiez le type adOpenForwardOnly par défaut . Si vous travaillez avec de petits ensembles de résultats et / ou si cela ne vous dérange pas du tout en mémoire à la fois, utilisezrs.Open(strQuery, objConnection, 3);
(3 = adOpenStatic) et cela donne une valeur validers.RecordCount
la source
Comme indiqué précédemment, cela ne devrait pas être fait en utilisant Javascript côté client, mais il existe un cadre pour implémenter ce que vous voulez de manière plus sécurisée.
Nodejs est un cadre qui vous permet de coder les connexions au serveur en javascript, alors jetez un œil à Nodejs et vous en apprendrez probablement un peu plus sur la communication avec les bases de données et la saisie des données dont vous avez besoin.
la source
(désolé, c'était une réponse plus générique sur les backends SQL - je n'avais pas lu la réponse sur la fonctionnalité WebServices de SQL Server 2005. Bien que cette fonctionnalité soit toujours exécutée via HTTP plutôt que plus directement via des sockets, ils ont donc essentiellement construit un mini serveur Web dans le serveur de base de données, donc cette réponse est encore une autre voie que vous pourriez prendre.)
Vous pouvez également vous connecter directement à l'aide de sockets (google "javascript sockets") et par directement à ce stade, j'entends utiliser un fichier Flash à cet effet, bien que HTML5 ait des sockets Web dans le cadre des spécifications qui, je crois, vous permettent de faire la même chose.
Certaines personnes citent des problèmes de sécurité, mais si vous avez correctement conçu les autorisations de votre base de données, vous devriez théoriquement pouvoir accéder à la base de données à partir de n'importe quel front-end, y compris OSQL, et ne pas avoir de violation de sécurité. Le problème de sécurité serait alors si vous ne vous connectiez pas via SSL.
Enfin, je suis presque sûr que tout cela est théorique car je ne crois pas qu'il existe de bibliothèques JavaScript pour gérer les protocoles de communication pour SSL ou SQL Server, donc à moins que vous ne vouliez comprendre ces choses par vous-même, ce serait il vaut mieux suivre la voie d'un serveur Web et d'un langage de script côté serveur entre le navigateur et la base de données.
la source
Je ne pense pas que vous puissiez vous connecter au serveur SQL à partir de javascripts côté client. Vous devez choisir un langage côté serveur pour créer des applications Web qui peuvent interagir avec votre base de données et utiliser javascript uniquement pour améliorer l'interaction avec votre interface utilisateur.
vous pouvez choisir n'importe quel langage de script côté serveur en fonction de votre préférence de langue:
la source