Kann mir jemand einen Beispielquellcode geben, der zeigt, wie eine lokale Verbindung zu einer SQL Server 2005-Datenbank über JavaScript hergestellt wird? Ich lerne Webprogrammierung auf meinem Desktop.
Oder muss ich eine andere Skriptsprache verwenden? Schlagen Sie einige Alternativen vor, wenn Sie sie haben, aber ich versuche jetzt, dies mit JavaScript zu tun. Mein SQL Server ist lokal auf meinem Desktop installiert - SQL Server Management Studio 2005 und IE7-Browser.
javascript
sql-server
database-connection
Viel Spaß beim Codieren
quelle
quelle
Antworten:
Sie sollten aus verschiedenen Gründen (schlechte Praxis, Sicherheitsprobleme usw.) kein Client-Javascript verwenden, um auf Datenbanken zuzugreifen. Wenn Sie dies jedoch wirklich tun möchten, finden Sie hier ein Beispiel:
Eine bessere Möglichkeit, eine Verbindung zu einem SQL Server herzustellen, besteht darin, eine serverseitige Sprache wie PHP, Java, .NET usw. zu verwenden. Client-Javascript sollte nur für die Schnittstellen verwendet werden.
Und es gibt Gerüchte über eine alte Legende über die Existenz von Server-Javascript, aber dies ist eine andere Geschichte. ;)
quelle
Dies wäre sehr schlecht, da das Teilen Ihrer Verbindungszeichenfolge Ihre Website für so viele Sicherheitslücken öffnet, dass Sie sie nicht einfach reparieren können. Sie müssen eine andere Methode verwenden, wenn Sie möchten, dass sie sicher ist. Andernfalls öffnen Sie sich einem großen Publikum, um Ihre Website zu nutzen.
quelle
Ein perfekter Arbeitscode ..
quelle
Internetdienste
SQL 2005+ unterstützt native WebServices, die Sie fast verwenden könnten , obwohl ich dies aufgrund von Sicherheitsrisiken nicht empfehlen würde. Warum habe ich fast gesagt . Nun, Javascript ist nicht SOAP-nativ, daher wäre es etwas komplizierter, es tatsächlich zu erstellen. Sie müssten SOAP über senden und empfangen
XmlHttpRequest
. Suchen Sie in Google nach Javascript SOAP-Clients.quelle
Spielen mit JavaScript in einem HTA Ich hatte kein Glück mit einer
driver={SQL Server};...
Verbindungszeichenfolge, aber ein benannter DSN war in Ordnung:Ich habe TestDSN eingerichtet und es wurde in Ordnung getestet und dann
var strConn= "DSN=TestDSN";
funktioniert, also habe ich für meine internen Test- und Lernzwecke weiter experimentiert.Auf unserem Server laufen mehrere Instanzen, z. B. server1 \ dev und server1 \ Test, was die Sache etwas schwieriger machte, da ich einige Zeit damit verschwenden musste, zu vergessen, dem
\
as zu entkommen\\
:)Nach einigen Sackgassen
server=server1;instanceName=dev
in den Verbindungszeichenfolgen bekam ich diese schließlich eine zu arbeiten:var strConn= "Provider=SQLOLEDB;Data Source=server1\\dev;Trusted_Connection=Yes;Initial Catalog=MyDatabase;"
Bei Verwendung von Windows-Anmeldeinformationen anstelle der Angabe eines Benutzers / pwd stellte ich fest, dass eine interessante Ablenkung darin bestand, die Feinheiten von
Integrated Security = true
vIntegrated Security = SSPI
v zu entdeckenTrusted_Connection=Yes
- siehe Unterschied zwischen integrierter Sicherheit = True und integrierter Sicherheit = SSPIBeachten Sie, dass RecordCount so zurückkehrt, als
-1
würde der Standardtyp adOpenForwardOnly verwendet. Wenn Sie mit kleinen Ergebnismengen arbeiten und / oder nicht die gesamte Menge auf einmal im Speicher haben, verwenden Siers.Open(strQuery, objConnection, 3);
(3 = adOpenStatic) und dies ergibt eine gültigers.RecordCount
quelle
Wie bereits erwähnt, sollte dies nicht mit clientseitigem Javascript erfolgen, es gibt jedoch ein Framework, um das, was Sie möchten, sicherer zu implementieren.
Nodejs ist ein Framework, mit dem Sie Serververbindungen in Javascript codieren können. Schauen Sie sich also Nodejs an und erfahren Sie wahrscheinlich mehr über die Kommunikation mit Datenbanken und das Abrufen der benötigten Daten.
quelle
(Entschuldigung, dies war eine allgemeinere Antwort zu SQL-Backends. Ich hatte die Antwort zu der WebServices-Funktion von SQL Server 2005 nicht gelesen. Obwohl diese Funktion immer noch über HTTP und nicht direkt über Sockets ausgeführt wird, wurden sie im Wesentlichen erstellt ein Mini-Webserver in den Datenbankserver, daher ist diese Antwort noch ein anderer Weg, den Sie einschlagen könnten.)
Sie können auch eine direkte Verbindung über Sockets (Google "Javascript-Sockets") herstellen. Mit direkt an dieser Stelle meine ich die Verwendung einer Flash-Datei für diesen Zweck, obwohl HTML5 Web-Sockets als Teil der Spezifikation enthält, von der ich glaube, dass Sie dasselbe tun können.
Einige Leute führen Sicherheitsprobleme an, aber wenn Sie Ihre Datenbankberechtigungen korrekt entworfen haben, sollten Sie theoretisch von jedem Front-End, einschließlich OSQL, auf die Datenbank zugreifen können und keine Sicherheitsverletzung haben. Das Sicherheitsproblem wäre dann, wenn Sie keine Verbindung über SSL herstellen würden.
Schließlich bin ich mir jedoch ziemlich sicher, dass dies alles theoretisch ist, da ich nicht glaube, dass JavaScript-Bibliotheken für die Verarbeitung der Kommunikationsprotokolle für SSL oder SQL Server existieren. Wenn Sie also nicht bereit sind, diese Dinge selbst herauszufinden, wäre dies der Fall Es ist besser, einen Webserver und eine serverseitige Skriptsprache zwischen dem Browser und der Datenbank zu verwenden.
quelle
Ich glaube nicht, dass Sie über clientseitige Javascripts eine Verbindung zum SQL Server herstellen können. Sie müssen eine serverseitige Sprache verwenden, um Webanwendungen zu erstellen, die mit Ihrer Datenbank interagieren können, und nur Javascript verwenden, um die Interaktion mit Ihrer Benutzeroberfläche zu verbessern.
Sie können jede serverseitige Skriptsprache basierend auf Ihren Spracheinstellungen auswählen:
quelle