domingo, 27 de mayo de 2012
sábado, 26 de mayo de 2012
Thread 1 cannot allocate new log, sequence Private strand flush not complete
Si usted esta recibiendo el error en su trace:
"Thread 1 cannot allocate new log, sequence Private strand flush not complete"
"checkpoint not complete, cannot allocate new log"
Esto pasa por que la escritura a disco es muy pobre.
2.) También asegúrese de que sus puntos de control suceden tan rápido como les sea posible.
Ver
"Thread 1 cannot allocate new log, sequence Private strand flush not complete"
"checkpoint not complete, cannot allocate new log"
Por que Sucede:
Oracle intenta utilizar usar Redo Logs, pero el punto de control ( Checkpoint) aun no se ha generado y no ha liberado el archivo, posible de los redo se miren así:Solución:
1.) Agregue mas archivos a su "Grupo de Redo Logs".2.) También asegúrese de que sus puntos de control suceden tan rápido como les sea posible.
LINQ to Entities - Sintaxis
Una consulta es una expresión que recupera datos de una base de datos.
Las consultas se suelen expresar en un lenguaje de consulta especializada, como SQL para bases de datos relacionales y XQuery para XML. Por lo que, los desarrolladores han tenido que aprender un nuevo lenguaje de consulta para cada tipo de datos de formato de la fuente o los datos que se consulta.
Language-Integrated Query (LINQ) ofrece un simple, modelo coherente para trabajar con datos a través de varios tipos de fuentes de datos y formatos. En una consulta LINQ, siempre se trabaja con objetos de programación.
Obteniendo todos los campos de una tabla
var query = from p in db.Products
orderby p.unitprice
select p;
var query = from p in db.Products
orderby p.unitprice descending
select p;
var query = (from p in db.Products
select new
{
Ver
Las consultas se suelen expresar en un lenguaje de consulta especializada, como SQL para bases de datos relacionales y XQuery para XML. Por lo que, los desarrolladores han tenido que aprender un nuevo lenguaje de consulta para cada tipo de datos de formato de la fuente o los datos que se consulta.
Language-Integrated Query (LINQ) ofrece un simple, modelo coherente para trabajar con datos a través de varios tipos de fuentes de datos y formatos. En una consulta LINQ, siempre se trabaja con objetos de programación.
Sintaxis de Consultas
La sintaxis permite de linq permite a los desarrolladores escribir consultas en un lenguaje de alto nivel que tiene el formato similar a Transact-SQL. Mediante el uso de la sintaxis de las expresiones de consulta, se puede realizar el filtros, ordenar y agrupar las operaciones en las fuentes de datos con código mínimo.Ejemplos a desarrollar:
- Consulta sencilla ( from , select)
- Filtros ( where )
- Ordenando ( Order by)
- Particionando (Skip , Take, top n)
- Operadores (Count , sum , average )
Northwind db = new Northwind()
Consulta Sencilla
El metodo from nos indica de que tabla obtendremos la información y select nos indica que campos de esa tabla.var query = from p in db.Products
select p;
Obteniendo un solo campo
IQueryable<string> productNames =
from p in db.Products
select p.Name;
Obteniendo algunos campos
var query =
from p in db.Products
select new
{
Id = p.ProductID,
Nombre = p.Name
};
Filtros ( where )
La cláusula where filtra la información.var query =
from product in db.Products
where product.categoryid == id
select new
{
Nombre = p.Name,
precio = p.unitprice,
codigo = p.productid
};
Ordenando (orderby y orderbyDescending)
La cláusula orderby y OrderbyDescending nos proporcionan la capacidad de ordernar el conjunto de resultados.var query = from p in db.Products
orderby p.unitprice
select p;
var query = from p in db.Products
orderby p.unitprice descending
select p;
var query = from p in db.Products
orderby p.unitprice, p.name descending
select p;
Particionando (Skip, Take)
La clausula Skip muestra todos los datos, excepto los 2 primero.
La clausula Take muestra solo los primero 2 registros.
Skip
var query =
(from p in db.Products
select new
{
Id = p.ProductID,
Nombre = p.Name
}).Skip(2);
Take
var query = (from p in db.Products
select new
{
Id = p.ProductID,
Nombre = p.Name
}).Take(2);
Fuentes del articulo:
http://msdn.microsoft.com/en-us/library/bb399367.aspxsábado, 12 de mayo de 2012
Ejecutar un Procedimiento almacenado con Entity Framework
Los procedimientos almacenados son rápidos y encapsulan la lógica del negocio, por lo que es recomendables utilizarlos.
1.) Inicie el SQL Management Studio y ejecute el siguiente codigo para crear un Stored Procedure:
CREATE PROC [dbo].[Getorder] @ProductId INT = NULL
AS
SELECT a.orderid,
a.productid,
b.productname,
a.unitprice,
a.quantity,
a.unitprice * a.quantity AS Total
FROM [Order Details] a,
products b
WHERE a.productid = b.productid
AND ( ( @ProductId IS NULL )
OR ( a.ProductId = @ProductId ) )
2.) Para verificar que el Stored Procedure funciona, ejecute:
EXEC Getorder 1
3.) Cree un nuevo site en Visual Studio .net
3.1) File New Site
3.2) Selecciones ASP. Net Empty web Site
4.) Ahora vamos a crear un EDM
4.1) Clic derecho en su Solution explorer:
4.2) Seleccione ADO.Net Entity Data Model y coloque el nombre de: Northwind.edmx
5.) Seleccione "Generate from database" y seleccione Next
6.) Seleccione Yes, Include the sensitive data in the connection string, esto con la idea de almacenar la clave en el web config.
7.) En Store Procedures selecciones "GetOrder"
8.) Click derecho en el EDM, y seleccionar Add/Function Import
9.) En la ventana de exportación, vamos a crear un método para llamar al store procedure
9.1) Nombre de la función: LlenarOrdenes
9.2) GetOrder
9.3) Presione clic en "Get Column Information"
9.4) Presione clic en "Create New Complex Type"
Si la botón de "OK" no esta habilitado es por que algún paso anterior falto.
Vamos a Crear un pagina que utilice su procedimiento almacenado
10.) Crear un pagina nueva, para esto precione clic derecho en el proyecto y seleccione new Item.
10.1) Seleccione web Form con el nombre Default.aspx
11.) Abra la pagina Default.aspx que acaba de crear y agregue un gridview
11.1) Arraste GridView del toolbox
12.) Vamos agregar código para llenar el gridview, clic derecho en la pagina y luego "view Code"
13.) Agregue el siguiente código para llenar la pantalla:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { NorthwindModel.NorthwindEntities db = new NorthwindModel.NorthwindEntities();
var query = db.LlenarOrdenes(null);
GridView1.DataSource = query;
GridView1.DataBind();
}
}
Precione F5 para ejecutar el proyecto, el resultado será el siguiente:
Vamos a reutilizar el Procedimiento almacenado.
14.) Agregaremos una columna al grid para poder seleccionar un elemento.
14.1) Seleccione el GridView
14.2) Presione la fleche en la esquina superior derecha
14.3) Seleccione Add new Column, llenela con la siguiente información
15.) Llene la ventana con la siguiente información.
16.) Vamos agregar código al botón de ver ordenes, Doble click sobre el GridView, para crear el evento SelectedIndexChanged , agregue el siguiente codigo.
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow row; row = GridView1.SelectedRow; Session["productid"] = row.Cells[1].Text; Response.Redirect("Orders.aspx"); }
17.)Agregue un Nuevo WebForm a su proyecto, con el nombre Orders.aspx
17.1) clic derecho add new Item..
18.) En la pagina orders, agregue un GridView
19.) luego Click derecho, View Code, En el code behind de la pagina Orders, en el evento Load agregue el siguiente codigo:
protected void Page_Load(object sender, EventArgs e) { NorthwindModel.NorthwindEntities db = new NorthwindModel.NorthwindEntities(); int codigo = Convert.ToInt32(Session["productid"]); var query = db.LlenarOrdenes(codigo); GridView1.DataSource = query; GridView1.DataBind(); }
viernes, 4 de mayo de 2012
Reporting Service con Mysql
Ejemplo de Reporting service con Mysql.
Necesitan Reporting Builder, lo pueden descargar de:
http://www.microsoft.com/en-us/download/details.aspx?id=6116
1.) Entrar a reporing Builder
2.) Crear un data source, clic derecho sobre la carpeta data source y luego add Data Soucer...
2.1) Llenar con la siguiente información.
Nota:
Usamos Odbc para conectarnos, podemos usar el connection string:
DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=sakila; USER=root; PASSWORD=P@ssw0rd; OPTION=3'
3.) Crear un data set, clic derecho en la carpeta de dataset y luego add dataset..
3.1) Llenar la pantalla con la siguiente información:
3.) Ahora Agregaremos una tabla.
3.1) clic derecho en el reporte, insert y table.
4.) Luego arrastramos los campos necesario a la tabla.
5.) Por ultimo clic en botón run y tendremos nuestro reporte.
Agregando Parámetros al Reporte:
Para agregar parámetros, presione clic en el boton Design.
6.) Editaremos el dataset, Clic derecho sobre el dataSet y luego Query...
7.) Ahora vamos a cambiar en query en la pantalla de data set, Agregaremos un where.
8.) Ahora Ejecutaremos el reporte y le solicitara un parametro el cual filtrara en la pantalla los Valores, clic en ejecutar para verlo en acción.
Maquillando Parámetros.
9.) En modo de Diseño, clic en la carpeta de Parameters, luego clic derecho a parameters1 y clic en parameter properties.
10.) Cambiaremos el texto que mostrara el reporte
11.) Agregaremos otro dataset para mostrar la información del dataset.
11.1) clic derecho en la carpeta de dataset y luego add dataset..
select a.store_id,concat(b.first_name, ' ', b.last_name) Nombre
from store a, staff b
where a.manager_staff_id = b.staff_id
12.) Por ultimo, clic derecho sobre el parámetro y luego editar, en Valores a disponibles complete la información como esta en pantalla.
Resultado final
Ver
Necesitan Reporting Builder, lo pueden descargar de:
http://www.microsoft.com/en-us/download/details.aspx?id=6116
1.) Entrar a reporing Builder
2.) Crear un data source, clic derecho sobre la carpeta data source y luego add Data Soucer...
2.1) Llenar con la siguiente información.
Nota:
Usamos Odbc para conectarnos, podemos usar el connection string:
DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=sakila; USER=root; PASSWORD=P@ssw0rd; OPTION=3'
3.) Crear un data set, clic derecho en la carpeta de dataset y luego add dataset..
3.1) Llenar la pantalla con la siguiente información:
3.) Ahora Agregaremos una tabla.
3.1) clic derecho en el reporte, insert y table.
4.) Luego arrastramos los campos necesario a la tabla.
5.) Por ultimo clic en botón run y tendremos nuestro reporte.
Agregando Parámetros al Reporte:
Para agregar parámetros, presione clic en el boton Design.
6.) Editaremos el dataset, Clic derecho sobre el dataSet y luego Query...
7.) Ahora vamos a cambiar en query en la pantalla de data set, Agregaremos un where.
8.) Ahora Ejecutaremos el reporte y le solicitara un parametro el cual filtrara en la pantalla los Valores, clic en ejecutar para verlo en acción.
Maquillando Parámetros.
9.) En modo de Diseño, clic en la carpeta de Parameters, luego clic derecho a parameters1 y clic en parameter properties.
10.) Cambiaremos el texto que mostrara el reporte
11.) Agregaremos otro dataset para mostrar la información del dataset.
11.1) clic derecho en la carpeta de dataset y luego add dataset..
select a.store_id,concat(b.first_name, ' ', b.last_name) Nombre
from store a, staff b
where a.manager_staff_id = b.staff_id
12.) Por ultimo, clic derecho sobre el parámetro y luego editar, en Valores a disponibles complete la información como esta en pantalla.
Resultado final
Suscribirse a:
Entradas (Atom)