Mostrando las entradas con la etiqueta SQL. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SQL. Mostrar todas las entradas

jueves, 24 de agosto de 2017

Desbloquear contraseña en SQL Server sin cambiarla

Hace poco por error bloquee la contraseña "sa" del SQL Server, un buena practica es crear un nuevo usuario con  los derechos de administrador, ingrese con el usuario y al tratar de desbloquear el usuario "sa" me apareció el siguiente mensaje:


Lo que menos quería era cambiar la contraseña, lo que realice es desmarca las implementación de políticas.

Esto deshabilitara el bloque de la contraseña, solo guardar los cambios.
 Ahora ingresa de nuevo y  selecciona las políticas.

jueves, 6 de julio de 2017

Conexiones remotas en SQL (Puerto 1433)

Para poder hacer la conexión remota de nuestra base de datos de SQL Server y que pueda tener acceso desde varias Pc, debemos habilitar la opción "Permitir conexiones remotas con este servidor" de nuestro servidor donde se encuentre nuestra base de datos.


Ingresar a SQL Server Configuration Manager, seleccionar CONFIGURACÍON DE RED DE SQL SERVER\PROTOCOLOS DE (tu instancia), habilitar TCP/IP.

 

Debemos activar el Firewall y habilitar los puertos para el enlace (1433 predeterminado por SQL Server).

Debemos seleccionar  ALL ANOTHER APP.

Buscamos los archivos :
Habilitar Motor SQL Server : %ProgramFiles%\Microsoft SQL Server\MSSQL10.(instancia)\MSSQL\Binn\sqlservr.exe
Habilitar SQL Browser:  %ProgramFiles% (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe


Una vez que los programas han sido anexados se visualizaran en la lista.


Por último reiniciamos el servidor para que se reinicien todos los servicios.

martes, 20 de junio de 2017

Error: CertEnroll::CX509Enrollment::p_InstallResponse: ANSI bag tag Value met, 0x8009319b (ASN: 267)

Hace un mes caduco el certificado SSL en mi servidor, realice la renovación en GoDaddy, automáticamente se envió el certificado a mi dirección de email  (.p7b y .crt), al trata de instalar mi nuevo certificado me apareció el siguiente error:



Buscando en Internet encontré que es un error de incompatibilidad del certificado con el servidor ya que tal vez haya cambiado alguna configuración o componente.

La solución que realice fue volver a generar de nuevo el certificado, para esto ingrese a mi servidor, seleccione IIS\SERVER CERTIFICATES.


Presione CREATE CERTIFICATE RESQUEST, teclee la información solicitada y presione NEXT.


Seleccione Microsoft RSA Schannel Cryptographic Provider, 2048 y presione NEXT.


Deberás teclear un nombre de archivo.txt donde se guardara la información generada de tu archivo CSR.

En GoDaddy deberás ingresar con tu usuario y contraseña, seleccionar MIS PRODUCTOS, CERTIFICADOS SSL\ADMINISTRAR.

Seleccionar RESTABLECER LA CLAVE.

Copiar el contenido de archivo .TXT en el campo SOLICITUD PARA FIRMA DE CERTIFICADO CSR y presiona el botón GUARDAR.


Por último presiona el botón ENVIAR TODOS LOS CAMBIOS GUARDADOS.

El certificado standard tarda 15 minutos aproximadamente en generarse y enviarse al email de contacto.

Una vez que lo hayamos recibido debemos abrir el IIS\SERVER CERTIFICATE.



Seleccionamos COMPLETE CERTIFICATE RESQUEST..., buscamos el archivo .crt y presionamos OPEN.


 Tecleamos un nombre informativo en FRIENDY NAME y presionamos OK.


Para asignar el certificado a nuestro dominio seleccionamos nuestro sitio web, BINDING, HTTPS, el puerto debe ser 443, en la lista de los certificados deberá aparecer nuestro certificado que acabamos de instalar.
 


Ahora nuestro sitio web comenzara con: https://www.hugoxoft.com

 
 

viernes, 12 de mayo de 2017

Almacenar variables de sesión en SQL Server

En ocasiones se pierde en contenido de la variable de sesión, esto se realizar en automático dependiendo la configuración del servidor, existe una maneja de guardar las variables de sesión en una tabla de SQL Server.

      1. Ejecutar el script InstallSQLState.sql que se ubica en:

c:\winnt\Microsoft.Net\Framework\ ó c:\Windows\Microsoft.Net\Framework\

 Para esto abriremos SQL Server Management Studio y llamaremos nuestro servidor donde se ubican nuestras bases de datos,  seleccionamos File\Open\File...


Buscamos el archivo Installsqlstate.sql, una vez editado debemos presionar el botón EXECUTE.


 Una vez que el script ha sido ejecutado se creara una base de datos llamada ASPstate.


Esta base de datos contiene procedimientos almacenados para realizar las operaciones aunque los datos se guardan en la base de datos Tempdb y no en ASPstate.

 2. Ahora debemos modificar el web.config con lo siguiente:

3. Ahora utilizaremos la variable de sesión de modo normal:

 
Las tablas que se han modificado en SQL Server son ASPStateTempApplications y ASPStateTempSessions en Tempdb.

Si después de haber realizado este proceso deseas desinstalarlo deberás llamar el script UnistallSqlState.sql que se ubica en la misma carpeta.

4. Por último verifica que este ejecutándose el servicio SQLAgent ya que este agente de encarga de limpiar los datos cuando caduca el tiempo configurado para las variables de sesión.

martes, 7 de febrero de 2017

Crear un módulo de visitantes e imprimir la etiqueta con sus datos y foto

El módulo de visitantes esta desarrollado en ASP.Net, para esto utilice el Capture Imagen, es un pequeño archivo .SWF, podrás realizar la descarga en: http://www.aspsnippets.com/Articles/Capture-Image-Photo-from-Web-Camera-Webcam-in-ASPNet-using-C-and-VBNet.aspx


Para el módulo utilice una webcam y una impresora térmica Brother, puedes utilizar cualquier tipo de impresora siempre y cuando se ajuste al tamaño de etiqueta deseado.

Como inicio deberás crear una tabla en SQL server que será donde almacenaras la información de los visitantes.


Creamos un nuevo proyecto Web y copiamos los archivos necesarios para tomar la foto, también creamos un carpeta llama Imagen que será donde guardaremos las fotos.


Crearemos un Form donde insertaremos el código para tomar la foto y donde capturaremos los datos del visitante, para saber como insertar el código revisa el link Capture Imagen.


Dentro de la FORM copiamos el código para guardar la imagen, crearemos una variable de sesión que solo guardara el nombre de la imagen.
El contenido de la variable de sesión es la que guardaremos en la tabla en el campo str_rutafoto.


Una vez guardado el registro con los datos y la ruta de la imagen crearemos la etiqueta.
Dentro del botón Etiqueta llamaremos una segunda FORM donde crearemos el formato de la etiqueta diseñando todo dentro de un PANEL.

 
Por medio de web no podemos enviar a imprimir directo a la impresora térmica lo que haremos será crear un botón donde exportaremos a un archivo en Word que será enviado a la impresora que tenemos en modo local.
Copiamos el siguiente código en el botón Generar etiqueta donde exportaremos todo el contenido del Panel.
Se genera un archivo en Word con el contenido del PANEL.

Al exportar a Word se visualizaran los campos de la etiqueta de la siguiente forma.

 
No se visualizaran las imágenes porque no se encuentra la ruta, para ello debemos llamarlas en el código:


Al generar de nuevo el archivo en Word se visualizara las imágenes.

 
Al envía a imprimir y seleccionar la impresora se deberá cambiar el tamaño y forma de la hoja de Word, pero como esto es muy laborioso para realizarlo cada vez que se genera una nueva etiqueta, lo debemos realizar por medio de código.

En el botón Generar etiqueta cambiamos el código por:


El código anterior genera un archivo en Word con la medidas de nuestra etiqueta, manda a llamar las imágenes así como los datos, se visualizara de la siguiente manera:

 
Para finalizar solo debemos seleccionar la impresora Brother e imprimir.


SI TE FUE UTIL DEJAME UN COMENTARIO.

martes, 22 de noviembre de 2016

ERROR: Cannot create a row of size 8064 which is greater than the allowable row size of 8060

El fin de semana pasado estaba modificando el programa de un cliente, es muy tedioso y aburrido modificar algo que no desarrollaste pero trabajo es trabajo.

Comencé llenando algunos ComboBox para desplegar información de las tablas para la captura, al ejecutar el módulo me apareció el mensaje:

Cannot create a row of size 8064 which is greater than the allowable row size of 8060

Revise la tabla y solo contenia 300 registros, pensé que tal vez algún carácter raro o algo similar, pero no, todos los datos están correctos, después de estar rompiéndome la cabeza con el código decidí revisar la estructura de la tabla y para mi sorpresa me encontré que todo los campos de la tabla tenían CHAR(n), cuando el máximo es de 8000 por registro.

La solución es ingresar a Microsoft SQL Sever Management Studio, editar la tabla y cambiar los campos CHAR(n) por NVARCHAR(n) siempre tomando en cuando la cantidad de caracteres que maneje (n).

martes, 31 de mayo de 2016

Mostrar fecha con diferente formato

Cuando mostramos fecha en un GridView muchas veces aparecen con un formato que no deseamos, en caso de querer modificar la forma de mostrar la fecha puedes hacerlo de la siguiente manera:

Dim Da As New SqlClient.SqlDataAdapter("select nombre as [Nombre],convert(char(12),fecha, 101) as [Fecha nacimiento]" & _
" from TABLA order by nombre ASC ", Cnn)

Donde 101 es el formato que se visualizara como mm/dd/aaaa.

Puedes consultar la siguiente tabla:
DATE FORMATS
Format # Query (current date: 12/30/2006) Sample
1 select convert(varchar, getdate(), 1) 12/30/06
2 select convert(varchar, getdate(), 2) 06.12.30
3 select convert(varchar, getdate(), 3) 30/12/06
4 select convert(varchar, getdate(), 4) 30.12.06
5 select convert(varchar, getdate(), 5) 30-12-06
6 select convert(varchar, getdate(), 6) 30 Dec 06
7 select convert(varchar, getdate(), 7) Dec 30, 06
10 select convert(varchar, getdate(), 10) 12-30-06
11 select convert(varchar, getdate(), 11) 06/12/30
101 select convert(varchar, getdate(), 101) 12/30/2006
102 select convert(varchar, getdate(), 102) 2006.12.30
103 select convert(varchar, getdate(), 103) 30/12/2006
104 select convert(varchar, getdate(), 104) 30.12.2006
105 select convert(varchar, getdate(), 105) 30-12-2006
106 select convert(varchar, getdate(), 106) 30 Dec 2006
107 select convert(varchar, getdate(), 107) Dec 30, 2006
110 select convert(varchar, getdate(), 110) 12-30-2006
111 select convert(varchar, getdate(), 111) 2006/12/30
TIME FORMATS
8 or 108 select convert(varchar, getdate(), 8) 00:38:54
9 or 109 select convert(varchar, getdate(), 9) Dec 30 2006 12:38:54:840AM
14 or 114 select convert(varchar, getdate(), 14) 00:38:54:840

jueves, 26 de mayo de 2016

Roles de acceso a los usuarios en una base de datos de SQL Server

Muchas veces al crear un usuario para tener acceso a nuestra base de datos no sabemos que ROL asignar, dependiendo el ROL podrás realizar algunas tareas.
 
Te dejo una tabla de los ROLES usados en SQL Server con su descripción.

RolDescripción
sysadminLos miembros del rol fijo de servidor sysadmin pueden realizar cualquier actividad en el servidor.
serveradminLos miembros del rol fijo de servidor serveradmin pueden cambiar las opciones de configuración del servidor y apagarlo.
securityadminLos miembros del rol fijo de servidor securityadmin administran los inicios de sesión y sus propiedades. Administran los permisos de servidor GRANT, DENY y REVOKE. También pueden administrar los permisos de nivel de base de datos GRANT, DENY y REVOKE si tienen acceso a una base de datos. Asimismo, pueden restablecer contraseñas para inicios de sesión de SQL Server. Security Note: La capacidad de conceder acceso a Motor de base de datos y configurar los permisos de usuario permite que el administrador de seguridad asigne la mayoría de los permisos de servidor. El rol securityadmin se debe tratar como equivalente al rol sysadmin.
processadminLos miembros del rol fijo de servidor processadmin pueden finalizar los procesos que se ejecuten en una instancia de SQL Server.
setupadminLos miembros del rol fijo de servidor setupadmin pueden agregar y quitar servidores vinculados mediante instrucciones Transact-SQL. (Se necesita la pertenencia a sysadmin cuando se utiliza Management Studio).
bulkadminLos miembros del rol fijo de servidor bulkadmin pueden ejecutar la instrucción BULK INSERT.
diskadminEl rol fijo de servidor diskadmin se usa para administrar archivos de disco.
dbcreatorLos miembros del rol fijo de servidor dbcreator pueden crear, modificar, quitar y restaurar cualquier base de datos.
publicCada inicio de sesión de SQL Server pertenece al rol de servidor public. Cuando a una entidad de seguridad de servidor no se le han concedido ni denegado permisos específicos para un objeto protegible, el usuario hereda los permisos concedidos al rol public para ese objeto. Solo asigne permisos públicos en cualquier objeto cuando desee que el objeto esté disponible para todos los usuarios. No puede cambiar la pertenencia en public. Note: public se implementa de manera diferente que otros roles. Sin embargo, se pueden conceder, denegar o revocar permisos desde public.

 

lunes, 4 de abril de 2016

Obtener solo fecha de un campo DATETIME en SQL Server

Supongamos que tenemos un campo DATETIME en nuestra tabla de SQL.

campo_fecha
23/01/2016 01:27:45 P.M.
25/02/2016 05:56:15 P.M.
30/04/2016 02:16:04 P.M.
28/03/2016 09:23:23 P.M.

Y solo deseamos obtener la fecha sin la hora, realizamos la siguiente consulta:

Select * From NOMBRE_TABLA order by  Convert(DATE, campo_fecha)

El resultado:
23/01/2016
25/02/2016
28/03/2016
30/04/2016




 

lunes, 15 de junio de 2015

Tablas relacionadas en SQL

Supongamos que tenemos 3 tablas en una base de datos:
+Cliente
   nombre_cliente as varchar(50)
      ejemplo: Cliente1
                     Cliente 2
+Marcas
   nombre_cliente as varchar(50)
   nombre_marca as varchar(50)
      ejemplo: Cliente1 - Marca1_1
                     Cliente1 - Marca1_2
                     Cliente 2 - Marca2_1
+Productos
   nombre_marca as varchar(50)
   nombre_producto as varchar(50)
      ejemplo: Marca1_1 - Producto1_1_1
                      Marca1_1 - Producto1_1_2
                      Marca1_2 - Producto1_2_1


Lo que queremos es relacionar la tabla de Clientes con la tabla de Productos y mostrarlos en un DropDownList, para ello las tablas productos P, marcas M, dentro de la tabla Marcas tenemos el campo nombre_cliente que relacionaremos con DropDownList_cliente el cual llenamos solo con la tabla Clientes, por ultimo hacemos la comparación M.nombre_marca=P.nombre_marca el cual llamara todos los productos que tengan el mismo cliente en la tabla de Marcas.

Try
Dim Cnn As New SqlConnection(Session("Conexion"))
Dim Ds As New DataSet
Dim Da As New SqlClient.SqlDataAdapter("select * from productos P, marcas M where M.nombre_cliente='" & Me.DropDownList_cliente.Text & _
"' and M.nombre_marca=P.nombre_marca order by P.nombre_producto ASC", Cnn)
Da.Fill(Ds, "productos")
Dim myDataView As DataView = New DataView(Ds.Tables("productos"))
Dim x As Integer
Me.DropDownList_producto.Items.Clear()
Me.DropDownList_producto.Items.Add(" ")
For x = 0 To myDataView.Count - 1
   Me.DropDownList_producto.Items.Add(myDataView(x)("nombre_producto"))
Next
Cnn.Close()
  Catch err As Exception

    Me.mensaje.Text = (err.Message)
End Try

martes, 20 de mayo de 2014

Crear Backup del Sql server desde VB.Net

Crea un respaldo de una base de datos de SQL server, en la variable v_nombre_respaldo indico el nombre del backup agregando la fecha en que se esta creando para evitar duplicidad en los respaldos. 
NOMBRE_BD es el nombre de la base de datos a respaldar.

v_nombre_respaldo = "BACKUP_" & Now.Day & "_" & Now.Month & "_" & Now.Year & ".bak"

Dim conexion As New SqlConnection("Data Source=NOMBRE_SERVIDOR;Initial Catalog=NOMBRE_BASE_DE_DATOS;Persist Security Info=True;User ID=sa;Password=contraseña")

Dim v_ruta_destino As String = C:\misrespaldos\"

Dim cmd As New SqlCommand("BACKUP DATABASE NOMBRE_BD TO DISK = '" & v_ruta_destino & v_nombre_respaldo & "'", conexion)

conexion.Open()
cmd.ExecuteNonQuery()
conexion.Close()

jueves, 30 de enero de 2014

Borrar registro de una tabla de SQL Server con una condición

Delete from  TABLA where CAMPO='DATO'

Por ejemplo, solo borrar los campos que tenga en nombre JUAN de la tabla PERSONAL.
Delete from  PERSONAL where CAMPO_NOMBRE='JUAN'

miércoles, 10 de julio de 2013

SQL Service fails to start with error code 126

No podía abrir mi base de datos de SQL server 2008, revise los servicios en el servidor y encontré que estaba detenido el SQL SERVER, pero al trata de iniciarlo me marcaba el error :

SQL Service fails to start with error code 126


Buscando en internet encontré la solución:
1.- Seleccionar SQL Server Configuration Manager



2.- Seleccionar SQL Server Network Configuration/Protocols for SQL y seleccionar como DISABLE el protocolo VIA.

lunes, 6 de mayo de 2013

Error incorrect syntax near ''

Estaba modificando el codigo de busqueda en un campo que tengo como nvarchar en mi tabla de slq server, en mi codigo hago referencia a un v_campo como texto, por ejemplo :

Dim v_campo as string ="1234567"
Dim seleccion as string ="Select * from TABLA where =" + v_campo

Funciona sin ningún problema, pero cuando me comentarón que se manejaria un letra intermedia

Dim v_campo as string ="123456a7"

Me comenzo a enviar error  "incorrect syntax near a7'', aunque mi campo esta como string no me respetaba la busqueda, así que cambie el código:

Dim v_campo as string ="123456a7"
Dim seleccion as string ="Select * from TABLA where ='" + v_campo +"'"

miércoles, 9 de mayo de 2012

No se puede modificar la tabla en sql server 2008

En la nueva versión del sql server 2008 viene protegida la modificación de una tabla, para deshabilitar está protección selecciona en el menú principal:
Tools/Option.../Tabla and Databases designers/Table and diagrams options
Desmarca Prevent saveing changes that require table re-creation


Comparte