¿Cómo poner la ruta relativa a un archivo SQLite en una conexión en .Net?

Para que nuestra conexión a un archivo de SQLite sea relativa y funcione en cualquier equipo solo basta con agregar “.\” al inicio de la ruta en nuestra cadena de conexión (AppConfig o WebConfig).

Por ejemplo si nuestra base de datos está en una carpeta de nombre Data y el archivo se llama MiData.db, quedaría de la siguiente manera:


data source=.\Data\MiData.db

Recuerda que el archivo de la base de datos tenga en su propiedad la opción “Copiar siempre”, para que este en la carpeta Debug o Release según corresponda.

¿Cómo eliminar las sesiones o conexiones sobre una Base de datos en SQL Server?

Cuando deseamos eliminar una base de datos algunas veces Sql Server no nos lo permite ya que la base de datos está siendo utilizada. Esto puede ser por sistemas que no cierran la conexión o procesos que están conectándose las 24 horas del día.

Para eliminar las conexiones, primero debemos saber cuáles son, y para ello puedes ejecutar la siguiente consulta, remplazando el nombre de tu base de datos en la instrucción Where.


SELECT   *
FROM     sys.dm_exec_sessions
WHERE    DB_NAME(database_id) = 'Nombre_De_Tu_BaseDeDatos'

Una vez que hemos obtenido algo parecido a la siguiente lista:

Debemos ejecutar la función Kill seguida del número de la sesión (el primer campo de la imagen) a eliminar:


KILL 97

Y listo, de esa manera se elimina un proceso que nunca fue cerrado.

¿Cómo sumar 1 día, 1 mes o 1 año a una fecha en mysql?

Cuando manejamos fechas con mysql tenemos a la disposición muchas funciones ya establecidas en el motor las cuales son útiles al realizar consultas.

Te muestro como puedes agregar 1 día, 1 mes o un año a una fecha en específico.

Utilizando la función Now() de mysql aplicare la suma como muestro a continuación:


-- 1 día
select  DATE(DATE_ADD(now(), INTERVAL 1 DAY))

-- 1 mes
select  DATE(DATE_ADD(now(), INTERVAL 1 MONTH))

-- 1 año
select  DATE(DATE_ADD(now(), INTERVAL 1 YEAR))

¿Cómo conectar varias computadoras en el sistema de gimnasio Hdeleon (sirve para cualquier versión)? Xampp mysql remoto

En el siguiente video te muestro como puedes hacer que Xampp te permita conectar varias computadoras a tus bases de datos en mysql.

En este caso lo hago mostrando como conectar otras computadoras en la misma base de datos mysql del sistema de gimnasio hdeleon.

Sirve para cualquier versión.

Si no eres de México y deseas adquirir la versión 1.7 del sistema para gimnasio hdeleon con soporte para registro con huella, puedes hacer un pago en la siguiente liga, por 15 dolares (USD): https://www.paypal.me/HectorDeLeonGuevara 

Y automáticamente te llegara la liga de descarga con el código fuente, drivers de lector de huella y la base de datos.

¿Cómo realizar un Order by o un Group by a un tipo de dato Text en SQL Server?

Como sabemos un tipo de dato Text es un tipo de datos que no se le puede aplicar un ordenamiento en SQL Server. Si intentamos hacerlo recibiremos un mensaje como este:

No se pueden comparar ni ordenar los tipos de datos text, ntext e image, excepto cuando se utiliza el operador IS NULL o LIKE.

Pero hay una forma con la cual podemos lograrlo, y es convertirlo en un tipo de dato ordenable, en este caso en un tipo varchar, como a continuación muestro:


-- Ordenamiento
select * from tabla
order by CAST(campoText AS varchar(max))

-- Agrupamiento
select CAST(campoText AS varchar(max)) from tabla
group by CAST(campoText AS varchar(max))

De esta manera podemos ordenar o agrupar un tipo de dato Text en SQL Server

¿Como recorrer una tabla con la instrucción while en SQL?

Te muestro cómo es posible recorrer una tabla por medio de una instrucción while en sql.

En el caso de mysql u otro motor solo remplazar top por su equivalente, por ejemplo en mysql: limit 0,1.

Tabla people

Código utilizado:


insert into @tabla(id,name) select id,name from people

declare @count int = (select count(*) from @tabla)

while @count > 0
begin

	declare @name varchar(max) = (select top(1) name from @tabla order by id)
	declare @id int = (select top(1) id from @tabla order by id)

	print 'Hola '+@name

	delete @tabla where id=@id

	set @count = (select count(*) from @tabla)

end 

¿Cómo liberar el espacio en el archivo .ldf de una base de datos en SQL SERVER?

El archivo .ldf de toda base de datos en sql server sirve para llevar un log de toda consulta hecha en la base de datos (todos los insert, update, select, etc etc).

Esto es útil para regresar en un punto en el tiempo y ver la base de datos como se encontraba en ese punto en su estructura y en sus datos.

Pero qué pasa cuando nuestra base de datos pesa ya un tamaño exagerado y queremos liberar el espacio de nuestro servidor. Optamos por realizar una liberación de este archivo (obviamente después de hacer los backups correspondientes).

A continuación te muestro como se debería hacer para una base de datos llamada PATODB:


ALTER DATABASE PATODB SET RECOVERY SIMPLE

GO

/* el 5 es 5 MB, se dejara el log con un tamaño de 5MB*/
DBCC SHRINKFILE (PATODB_Log, 5)

GO

ALTER DATABASE PATODB SET RECOVERY FULL

GO

Y así de simple liberamos el espacio de nuestro archivo .ldf.

Catálogos para facturar CFDI 3.3 SAT en Sql Server

ULTIMA ACTUALIZACIÓN DE LOS CATÁLOGOS: 3 DE ENERO 2018

Pongo a disposición los catálogos en Sql Server publicados por SAT necesarios para la facturación 3.3.

Estaré actualizándolos conforme el SAT libere nuevos registros. Solo dar clic en el siguiente enlace:



DESCARGAR CATÁLOGOS SAT

Si deseas descargar los catálogos para mysql entra aquí

Si deseas descargar los catálogos para SQLite entra aquí

Experimentando con indices en SQL Server – En vivo

¿Cual es la diferencia de utilizar o no utilizar indices en nuestras tablas? Experimento con unas consultas para ver el rendimiento de utilizarlos y no utilizarlos: