Showing posts with label sql. Show all posts
Showing posts with label sql. Show all posts

Thursday, June 18, 2009

SQL Server does not exist or access denied

Cuando te encuentras involucrado en hacer el deployment de un software con conectividad a Base de Datos en un entorno de produccion, te encuentras con ciertos inconvenientes que tendras que superar.

Cuestiones de orden, ajenos al desarrollo mismo del software.

El mensaje mas visto es: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied

Cuando tienes el SQL Server Express en tu misma Developer PC, pues jamas veras este mensajito.

Recuerda que en ese sesgado escenario tu eres amo, dueño y señor de tu PC :)

En un entorno donde el Web Server se encuentra sobre una Machine diferente al Database Server que deja ya de ser un simple SQL Server Express entonces la situacion empieza por complicarse.

Firewall, Antiviruses y otras historias en el Database Server deberan ser configurados para permitir que la conectividad, con este, sea permitida.

Inclusive puedes cambiar el famoso, conocido y prostituible puerto 1433 del SQL Server Express, para que sea otro el puerto por el cual comunicarse con el Database Server.

En consecuencia, debes verificar si algun software esta bloqueando el puerto por el cual te comunicas con el Database Server.

Si aquellio esta verificado, pues la primera validacion esta sobre el nombre del Database Server sobre la red, especificado en el connectionString.

La segunda validacion sobre el nombre de la instancia sobre el Database Server, por ejemplo: mySqlServer\SqlExpress.

Luego, el numero del puerto por el cual te comunicas al Database Server que por defecto es el 1433, pero si lo habeis cambiado en el server, tendras que indicarlo en tu connectionString, por ejemplo: mySqlServer\SqlExpress,6969, donde 6969 es el puerto por el cual el Database Server atiende las peticiones.

Thursday, October 09, 2008

Login failed for user NT AUTHORITY

Login failed for user NT AUTHORITY\Network service, es el mensaje que nos muestra un aplicativo ASP.NET con conectividad a Base de Datos, al intentar establecer la conexion con el repositorio de datos y NO tener los privilegios correspondientes.

Si tu conectionstring o cadena de conexion utiliza la Autenticacion Integrada de Windows para conectarse a la DataBase, este mensaje podria ser visto NO si antes se hayan realizado los ajustes correspondientes.

server=myserver;database=mydatabase;integrated security=true;

Lo que debes hacer es darle el acceso al usuario NT AUTHORITY\Network service a la base de datos deseada.

sp_grantlogin 'NT AUTHORITY\Network service'

Podrias ejecutar dicho store procedure sobre el contexto de la base de datos requerida o hacerlo sobre la carpeta Security del SQL Server Management Studio.

Tuesday, October 07, 2008

SQL Server 2005 Setup Log Files

There was an unexpected failure during the setup wizard. You may review the setup logs and/or click the help button for more information.

Este es uno de los mensajes que puedes recibir cuando el proceso de instalacion del Microsoft SQL Server 2005 Standard Edition haya fracasado.

Evidentemente tienes que revisar los archivos de LOG que haya generado el Microsoft SQL Server 2005 Setup durante su ejecucion.

Estos archivos se encuentran en la carpeta:

c:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files\

Veras alli una lista de archivos de texto con extension .log para que puedan ser revisados y verifiques, cual fue el motivo para el fracaso del proceso de instalacion del Microsoft SQL Server 2005.

Thursday, July 31, 2008

MARS MultipleActiveResultSets True

Cuando estas trabajando con SqlDataReader para obtener informacion del SQL Server 2005 muy probablemente te encuentres con este mensaje al ejecutar el metodo ExecuteReader del SqlCommand:

There is already an open DataReader associated with this Command which must be closed first.

En terminos sencillos, se nos dice, que ya tenemos un SqlDataReader que se encuentra abierto y NO seria posible aperturar otro al mismo tiempo, mientras NO se cierre el primero.

Para este incidente, el SqlServer2005 brinda la posibilidad de agregar una propiedad al ConnectionString para permitir multiples SqlDataReader abiertos, al mismo tiempo.

Agregando MultipleActiveResultSets=True al ConnectionString se resuelve el problema.

Sin embargo recuerda que esta facilidad solo esta permitida en SQL Server 2005 y superiores.

En la version del SQL Server 2000 esta propiedad para el ConnectionString NO esta factible de utilizar. Por lo que el error aun prevalecera.

Wednesday, January 24, 2007

Microsoft SQL Server Management Studio Express

Cuando instalas tu SQL Server Express Edition en tu PC. Necesitas administrar el servidor de base de datos instalado allí.

Para ello debes instalar un componente adicional para la version Express Edition de tu SQL Server.

Dicho componente se llama SQL Server Management Studio Express, el cual puedes descargar desde:

Microsoft SQL Server Management Studio Express
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796

Wednesday, January 17, 2007

Microsoft SQL Native Client cannot be found

Cuando estas instalando SQL Server 2005 Express Edition, puede que recibas el siguiente mensaje de error:

An installation package for the product Microsoft SQL Native Client cannot be found. Try the installation again using a valid copy of the installation package 'Sqlncli.msi'.

Lo que sucede es que una instalación existente del SQL Native Client produce una falla en la instalacion del SQL Server 2005 Express Edition.

La solución es desintalar el actual SQL Native Client en tu PC usando Add and Remove Programs y volver a ejecutar el SQL Server 2005 Express Edition.

Saturday, January 13, 2007

Installing SQL Server 2005 Express Edition

Puedes descargar la version express del SQL Server 2005 desde el sitio web oficial de Microsoft.

Microsoft SQL Server 2005 Express Edition
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=220549B5-0B07-4448-8848-DCC397514B41

Pero previamente debes installar estos dos requisitos, para instalarlo sobre tu Windows XP + SP2.

Primero, necesitas instalar el Microsoft Windows Installer 3.1 (v2), el cual puedes descargar desde http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe

Y luego debes instalar el Microsoft .NET Framework 2.0, el cual puedes decargar desde http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en.

Ahora estas listo para ejecutar el instalador de tu SQL Server 2005 Express Edition.

Thursday, January 11, 2007

Installing MSDE 2000

Cuando tratas de instalar el Microsoft SQL Server Desktop Engine, no solo basta hacerle click al setup.exe

Es necesario que ejecutes el Command Prompt. Cambiar al directorio de instalación de tu MSDE. Y tipear setup SAPWD=yourpassword.

Es decir, debes proveer el password para el usuario SA de tu futuro MSDE.

Saturday, November 20, 2004

DataLayer.Primitives and DataLayer.Primitives.Core Public Version Released...!!!

Les entrego la version publica del DataLayer.Primitives and DataLayer.Primitives.Core

Que podran descargar de cualquiera de los siguentes lugares:

http://www.msnusers.com/guydotnetxmlwebservices/Documents/DataLayer.zip

http://www.msnusers.com/guydotnetxmlwebservices/Documents/DataLayer.rar


Pero previamente deberan unirse al grupo a traves del siguiente link:
http://groups.msn.com/guydotnetxmlwebservices/join

¿Que es DataLayer.Primitives and DataLayer.Primitives.Core? ¿Y para que sirve?

Es la solucion .NET orientada a la capa de acceso a datos de un producto de software que se desarrolla sobre la tecnologia del .NET Framework.

La intencion es poder construir un producto basado en una arquitectura de tres capas. Que permita flexibilidad y escalabilidad dentro de su tiempo de vida..

¿Como podria usarlo dentro de mi desarrollo de software?

Generalmente, deberiamos contar con tres soluciones, para la construccion de un producto de software.

DataLayer.sln -> Orientado a la capa de acceso a datos.
BusinessLayer.sln -> Orientado a logica de negocio
UserLayer.sln -> Orientado a interfaz del usuario

En esta oportunidad, les entrego la version publica del DataLayer.sln

¿Que existe dentro del DataLayer.sln?

En el encontraremos, los siguientes proyectos .cs.proj

CommonLayer.Customs : Clases customizadas para un uso particular
CommonLayer.Nullables : Tipos de datos que soportan nulo
CommonLayer.Exceptions : Excepciones para su uso dentro del producto
DataLayer.Primitives and DataLayer.Primitives.Core : Bloque orientado a las operaciones contra la BD
DataLayer.WinApp : Proyecto que testea esta capa de la arquitectura.

¿Como interactua el DataLayer.Primitives and DataLayer.Primitives.Core con las demas capas?

El BusinessLayer.sln es el lugar de donde podras interactuar con el DataLayer.Primitives and DataLayer.Primitives.Core y hacer uso de las clases que ella te brinda para poder consruir las operaciones contra la Base de Datos.

Dentro de ls version publica del DataLayer.Primitives, encontraras las siguientes clases:

PrimitiveEntity : Es una clase que debe ser heradada necesariamente para permitirte aprovechar las operaciones basicas para una tabla de base de datos, desde la perspectiva CRUD. Sobre escribiendo los metodos OnSelect, OnInsert, OnUpdate y OnDelete para poder indicar los parametros que han de ser usados para la ejecucion de cada uno de los stores procedures que han de realizar dichas operaciones.
PrimitiveExecutable : Es una clase que simplemente de ser instanciada para poder ejecutar operaciones contra la base de datos, sean estas a traves de store procedures o sentencias sql.
PrimitiveParameter : Es la clase que nos permitira la creacion sencilla de diferentes tipos de parametros para ser entregados en la ejecucion de los stores procedures, al PrimitiveEntity o el PrimitiveExecutable, dependiendo de lo que hayas usado para realizar operaciones contra la DB.
PrimitiveParameterCollection : Es una colleccion de PrimitiveParameter basada en DictionaryBase, para poder tener un acceso inmediato a cada uno de los elementos de la colleccion con solo tener el nombre del parametro. Muy util cuando se deseas retornar valores a traves de los parametros de un store procedure. Pero siempre usado en todo lugar del DataLayer.Primitives donde se necesiten parametros.
PrimitiveProcedure : Es una estructura que encapsula la definicion basica de un store procedure.
PrimitiveSql : Estructura simple para definir una sentencia SQL.

¿Como deberia estar estructurado el BusinessLayer.sln para poder interactuar facilmente con el DataLayer.Primitives and DataLayer.Primtives.Core?

El BusinessLayer.sln deberia contar con los siguientes proyectos:

BusinessLayer.Components and BusinessLayer.Components.Collections : Es el proyecto en el cual se establecen las clases que encapsulan la logica del negocio a la cual esta orientada el producto.
BusinessLayer.Entities : Aqui se definen las entidades que han de ser el medio por el cual se enviar informacion entre la capa del usuario y la logica de negocio.
BusinessLayer.IDataWrapper : Establece las interfaces para realizar operaciones permitidas contra la DB
BusinessLayer.DataAccess : Es el nexo entre las capa de negocio y la capa de datos. Es aqui donde se hace referencia explicita para poder hacer uso de las clases que brinda el DataLayer.Primitives and DataLayer.Primitives.Core.
BusinessLayer.WinApp : Es el proyecto que permite testear esta capa de la arquitectura.

¿Que es lo que no trae esta version publica del DataLayer.Primitives and DataLayer.Primitives.Core?

No todos los tipos de datos nulos estan entregados en esta version publica. Solo he liberado NullInt32, NullString, NullDataTime. Apoyados por la interfaz INullable. Esto dentro del CommonLayer.Nullables

No se ha entregado toda la gama de excepciones usadas para la construccion de los proyectos que lidero. Solo tres excepciones muy basicas. Esto dentro del CommonLayer.Exceptions.

Solo se ha liberado el CustomDataSet. Esto dentro del CommonLayer.Customs.

Del mismo modo, no se ha liberado el soporte para las transacciones contra la DB ni el soporte para todos los tipos de datos, en la creacion de PrimitiveParameter. Esto dentro de DataLayer.Primitives.

¿No hay mayor informacion sobre el DataLayer.Primitives.Core?

Digamos que justamente es el nucleo del DataLayer.Primitives. Las clases que se definen en ese namespace, tienen la particularidad de ser internal por lo que su uso no va mas alla del assembly correspondiente al DataLayer.Primitives.

¿Que tienes pensado liberar proximamente?

Seria ideal poder liberar un BusinessLayer.sln orientado a una realidad de negocio en particular que permita apreciar el uso adecuado del DataLayer.Primitives and DataLayer.Primitives.Core.

¿Cuando lo piensas hacer?

Coming soon...