Archivo Junio, 2010
Cómo darle formato a una fecha en SQL Server
Por Pablo Viale - SQL Server - 15 Junio 2010
Para desplegar una fecha mostrando el formato utilizado en Latinoamérica, utiliza la siguiente instrucción:
-
SELECT CONVERT(VARCHAR(10), TuTabla.Fecha, 103) FROM TuTabla
La fecha será desplegada en el formato dd/mm/aaaa, por ejemplo 15/06/2010 para el 15 de junio de 2010.
Puedes encontrar la lista completa de los formatos en esta página.
Exclusive access could not be obtained because the database is in use
Por Pablo Viale - ASP.NET 2.0 / 3.5, SQL Server - 14 Junio 2010
Intentas restaurar una base de datos desde un backup utilizando Microsoft SQL Server Management Studio y te aparece el siguiente error:
Restore failed for Server 'TuServidor'. (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in use. (Microsoft.SqlServer.Smo)
Lo que ocurre es que la base de datos está abierta por otro proceso y debes cerrar todas las conexiones. Para hacerlo, abre una ventana de Query y coloca lo siguiente:
-
USE master
-
go
-
ALTER DATABASE nombre_de_tu_base_de_datos SET single_user WITH rollback immediate
-
ALTER DATABASE nombre_de_tu_base_de_datos SET multi_user
Este script fue tomado de un excelente post escrito por Sergio Tarrillo, en el cual puedes encontrar soluciones adicionales para este problema.
Table ‘prueba’ is marked as crashed and should be repaired
Por Pablo Viale - SQL (mySQL) - 7 Junio 2010
En ocasiones se te puede presentar el siguiente error en una tabla de una base de datos de MySQL:
Table 'prueba' is marked as crashed and should be repaired
Para repararlo, abre un command prompt de Windows y cámbiate al directorio donde tienes instalado MySQL, y luego al directorio "bin". Es en este directorio donde están todos los comandos de MySQL.
cd "C:\Program Files\MySQL\bin\"
Después ejecuta el comando "myisamchk" sobre la tabla que se dañó:
bin>myisamchk "bdprueba\prueba.myi"
Checking MyISAM file: bdprueba\prueba.myi
Data records: 34548 Deleted blocks: 0
myisamchk: warning: Table is marked as crashed and last repair failed
myisamchk: warning: 1 client is using or hasn't closed the table properly
- check file-size
myisamchk: error: Size of datafile is: 8936628 Should be: 8936696
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
myisamchk: error: got error: 120 when reading datafile at record: 34548
MyISAM-table 'bdprueba\prueba.myi' is corrupted
Fix it using switch "-r" or "-o"
Como puedes ver, nos está marcando un error, ahora para repararlo utiliza "-r":
bin>myisamchk "bdprueba\prueba.myi" -r
- recovering (with sort) MyISAM-table 'bdprueba\prueba.myi'
Data records: 34548
- Fixing index 1
Found link that points at 8936628 (outside data file) at 8924612
Found block that points outside data file at 8924740
Data records: 34576
Y si corres nuevamente el primer comando, verás como ya no te aparece el error:
bin>myisamchk "bdprueba\prueba.myi"
Checking MyISAM file: bdprueba\prueba.myi
Data records: 34576 Deleted blocks: 0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
Cómo hacer una página que cierre la sesión
Por Pablo Viale - ASP.NET 2.0 / 3.5 - 1 Junio 2010
Para cerrar sesión en una aplicación de ASP.NET puedes utilizar el control LoginStatus, sin embargo en ocasiones querrás que esto ocurra al acceder una página, por ejemplo CerrarSesion.aspx. Para hacerlo coloca lo siguiente en el code-behind de dicha página:
-
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
-
FormsAuthentication.SignOut()
-
Session.Clear()
-
Session.Abandon()
-
Response.Redirect(FormsAuthentication.LoginUrl)
-
End Sub
Y listo, con eso cierras la autenticación, limpias y abandonas la sesión, y redireccionas a la página de login.