Alguém pode me dar algum código fonte de exemplo mostrando como conectar-se a um banco de dados SQL Server 2005 a partir de JavaScript localmente? Estou aprendendo a programação da web na minha área de trabalho.
Ou preciso usar outra linguagem de script? Sugira algumas alternativas, se você as tiver, mas agora estou tentando fazê-lo com JavaScript. Meu SQL Server está instalado localmente na minha área de trabalho - navegador SQL Server Management Studio 2005 e IE7.
javascript
sql-server
database-connection
Desfrute de codificação
fonte
fonte
Respostas:
Você não deve usar o javascript do cliente para acessar bancos de dados por vários motivos (práticas inadequadas, problemas de segurança, etc.), mas se você realmente deseja fazer isso, aqui está um exemplo:
Uma maneira melhor de se conectar a um servidor sql seria usar alguma linguagem do lado do servidor, como PHP, Java, .NET, entre outras. O javascript do cliente deve ser usado apenas para as interfaces.
E há rumores de uma lenda antiga sobre a existência de javascript no servidor, mas essa é outra história. ;)
fonte
Isso seria muito ruim, porque o compartilhamento da cadeia de conexão abre seu site para tantas vulnerabilidades que você não pode simplesmente consertar, você precisa usar um método diferente se quiser que ele seja seguro. Caso contrário, você estará se abrindo para um grande público para aproveitar o seu site.
fonte
Um código de trabalho perfeito ..
fonte
serviços web
O SQL 2005+ suporta WebServices nativos que você quase poderia usar, embora eu não o sugirasse , devido aos riscos de segurança que você pode enfrentar. Por que eu disse quase . Bem, o Javascript não é nativo do SOAP, portanto, seria um pouco mais complicado fazê-lo. Você precisaria enviar e receber SOAP via
XmlHttpRequest
. Verifique no google se há clientes SOAP Javascript.fonte
Jogando com JavaScript em um HTA, não tive sorte com uma
driver={SQL Server};...
sequência de conexão, mas um DSN nomeado era bom:configurei o TestDSN e ele testou o OK, e então
var strConn= "DSN=TestDSN";
funcionou, então continuei experimentando para fins de teste e aprendizado internos.Nosso servidor tem várias instâncias em execução, por exemplo, server1 \ dev e server1 \ Test, o que tornou as coisas um pouco mais complicadas, pois consegui perder algum tempo esquecendo de escapar do
\
as\\
:) :)Depois de alguns becos sem saída com
server=server1;instanceName=dev
as cadeias de conexão, eu finalmente consegui um para trabalhar:var strConn= "Provider=SQLOLEDB;Data Source=server1\\dev;Trusted_Connection=Yes;Initial Catalog=MyDatabase;"
Usando credenciais do Windows em vez de fornecer um usuário / senha, eu descobri que uma distração interessante foi descobrir as sutilezas de
Integrated Security = true
vIntegrated Security = SSPI
vTrusted_Connection=Yes
- consulte Diferença entre Segurança Integrada = Verdadeira e Segurança Integrada = SSPICuidado que RecordCount retornará como
-1
se estivesse usando o tipo adOpenForwardOnly padrão . Se você estiver trabalhando com pequenos conjuntos de resultados e / ou não se importar com o lote inteiro na memória de uma só vez, users.Open(strQuery, objConnection, 3);
(3 = adOpenStatic) e isso fornecerá um válidors.RecordCount
fonte
Como afirmado anteriormente, isso não deve ser feito usando o Javascript do cliente, mas existe uma estrutura para implementar o que você deseja com mais segurança.
O Nodejs é uma estrutura que permite codificar as conexões do servidor em javascript, portanto, dê uma olhada no Nodejs e você provavelmente aprenderá um pouco mais sobre a comunicação com os bancos de dados e a captura de dados necessários.
fonte
(desculpe, essa foi uma resposta mais genérica sobre back-end do SQL - eu não tinha lido a resposta sobre o recurso WebServices do SQL Server 2005. Embora esse recurso ainda seja executado por HTTP em vez de mais diretamente por soquetes, essencialmente eles criaram um mini servidor da Web no servidor de banco de dados; portanto, essa resposta ainda é outra rota que você pode seguir.)
Você também pode conectar-se diretamente usando sockets (google "sockets de javascript") e, nesse ponto, quero dizer usando um arquivo Flash para esse fim, embora o HTML5 tenha Web Sockets como parte das especificações que acredito que permitem que você faça a mesma coisa.
Algumas pessoas citam problemas de segurança, mas se você projetou suas permissões de banco de dados corretamente, teoricamente deve poder acessar o banco de dados de qualquer front end, incluindo OSQL, e não ter uma violação de segurança. O problema de segurança, então, seria se você não estivesse se conectando via SSL.
Finalmente, porém, tenho certeza de que tudo isso é teórico, porque não acredito que existam bibliotecas JavaScript para manipular os protocolos de comunicação para SSL ou SQL Server; portanto, a menos que você esteja disposto a descobrir essas coisas, seria melhor seguir o caminho de ter um servidor da Web e uma linguagem de script do lado do servidor entre o navegador e o banco de dados.
fonte
Eu não acho que você pode se conectar ao servidor SQL a partir de javascripts do lado do cliente. Você precisa escolher um idioma do servidor para criar aplicativos da Web que possam interagir com seu banco de dados e usar apenas javascript para melhorar sua interface com o usuário.
você pode escolher qualquer linguagem de script do servidor com base na sua preferência de idioma:
fonte