Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - [D4N93R]

#1111
Cita de: Debci en 17 Julio 2010, 11:50 AM
Sin ganas alguna de abrir polemica, creo que en Java es mucho mas sencillo y igualmente completo que C

Saludos

Si en lenguajes administrados es mucho más fácil, además de tener un poco más de clases y eso para trabajar con ellas, pero eso depende como dije en un post en la página 1, del tipo de aplicación que necesite.
#1112
Sí, has un Store Procedure y lo ejecutas con SqlCommand, en el command type le pones StoredProcedure.

Saludos
#1113
Foro Libre / Re: Sonido solo para jovenes
23 Julio 2010, 19:04 PM
Yo lo escucho! que bueno! y eso que he estado expuesto por mucho tiempo a sonidos con volúmenes altos..
#1114
.NET (C#, VB.NET, ASP) / Re: Validaciones
23 Julio 2010, 18:57 PM
Código (csharp) [Seleccionar]


private void bindingSource1_AddingNew(object sender, AddingNewEventArgs e)
  {
          //en vez de bindingsource1 pones el nombre de tu bindingsource, es un control que esta abajo del formulario
        e.NewObject = ((System.Data.DataView)(bindingSource1.List)).AddNew();
        ((System.Data.DataRowView)(e.NewObject))["Columna1"] = "123"; // aki pones tu contador
        //reemplaza "Columna1" con el nombre de la columna del donde va el contador, el ID ese.
  }



A ver si así está mejor.
#1115
Bases de Datos / Re: Ayuda con sentencia sql!!
23 Julio 2010, 18:28 PM
Pues por lo que veo está bien.. Como dice Nov, quitale el * que eso no es comodín.. el comodín es %.
#1116
CLR Stored Procedures

El CLR está integrado a SqlServer, y gracias a eso podemos crear objetos de base de datos usando cualquier lenguaje de .Net como C#, VB.Net, F# entre otros. Entre las mejores prácticas de uso en para acciones que no conlleven acceso a datos, como string parsing, comunicación TCP/IP, Webservices, leer o escribir archivos, etc, es recomendable utilizar objetos CLR.


Crear el Proyecto
Ahora veremos como crear un proyecto sql server desde visual studio:

1.- Hacemos click en New Project o Nuevo Proyecto, y selecionamos DataBase > Sql Server > Visual C# SQL CLR Database Proyect. Le damos un nombre al proyecto y aceptamos.
2.- Se nos abre una ventana para configurar la conexión a la base de datos, si no aparece o la cerraron, pueden sacarla de nuevo en las propiedades del proyecto y luego en la pestaña Database.
3.- Seguimos los pasos del asistente y llenamos los datos de conexión en la ventana que nos apare y hacemos click en OK, con ésto enlazamos el proyecto con la base de datos.
4.- Por último, de hacemos click derecho en el Proyecto > Añadir > Procedimiento Almacenado (Stored Procedure), Le damos un nombre y Aceptar.



Con eso tenemos la clase lista para desarrollar los Stored Procedures que queramos.


DEMO:

Le damos doble click al archivo de clase que creamos y vemos que está de esta manera:

Código (csharp) [Seleccionar]

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;


public partial class StoredProcedures
{
   [Microsoft.SqlServer.Server.SqlProcedure]
   public static void ProcedureDemo()
   {
       // Put your code here
   }
};


En esa clase van a ir todos los Stored procedures que querramos crear, puede ir uno por clase, o una clase con varios métodos, en donde cada método es un SP.

Supongamos que necesito hacer un SP que me liste los archivos de determinado directorio del servidor y los pueda filtrar. La manera correcta y más fácil de hacer esto es con un CLR SP, ya que podemos usar las clases que nos da .Net.

El Stored Procedure quedaría de esta manera:

Código (csharp) [Seleccionar]
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.IO;


public partial class StoredProcedures
{
   //este es el atributo que marca el método como SP, los parámetros del método
   //serán los parámetros del SP, Noten que el valor de retorno es VOID.
   [Microsoft.SqlServer.Server.SqlProcedure]
   public static void ProcedureDemo(string path, string filter)
   {
       // Crea el record y especifica la metadata para las columnas
       SqlDataRecord record = new SqlDataRecord(
           new SqlMetaData("FileName", SqlDbType.NVarChar, 500),
           new SqlMetaData("Size", SqlDbType.Int));


       //SqlContext es nuestra vía de comunicación con Sql Server
       //Si quieren validar si el ensamblado está corriendo en Sql Server
       // Y existe una conexión disponible pueden validarlo con la propiedad
       // IsAvailable de SqlContext que devuelve true o false dependiendo del caso.
 
       // Marca el inicio de la incorporación de registros
       SqlContext.Pipe.SendResultsStart(record);

       DirectoryInfo dInfo = new DirectoryInfo(path);
       foreach (FileInfo file in dInfo.GetFiles(filter))
       {
           //Le damos valor a las columnas
           record.SetString(0, file.FullName);
           // y enviamos el registro
           SqlContext.Pipe.SendResultsRow(record);
       }

       // Marca el fin y envia los resultados
       SqlContext.Pipe.SendResultsEnd();
   }
};


Cuando ya terminemos el SP, Simplemente click derecho sobre el proyecto y click en Deploy y se va directo a Sql Server y se crea el SP donde se podrá usar sin problema alguno.  

Otro paso importante es habilitar el CLR dentro de Sql Server, lo podemos hacer de la siguiente manera:

Código (sql) [Seleccionar]
sp_configure 'clr enabled', 1;
RECONFIGURE;
GO


Aunque hay casos en donde el assembly requiere privilegios elevados, cuando éste sea el caso necesitan marcar el assembly como UNSAFE, es decir sin restricciones. Click derecho en el proyecto > Propiedades > En la pestaña Database seleccionamos el Permission Level como Unsafe.

Y luego pueden ejecutar el siguiente query, el cual debería habilitar la ejecución de Ensamblados UNSAFE.

Código (sql) [Seleccionar]

ALTER DATABASE TESTING

SET TRUSTWORTHY ON


Resultado



Espero les sea de ayuda,

Un saludo!
#1117
Cita de: awesome13 en 22 Julio 2010, 10:09 AM
Bueno pues tengo el nuevo messenger y decir, que va un poco como el culo, supongo que será porque es la beta que sino... no me deja ni cambiar el nick, no sale esa opcion  :laugh:

Os dejo una captura de pantalla para que veais el ''futuro'' aunque seguro que mas de uno de aqui lo ha visto, y si sabe responderme al la duda de arriba mejor que mejor!!!

http://img517.imageshack.us/f/mese.jpg/

Saludos!

Hay un botón en el lado superior derecho que te permite cambiar el layout y solo colocar los usuarios conectados, además puedes meter los contactos del facebook ahí. y ahora con Windows Live cada vez que escribes un comentario en facebook te sale como mensaje para mostrar en el messenger.

Saludos,

PD yo lo desinstalé porque no encontré la forma de abrir varias cuentas a la vez, de resto me gustó un montón y más aún el resto de aplicaciones Live que viene con el messenger.
#1118
.NET (C#, VB.NET, ASP) / Re: Validaciones
23 Julio 2010, 15:11 PM
Pero hazlo como yo te dije, usando el AddingNewEventArgs... No colocando valor a la caja de texto.
#1119
Si el archivo corre en una aplicación aparte puedes correrlo con la clase Process.
#1120
.NET (C#, VB.NET, ASP) / Re: Validaciones
23 Julio 2010, 00:18 AM
Bueno, primero, hubieses solucionado todo esto si usaras Identity en el Primary Key, pero bueno, veamos, debe haber un objeto llamado ALGOBindingSource que tiene un evento al cual te tienes que subscribir: AddingNew y colocar algo así:

Código (csharp) [Seleccionar]

  private void bindingSource1_AddingNew(object sender, AddingNewEventArgs e)
  {
        e.NewObject = ((System.Data.DataView)(bindingSource1.List)).AddNew();
        ((System.Data.DataRowView)(e.NewObject))["Columna1"] = "123";
  }


Ahí lo que haces es reemplazar los nombres de los objetos por los de tu formulario, y en vez de poner "123", pones tu contador.

Saludos