Tipos definidos por el Usuario para mapear objetos

31/08/2008 - 23:57 por Edwin | Informe spam
Hola. Estoy tratando de aprender a registrar (en SQLServer2005) un
ensamblado de .Net y crear UTDs que se correspondan con las clases del
ensamblado.

Hasta ahora, guiado por la ayuda, creé un proyecto en c#, de tipo
"Base de Datos", lo llame "DTSEmpleado". En el proyecto cree 2 clases:
"Empleado y "Direccion". Estas son las Clases:

using System;
using System.Collections.Generic;
using System.Text;
namespace DTSEmpleado
{
class Empleado
{
string _Apellido;
string _Nombres;
private Direccion _Direccion;

public string Apellido
{
get { return _Apellido; }
set { _Apellido = value; }
}

public String Nombres
{
get { return _Nombres; }
set { _Nombres = value; }
}

public Direccion Direccion
{
get { return _Direccion; }
set { _Direccion = value; }
}
public new string ToString() { return this.Apellido + ", " +
this.Nombres; }

}
}



using System;
using System.Collections.Generic;
using System.Text;

namespace DTSEmpleado
{
class Direccion
{
private string _Calle;
private string _Altura;

public string Calle
{
get { return _Calle; }
set { _Calle = value; }
}

public string Nro
{
get { return _Altura; }
set { _Altura = value; }
}

public new string ToString() { return this.Calle + " " + this.Nro; }
}
}

Luego desde el menú "Generar" elegi "Generar DTSEmpleado", me generó
bien. Despues elegí "ImplementarDTSEmpleado" y también finalizó bien.
Esto ultimo "ImplementarDTSEmpleado", según leí en la ayuda, registra
el ensamblado en la base de datos (que se llama Empresa). Y parece que
me registró bien porque en el arbol: Empresa-->Programmaility--

Assemblies se encuetra DTSEmpleado.



Despues ejecute, desde SQLServer2005, el siguiente script:

USE [Empresa]
GO
CREATE TYPE dbo.Empleado
EXTERNAL NAME DTSEmpleado.Empleado;

y me muestra el siguiente mensaje:
Msg 6556, Level 16, State 1, Line 8
Error de CREATE TYPE porque no se encontró el tipo 'Empleado' en el
ensamblado 'DTSEmpleado'.
Msg 6597, Level 16, State 1, Line 8
Error de CREATE TYPE.

¿Como se soluciona esto? ¿Algun link a un buen tutorial o ejemplos?

Gracias desde ya . Saludos
 

Leer las respuestas

#1 Daniel Ríos
01/09/2008 - 10:26 | Informe spam
Existen grupos de noticias a cerca de SQL Server.
Publícalo en alguno de esos grupos.

Daniel Ríos



"Edwin" escribió en el mensaje
news:
Hola. Estoy tratando de aprender a registrar (en SQLServer2005) un
ensamblado de .Net y crear UTDs que se correspondan con las clases del
ensamblado.

Hasta ahora, guiado por la ayuda, creé un proyecto en c#, de tipo
"Base de Datos", lo llame "DTSEmpleado". En el proyecto cree 2 clases:
"Empleado y "Direccion". Estas son las Clases:

using System;
using System.Collections.Generic;
using System.Text;
namespace DTSEmpleado
{
class Empleado
{
string _Apellido;
string _Nombres;
private Direccion _Direccion;

public string Apellido
{
get { return _Apellido; }
set { _Apellido = value; }
}

public String Nombres
{
get { return _Nombres; }
set { _Nombres = value; }
}

public Direccion Direccion
{
get { return _Direccion; }
set { _Direccion = value; }
}
public new string ToString() { return this.Apellido + ", " +
this.Nombres; }

}
}



using System;
using System.Collections.Generic;
using System.Text;

namespace DTSEmpleado
{
class Direccion
{
private string _Calle;
private string _Altura;

public string Calle
{
get { return _Calle; }
set { _Calle = value; }
}

public string Nro
{
get { return _Altura; }
set { _Altura = value; }
}

public new string ToString() { return this.Calle + " " + this.Nro; }
}
}

Luego desde el menú "Generar" elegi "Generar DTSEmpleado", me generó
bien. Despues elegí "ImplementarDTSEmpleado" y también finalizó bien.
Esto ultimo "ImplementarDTSEmpleado", según leí en la ayuda, registra
el ensamblado en la base de datos (que se llama Empresa). Y parece que
me registró bien porque en el arbol: Empresa-->Programmaility--
Assemblies se encuetra DTSEmpleado.



Despues ejecute, desde SQLServer2005, el siguiente script:

USE [Empresa]
GO
CREATE TYPE dbo.Empleado
EXTERNAL NAME DTSEmpleado.Empleado;

y me muestra el siguiente mensaje:
Msg 6556, Level 16, State 1, Line 8
Error de CREATE TYPE porque no se encontró el tipo 'Empleado' en el
ensamblado 'DTSEmpleado'.
Msg 6597, Level 16, State 1, Line 8
Error de CREATE TYPE.

¿Como se soluciona esto? ¿Algun link a un buen tutorial o ejemplos?

Gracias desde ya . Saludos

Preguntas similares