Кто-нибудь может дать мне пример исходного кода, показывающий, как подключиться к базе данных SQL Server 2005 из JavaScript локально? Я изучаю веб-программирование на своем рабочем столе.
Или мне нужно использовать любой другой язык сценариев? Предложите несколько альтернатив, если они у вас есть, но сейчас я пытаюсь сделать это с помощью JavaScript. Мой SQL Server локально установлен на моем рабочем столе - SQL Server Management Studio 2005 и браузер IE7.
javascript
sql-server
database-connection
Наслаждайтесь кодированием
источник
источник
Ответы:
Вы не должны использовать клиентский JavaScript для доступа к базам данных по нескольким причинам (плохая практика, проблемы безопасности и т. Д.), Но если вы действительно хотите это сделать, вот пример:
Лучшим способом подключения к серверу sql было бы использование некоторых серверных языков, таких как PHP, Java, .NET и других. Клиентский JavaScript должен использоваться только для интерфейсов.
И ходят слухи о древней легенде о существовании серверного javascript, но это уже другая история. ;)
источник
Это было бы очень плохо, потому что совместное использование вашей строки подключения открывает ваш сайт для такого количества уязвимостей, что вы не можете просто исправить, вы должны использовать другой метод, если вы хотите, чтобы он был безопасным. В противном случае вы открываете огромную аудиторию, чтобы воспользоваться вашим сайтом.
источник
Идеальный рабочий код ..
источник
Веб-сервисы
SQL 2005+ поддерживает нативные веб-сервисы, которые вы могли бы почти использовать, хотя я бы не советовал этого из-за угроз безопасности, с которыми вы можете столкнуться. Почему я сказал почти . Ну, Javascript не является SOAP-нативным, так что было бы немного сложнее сделать это на самом деле. Вам придется отправлять и получать SOAP через
XmlHttpRequest
. Проверьте Google для клиентов Javascript SOAP.источник
Играя с JavaScript в HTA, мне не повезло со
driver={SQL Server};...
строкой соединения, но с именованным DSN все было в порядке:я настроил TestDSN, и он протестировал OK, а затем
var strConn= "DSN=TestDSN";
работал, поэтому я продолжал экспериментировать для своих собственных целей тестирования и обучения.На нашем сервере запущено несколько экземпляров, например server1 \ dev и server1 \ Test, что несколько усложнило ситуацию, поскольку мне удалось потратить некоторое время на забвение выхода из
\
as\\
:)После некоторых тупиковых ситуаций
server=server1;instanceName=dev
в строках соединения я в итоге получил это один на работу:var strConn= "Provider=SQLOLEDB;Data Source=server1\\dev;Trusted_Connection=Yes;Initial Catalog=MyDatabase;"
Используя учетные данные Windows вместо того, чтобы указывать пользователя / pwd, я обнаружил интересное отклонение: обнаружение тонкостей
Integrated Security = true
vIntegrated Security = SSPI
vTrusted_Connection=Yes
- см. Различие между интегрированной безопасностью = True и интегрированной безопасностью = SSPIПомните, что RecordCount вернется, как
-1
если бы он использовал тип adOpenForwardOnly по умолчанию . Если вы работаете с небольшими наборами результатов и / или неrs.Open(strQuery, objConnection, 3);
обращаете внимания на весь объем памяти сразу, используйте (3 = adOpenStatic), и это даст действительныйrs.RecordCount
источник
Как указывалось ранее, это не должно быть сделано с использованием клиентского Javascript, но есть структура для реализации того, что вы хотите более безопасно.
Nodejs - это инфраструктура, которая позволяет вам кодировать соединения с сервером в javascript, поэтому изучите Nodejs, и вы, вероятно, узнаете немного больше о связи с базами данных и получении необходимых данных.
источник
(извините, это был более общий ответ о бэкэндах SQL - я не читал ответ о функции WebServices в SQL Server 2005. Хотя эта функция все еще запускается через HTTP, а не напрямую через сокеты, так что по сути они построили мини веб-сервер на сервер базы данных, так что этот ответ является еще одним маршрутом, который вы могли бы выбрать.)
Вы также можете подключиться напрямую, используя сокеты (google "javascript sockets"), и под этим на самом деле я имею в виду использование файла Flash для этой цели, хотя в HTML5 есть веб-сокеты как часть спецификации, которая, как я считаю, позволяет вам делать то же самое.
Некоторые люди ссылаются на проблемы безопасности, но если вы правильно разработали разрешения для базы данных, вы теоретически должны иметь доступ к базе данных из любого внешнего интерфейса, включая OSQL, и не иметь нарушения безопасности. В этом случае проблема безопасности была бы, если бы вы не подключались через SSL.
Наконец, я уверен, что все это теоретически, потому что я не верю, что существуют какие-либо библиотеки JavaScript для обработки протоколов связи для SSL или SQL Server, поэтому, если вы не захотите сами разобраться с этим, это будет Лучше пойти по пути наличия веб-сервера и серверного скриптового языка между браузером и базой данных.
источник
Я не думаю, что вы можете подключиться к серверу SQL с клиентской стороны JavaScript. Вам нужно выбрать некоторый язык на стороне сервера для создания веб-приложений, которые могут взаимодействовать с вашей базой данных, и использовать только JavaScript, чтобы сделать ваш пользовательский интерфейс более удобным для взаимодействия.
Вы можете выбрать любой язык сценариев на стороне сервера, исходя из ваших языковых предпочтений:
источник