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

miércoles, 12 de diciembre de 2018

Poblar DropDownList - Clase Gratis - Curso Programación Capas

#Clase #Gratis #Programacion #Capa #Ado #Net #AdoNet #SQLServer 


Esta vez les dejo una nueva clase extra del curso de programación en Capas con Ado Net, en el cual veremos cómo poblar un dropdownlist o combobox utilizando las capas que ya tenemos listas en el curso.



Si quieres estar enterado de nuevas clases, puedes registrarte en la ventana emergente o a continuación. (Not: revisa tu carpeta spam para la verificación).





miércoles, 5 de diciembre de 2018

Clase Gratis - Descargar SymmetricDS

#Download #Descarga #SymmetricDS @SymmetricDS #Clase #Gratis #Curso #OpenSource #Syncronization #Data #Plataform #DataBase

Syncronizar (o Replicar) tus datos es muy importante para garantizar tener actualizado tus registros en todo momento.
 
En esta ocasión vamos a ver cómo descargar SymmetricDS y copiarlo a un Servidor Linux con #Ubuntu Server.

Cualquier duda, estoy para responder sus preguntas.


Próximamente más clases gratis de este curso.

viernes, 30 de noviembre de 2018

♻ Replicación de Base de Datos con SymmetricDS


#data #database #opensource #replica #basedatos #sqlserver #postgresql #mariadb #mysql #SymmetricDS #integration #udemy #video #clases #curso #course

Elabora solución de replicación multiplataforma, multi BBDD, eficiente, estable, escalable y fácil de configurar

Lo que aprenderás

  • Implementar solución de replicación robusta, escalable, flexible y de fácil configuración sin invertir absolutamente nada en software.
  • Implementar solución de replicación robusta, escalable, flexible y de fácil configuración sin invertir absolutamente nada en software.

Descripción

¿Te gustaría implementar una solución de replicación robusta, eficiente, escalable sin invertir un solo centavo? ¿Eres DBA o quieres serlo?  ¿Eres desarrollador y requieres hacer pruebas en diferentes bases de datos? Entonces debes tomar este curso.

#SymmetricDS es un software de código abierto para replicación de datos asíncrona que permite subscriptores múltiples y sincronización bidireccional. Utiliza tecnologías web y de bases de datos para replicar tablas entre bases de datos relacionales, casi en tiempo real. El software fue diseñado para escalar a un gran número de bases de datos, trabajar con conexiones de bajo ancho de banda, y resistir a periodos de inoperatividad de la red.

Una replicación de base de datos  es una técnica mediante la cual copiamos de forma exacta en otra  ubicación una instancia (o cluster) de la base de datos. Se utiliza en entornos  distribuidos de Sistemas de Gestión de Bases de Datos donde una sola  base de datos tiene que ser utilizada y actualizada en varios lugares de  forma simultánea.

Desde este blog lo puedes tener con precio de lanzamiento, con 87% descuento de su precio original.


87% Descuento Cupos Limitados

lunes, 22 de octubre de 2018

Iniciando con Entity FrameWork



¿Qué aprenderé?


  •  Desarrollar aplicaciones (Web o Escritorio) utilizando tecnología Entity FrameWork

Incluye

  • 1 hora de vídeo bajo demanda
  • 2 artículos
  • Acceso de por vida
  • Acceso en dispositivos móviles y TV
  • Certificado de finalización
  • 2 recursos descargables

Descripción

En este curso verás de manera práctica cómo desarrollar una aplicación con el Entity FrameWork, realizando operaciones CRUD (Create, Read, Update, Delete) sobre una base de datos en SQL Server.

Estos fundamentos, se pueden server no sólo para desarrollar aplicaciones de escritorio, sino para tener una mejor comprensión en el desarrollo de aplicaciones web utilizando el marco de trabajo MVC.

Su Precio es de USD 19.99 y en esta ocasión aprovecha este super descuento.

Gran Descuento

jueves, 6 de septiembre de 2018

Curso Primeros Pasos con Entity FrameWork


#Nuevo #curso #EntityFrameWork #SQlServer #CSharp

Accede al Curso


En este curso verás de manera práctica cómo desarrollar una aplicación con el Entity FrameWork, realizando operaciones CRUD (Create, Read, Update, Delete) sobre una base de datos en SQL Server.

Estos fundamentos, se pueden server no sólo para desarrollar aplicaciones de escritorio, sino para tener una mejor comprensión en el desarrollo de aplicaciones web utilizando el marco de trabajo MVC.

Accede al Curso




ENSEÑANDO ES LA MEJOR FORMA DE APRENDER.

jueves, 17 de septiembre de 2015

[Video] Common Table Expression - SQL Server



#Video #CTE #SQLServer #Online #Free #TSQL via +DEBS Consultores  @DEBSConsultores

En esta ocasión dejo una pequeña explicación sobre CTE o Common Table Expression de SQL Server.

Una CTE (Common Table Expression - Expresión de Tabla Común), se puede considerar un conjunto de resultados temporal que se define en el ámbito de la ejecución de una instrucción única SELECT, INSERT, UPDATE, DELETE o CREATE VIEW



Más información en el blog:
http://debsconsultores.blogspot.com/2014/05/cte-common-table-expression-sql-server.html


Recuerda que puedes encontrarme en:
Facebook:  http://facebook.com/debsconsultores
Blog:  http://debsconsultores.blogspot.com
Redes sociales:  http://about.me/daniel.bojorge
Portafolio: https://www.behance.net/danielbojorge
GitHub: https://github.com/debsconsultores


ENSEÑANDO ES LA MEJOR FORMA DE APRENDER.

lunes, 26 de mayo de 2014

Common Table Expression - SQL Server



Una CTE (Common Table Expression - Expresión de Tabla Común), se puede considerar un conjunto de resultados temporal que se define en el ámbito de la ejecución de una instrucción única SELECT, INSERT, UPDATE, DELETE o CREATE VIEW. Una CTE es similar a una tabla derivada en que no se almacena como un objeto y dura sólo el tiempo que dura la consulta. A diferencia de una tabla derivada, una CTE puede hacer referencia a sí misma y se puede hacer referencia a ella varias veces en la misma consulta.

Al igual que una TVF nos ayuda entre otras cosas a simplificar las consultas grandes, teniendo una mejor visión de la consulta entera.  Las CTE's, también cumplen este objetivo, pero su tiempo de vida es mucho más corto, ya que no se guarda como un objeto de la base de datos, sino que dura el ámbito de la ejecución de la instrucción, la cual puede estar contenida en un SP (Store Procedure) o una consulta general.

En mi caso, ¿dónde las he utilizado? Cuando debo hacer una consulta bastante extensa, que requiere que filtre información sobre datos ya filtrados, básicamente implementando recursividad o reutilizando la consulta anterior. Para los que han programado con Visual FoxPro, es equivalente al manejo de Cursores, con los cuales, la información se obtenía en una consulta (Cursor) y luego ese cursor se podía filtrar y/o utilizar para otra operación.

El uso de una CTE ofrece las ventajas de una legibilidad mejorada y la facilidad de mantenimiento de consultas complejas. La consulta se puede dividir en bloques de construcción lógicos simples e independientes. Estos bloques simples se pueden usar para crear CTE provisionales más complejas hasta que se genere el conjunto de resultados finales.

Las CTE se pueden definir en rutinas definidas por el usuario, como funciones, procedimientos almacenados, desencadenadores o vistas.

Sintaxis


WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
 
Al importante que debo destacar es la utilización de un punto y coma (;) al inicio del CTE, ya que SQL Server enviará un error indicando que la última consulta anterior al CTE debe terminar con ;

También se pueden anidar CTE, con la siguiente sintaxis.

;With C1 AS
(
 Select ...
 From T1 
 Where ...
),
C2 AS
(
 Select ...
 From C1 
 Where ...
)
Select ...
  From C2
Where ...;

Ejemplos

En el siguiente ejemplo se muestra el número total de pedidos de venta por año para cada representante de ventas en Adventure Works Cycles:

;WITH Sales_CTE (SalesPersonID, SalesOrderID, SalesYear)
AS
(
    SELECT SalesPersonID, SalesOrderID, YEAR(OrderDate) AS SalesYear
    FROM Sales.SalesOrderHeader
    WHERE SalesPersonID IS NOT NULL
)
SELECT SalesPersonID, COUNT(SalesOrderID) AS TotalSales, SalesYear
FROM Sales_CTE
GROUP BY SalesYear, SalesPersonID
ORDER BY SalesPersonID, SalesYear;

Más ejemplos por parte de Microsoft, pueden tener en este link.

Un ejemplo práctico, es este SP que realice a inicio del 2014, en el cual tenía que extraer las facturas pendientes de pago, pero por mes.

-- =============================================
-- Author:  Ing. DEBS
-- Create date: 13/02/2014
-- Description: Devuelve por mes (año actual)
--    las facturas pendientes de los proveedores
-- =============================================
ALTER PROCEDURE [Exo].[GetFCxPrvxYear]
 @cYear varchar(4)=''
AS
BEGIN
 /*Declare @cYear as varchar(4);
 Set @cYear = Convert(varchar(4),Year(GetDate()));
 */
 IF @cYear = ''
 BEGIN
  Set @cYear = Convert(varchar(4),Year(GetDate()))
 END

 ;With CTE1  --Llama la CTE y sus valores y convierte a C$ todo
  as
 (
 Select cDescPrv,cCodPrv,
  case when cCodMon='C$' THEN nMonto ELSE Round(nMonto * nTC,2) end as nMonto,
  case when cCodMon='C$' THEN nExonerado ELSE Round(nExonerado * nTC,2) end as nExonerado,
  case when cCodMon='C$' THEN nSaldo ELSE Round(nSaldo * nTC,2) end as nSaldo,
  left(YearMes,4) as cYear,Right(YearMes,2) as cMes
  from Exo.GetFCSaldos() 
  where nSaldo<>0
  and nMonto>=0 and nExonerado>=0 and nSaldo>=0
 ),-- CTE2 Ubica cada valor en el mes correspondiente
 CTE2 (cDescPrv,cCodPrv,Saldo_Ant,Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic) 
  as
 (
  Select cDescPrv,cCodPrv,
   case when cYear < @cYear then Sum(nSaldo) ELSE 0.0 END,
   Case when cMes = '01' and cYear = @cYear then Sum(nSaldo) else 0.00 end,
   Case when cMes = '02' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '03' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '04' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '05' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '06' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '07' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '08' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '09' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '10' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '11' and cYear = @cYear  then Sum(nSaldo) else 0.00 end,
   Case when cMes = '12' and cYear = @cYear  then Sum(nSaldo) else 0.00 end
  from CTE1
  group by cDescPrv,cCodPrv,cYear,cMes
 ) --Se procede a sumar todo y listo
 Select cDescPrv,cCodPrv,Sum(Saldo_Ant) as Anterior,
  Sum(Ene) as Enero,
  Sum(Feb) as Febrero,
  Sum(Mar) as Marzo,
  Sum(Abr) as Abril,
  Sum(May) as Mayo,
  Sum(Jun) as Junio,
  Sum(Jul) as Julio,
  Sum(Ago) as Agosto,
  Sum(Sep) as Septiembre,
  Sum(Oct) as Octubre,
  Sum(Nov) as Noviembre,
  Sum(Dic) as Diciembre,
  Sum(Saldo_Ant + Ene + Feb + Mar + Abr + May + Jun + Jul + Ago + Sep + Oct + Nov + Dic) as Total
 from CTE2
 where
  (Saldo_Ant + Ene + Feb + Mar + Abr + May + Jun + Jul + Ago + Sep + Oct + Nov + Dic)<>0
  group by cDescPrv,cCodPrv
  order by cDescPrv,cCodPrv
END


Una ejecución a este SP, es algo así:

Conclusión

Las CTE's son muy útiles para poder aplicar recursividad a la información que queremos filtrar, esto es, aplicar ciertas operaciones (o filtro) sobre un conjunto de registros que previamente extrajimos (o consultamos) de la BD.

Como verán en el ejemplo que puse ya al final, utilicé dos CTE, la primera (CTE1) se encarga de poner todos los montos en moneda nacional (de no estarlo), a partir de los datos de una TVF (Exo.GetFCSaldos()) así como filtrar únicamente los registros que aún tienen saldo, además de poner los dos primeros dígitos del mes, luego en la segunda CTE (CTE2) se realiza la sumatoria por mes de cada registro del año correspondiente, asignándoles el nombre del mes.  Al final, se muestran los datos, a partir de la CTE2 y se totaliza por registros.  Puede que la solución es bastante compleja y existen métodos más sencillos, pero traté de ponerles una aplicación práctica de CTE.

Para más información sobre CTE's, pueden visitar los siguientes sitios:
Gracias por haber tomado el tiempo de leer este artículo, espero te sea de utilidad y de serlo, favor compartirlo.  Igual, si tenés alguna duda, comenta en esta publicación.

"Enseñar es la mejor forma de Aprender"


viernes, 23 de mayo de 2014

Table Value Function - SQL Server




Una TVF (Table Value Functions, Función con Valores de Tabla), son funciones definidas por el usuario muy parecidas a las vistas, pero con la particularidad que pueden recibir parámetros, así que podríamos decir que son como vistas, pero que reciben parámetros.

En algunos casos, las TVF podrían reemplazar los procedimientos almacenados (SP, Store Procedure), o bien poder ser utilizados dentro de los mismos.

Son muy útiles, ya que disminuye el tamaño de una consulta, que puede llegar a ser más compleja, permitiendo mejor legibilidad de la misma.

Sintaxis



Características:

  • TVF's retornan una tabla virtual, llamada consulta (query)
  • SQL Server provee dos tipos de TVF
    • Inline: basada de una única expresión SELECT
    • Multi-Statement: Crea y carga varias tablas
  • Soportan parámetros de entrada (no así las vistas).
  • Una TVF Inline, puede ser pensada como una vista parametrizada.

Ejemplo de TVF's



Veremos la utilización dentro de una consulta de la TVF llamada CxC.AntSald_Det, la cual recibe como parámetro el Id de empresa y filtra la información únicamente para esa condición.


Select a.cCodProc,b.cDescript,

Sum(a.Saldo) as Saldo

from CxC.AntSald_Det(@cEmpresa) a inner join CxCProc b on (a.cCodProc=b.cCodProc)

group by a.cCodProc,b.cDescrip

order by a.cCodProc

 Conclusión

La utilización de TVF ayudará mucho, tanto a tener un código más legible, como a realizar consultas complejas.  Por lo que recomiendo su uso. En otro artículo veremos la utilización de los CTE (Common Table Expressions).

Gracias por leer y espero que te sea de utilidad este pequeño artículo.


 
>