Hacer copia local de una base existente
1 - Elegir la base
2 - Tasks... Backup
3- En BackupTo agregar el nombre del archivo de backup
4- Realizar el Backup
Para restaurar una base de datos de un backup
1- Pararse en las carpeta Database
2- Boton derecho... Restore Database
3- Especificarle el nombre de la base de datos
4- Poner From Device y elegir el archivo de backup
5- En la parte de options poner un path a los archivos que se generan, la base y el log
6- Presionar OK.
miércoles, 23 de septiembre de 2009
lunes, 14 de septiembre de 2009
Traducir de Visual Basic a C#
Si necesiamos traducir un codigo desde Visual Basic a C# (y viceversa) el siguiente recursos puede resultarnos de suma utilidad
http://www.carlosag.net/Tools/CodeTranslator/
http://www.carlosag.net/Tools/CodeTranslator/
martes, 11 de agosto de 2009
Creando scripts de una BD con SQLDMO
SQLDMO (SQL Distributed Management Objects) son un conjunto de objetos COM para administrar una base de datos SQL Server. Nos permiten llevar a cabo un conjunto de funcionalidades como las que generalmente hacemos desde el Management Studio. En particular veremos como generar los scripts de generacion de la base de datos.
Para poder utilizar esta tecnologia primero en un proyecto cualquiera debemos agregar una referencia a los objetos COM. Para ellos lo buscamos en la solapa COM que aparece en el dialogo al hacer click en la opcion "Add References" de la carpeta "References"

Luego podemos conectarnos contra un servidor de SQL server de la siguiente manera
Luego obtenemos una instancia de la base con la que nos queremos conectar
Estamos a un simple ForEach de listar las tablas de la base de datos
A cada tabla le podemos pedir el un script con el CREATE sql necesario para crear su estructura. Aqui agregaremos los script a un stringBuilder y luego los mostraremos en un RichTextBox
Por ultimo nos desconectamos del servidor
Para poder utilizar esta tecnologia primero en un proyecto cualquiera debemos agregar una referencia a los objetos COM. Para ellos lo buscamos en la solapa COM que aparece en el dialogo al hacer click en la opcion "Add References" de la carpeta "References"

Luego podemos conectarnos contra un servidor de SQL server de la siguiente manera
SQLDMO.SQLServer server = new SQLServer();
server.Connect("localhost\\sql2000","sa","sa");
Luego obtenemos una instancia de la base con la que nos queremos conectar
SQLDMO.Database database = (SQLDMO.Database)server.Databases.Item
("baseQueQuiero",null);
Estamos a un simple ForEach de listar las tablas de la base de datos
List<SQLDMO.Table> tablasPendienteProcesar = new List<SQLDMO.Table>();
foreach (Table tabla in database.Tables)
{
tablasPendienteProcesar.Add(tabla);
}
A cada tabla le podemos pedir el un script con el CREATE sql necesario para crear su estructura. Aqui agregaremos los script a un stringBuilder y luego los mostraremos en un RichTextBox
StringBuilder sb = new StringBuilder();
foreach (SQLDMO.Table tabla in tablasProcesadas)
{
sb.Append(tabla.Script(SQLDMO_SCRIPT_TYPE.SQLDMOScript_Default, null, null, SQLDMO_SCRIPT2_TYPE.SQLDMOScript2_Default));
}
this.richTextBox1.Text += sb.ToString();
Por ultimo nos desconectamos del servidor
server.DisConnect();
miércoles, 29 de julio de 2009
Bindear una propiedad/metodo del code behind desde el aspx
Para bindear por ejemplo un texto de un label con un metodo o propiedad del codebehind primero declararemos dicho metodo:
Luego en el aspx declaramos un control de la siguiente manera:
Luego debemos recordar ejecutar el metodo databind() de la pagina en el page_load
public partial class SamplePage : System.Web.UI.Page
{
public String getText()
{
return "hola";
}
}
Luego en el aspx declaramos un control de la siguiente manera:
<div>
<asp:Label ID="lbl" runat="server" Text="<%# this.getText() %>" />
</div>
Luego debemos recordar ejecutar el metodo databind() de la pagina en el page_load
protected void Page_Load(object sender, EventArgs e)
{
this.DataBind();
}
lunes, 11 de mayo de 2009
Testeo Automatico de Guis
Para hacer testeo automatico de GUIS el producto que mas me gusto hast ahora fue
este
este
viernes, 24 de abril de 2009
Exportar un query a XML en SQL Server
Supongamos que tenemos la tabla
Queremos hacer un select de todos los registros de la tabla y exportar el resultado de la consulta a XML
Las opciones son
1) Si queremos que exporte cada fila como un atributo ejecutamos
y nos quedaria por ejemplo..
2) Si queremos que nos exporte cada fila como un elemento de xml
y nos quedaria por ejemplo..
CREATE TABLE [dbo].[Permiso]
(
[IDRol] [int] NOT NULL,
[Permiso] [varchar](20),
)
Queremos hacer un select de todos los registros de la tabla y exportar el resultado de la consulta a XML
Las opciones son
1) Si queremos que exporte cada fila como un atributo ejecutamos
select * from Permiso FOR XML AUTO
y nos quedaria por ejemplo..
2) Si queremos que nos exporte cada fila como un elemento de xml
select * from Permiso FOR XML AUTO, ELEMENTS
y nos quedaria por ejemplo..
1
Planificar
2
Planificar
3
Planificar
martes, 21 de abril de 2009
Compartiendo un archivo entre dos proyectos
El escenario es el siguiente:
Hasta aqui todo bien, ahora quiero compartir un archivo entre ambos proyectos. Por ejemplo un archivo de scripts SQL o un archivo de configuracion
Una opcion que queremos evitar es duplicar el mismo archivo en ambos proyectos ya que al modificar uno tenemos que acordarnos de modificar el otro
Por lo tanto los pasos a seguir para evitar esto seria
Voila... ahora estamos compartiendo el mismo archivo entre dos proyectos
1) Tengo en visual studio una solucion "Solucion.sln"
2) Dentro de la solucion tengo dos proyectos
2.1) ProyectoA
2.2) ProyectoATests
3) El ProyectoATest tiene todos los unit test que se utilizan en el proyecto a
Hasta aqui todo bien, ahora quiero compartir un archivo entre ambos proyectos. Por ejemplo un archivo de scripts SQL o un archivo de configuracion
Una opcion que queremos evitar es duplicar el mismo archivo en ambos proyectos ya que al modificar uno tenemos que acordarnos de modificar el otro
Por lo tanto los pasos a seguir para evitar esto seria
1) Agregar el archivo al ProyectoA, supongamos que se llama scripts.sql
2) Ir al ProyectoATest
2.1) Poner Add..Existing Item..
2.2) Seleccionar el archivo scripts.sql del otro proyecto pero..
2.3) Antes de darle aceptar fijarse que el boton add tiene una flecha que apunta para bajo
2.4) Hacer click en esa flecha y presionar "Add as a link"
Voila... ahora estamos compartiendo el mismo archivo entre dos proyectos
miércoles, 18 de marzo de 2009
Agrupar en un asp:gridview
Para agrupar filas en un asp:gridview tenemos que programar el evento RowDataBound de la grilla y crear las rows agrupadora dinamicas en ese evento. Por ejemplo supongamos que agrupamos por la propiedad Proyecto de un objeto instancia de la clase Accion
private string campoAgrupador = string.Empty;
private int iColumnasAgregadas = 0;
protected void grdTareas_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem != null)
{
Accion accionActual = e.Row.DataItem as Accion;
if (accionActual.Proyecto != campoAgrupador)
{
GridViewRow rowAgrupadora = new GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal);
TableCell cell = new TableCell();
Label l = new Label();
l.Text = "Agrupo por "+accionActual.Proyecto;
cell.Controls.Add(l);
cell.ColumnSpan = 10;
rowAgrupadora.Cells.Add(new TableCell());
rowAgrupadora.Cells.Add(cell);
((Table)e.Row.Parent).Rows.AddAt(e.Row.RowIndex +1 +iColumnasAgregadas, rowAgrupadora);
campoAgrupador = accionActual.Proyecto;
iColumnasAgregadas++;
}
}
}
miércoles, 18 de febrero de 2009
Campos Auto Incrementales en SQL server
Si en SQL Server usamos campos auto incrementales enteros, luego de hacer el insert es probable que deseemos saber el valor de la clave generada por SQL Server.
Para ello luego de hacer el insert podemos ejecutar los siguientes SQL contra la base
Opcion 1:
Opcion 2:
En internet se recomienda usar la opcion 2, aunque a mi no me funciono y opté por la opcion 1.
Para ello luego de hacer el insert podemos ejecutar los siguientes SQL contra la base
Opcion 1:
SELECT @@Identity
Opcion 2:
SELECT SCOPE_IDENTITY()
En internet se recomienda usar la opcion 2, aunque a mi no me funciono y opté por la opcion 1.
Suscribirse a:
Entradas (Atom)