Wednesday, September 30, 2009

C# Conectar a BD

La forma de conectar a datos en ADO.NET a variado de cómo la realizábamos en ado. Existe nuevo modelo de objetos y nuevos métodos para conectar con las bases de datos. En este artículo explicaré las formas más comunes de conectar a SQL Server u otro origen de datos a través de SqlClient, OleDb y ODBC.

ADO.NET ofrece varios espacios de nombres para acceder a datos, entre ellos:



Antes de poder utilizar cualquiera de estos espacios de nombres debemos incluirlos en nuestro proyecto de la siguiente forma:

En C#
using System.Data.SqlCliente;

En VB.NET
imports System.Data.SqlClient

Los objetos Connection, Command, DataReader y DataAdapter son los elementos fundamentales de ADO.NET:

El objeto Connection.

La conexión a SQl Server la realizaremos con el objeto SqlConnection del espacio de nombre System.Data.SqlClient. .NET framework proporciona varios objetos Connection, uno para cada tipo de espacio de nombres. De este modo para OleDb existe un objeto OleDbConnection del espacio de nombre System.Data.OleDb y para ODBC existe un OdbcConnection del espacio de nombres System.Data.Odbc si utilizamos .NET Framework 1.1 o del espacio de nombres Microsoft.Data.Odbc si utilizamos la versión 1.0.

Ejemplo de conexión (todos los ejemplos estan realizados en c#):

SqlConnection SqlConn =
new SqlConnection("server=localhost;uid=sa;pwd=;database=PUBS");
SqlConn.Open();

Using System.Data.OleDb;
OleDbConnection OledbConn =
new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;UID=sa;PWD=;Initial Catalog=pubs");
OledbConn.Open();

Using System.Data.Odbc;
OdbcConnection OdbcConn = new OdbcConnection("DSN=Pubs;UID=sa;PWD=;");
OdbcConn.Open();

Una vez terminada la conexión es recomendable cerrar las conexiones con el metodo Close:

SqlConn.Close();
//
OledbConn.Close();
//
OdbcConn.Close();




El objeto Command.

El siguiente objeto que utilizaremos una vez realizada la conexión es el objeto SqlCommand que igual que pasaba con el objeto connection .NET framework proporciona varios objetos Command dependiendo del proveedor.
El objeto Command tiene varios métodos Execute para ejecutar comandos a un origen de datos:



Además de estos comandos comunes a todos los proeedores, SqlClient incorpora ExecuteXmlReader para ser utilizado con un XmlReader y una consulta SQL que devuelva XML (Select …… FOR XML).

Ejemplos de Command.

Using System.Data.SqlClient;
SqlConnection SqlConn =
new SqlConnection("server=localhost;uid=sa;pwd=;database=PUBS");
SqlCommand SqlCom =
new SqlCommand("insert into jobs(job_desc, min_lvl, max_lvl) values('Webmaster', '25', '100')", SqlConn);

SqlConn.Open();
SqlCom.ExecuteNonQuery ();
SqlConn.Close();

Using System.Data.OleDb;
OleDbConnection OledbConn =
new OleDbConnection ("server=localhost;uid=sa;pwd=;database=PUBS");
OleDbCommand OledbCom =
new OleDbCommand ("insert into jobs(job_desc, min_lvl, max_lvl) values('Webmaster', '25', '100')", OledbConn);

OledbConn.Open();
OledbCom.ExecuteNonQuery ();
OledbConn.Close();

El ejemplo para ODBC sería igual cambiando los objetos OleDb por ODBC.

El objeto DataReader

Este objeto va a permitirnos extraer un conjunto de resultados y listarlos (forward-only y read-only). Los resultados son devueltos al ejecutar una consulta y accesibles mediante el método read del objeto DataReader. Para utilizar este objeto debemos llamarlo desde el metodo ExecuteReader del objeto Command de la siguiente forma:

SqlDataReader mReader = myCommand.ExecuteReader();

Mediante el método read obtenemos una fila de la consulta y para obtener las columnas de cada fila podemos hacerlo mediante métodos de tipos nativos que incorpora el DataReader (GetString, GetInt32, etc…), o utilizando el método GetValue(i). También podemos obtener el nombre de los campos y no solo su valor, con el método GetName(i) obtenemos dicho nombre, siendo i el número de columna que quermos mostrar.

Una vez hemos acabado de trabajar con el DataReader tenemos que cerrarlo con el método Close().

Ejemplo DataReader:

SqlConnection SqlConn = new SqlConnection("server=localhost;uid=sa;pwd=;database=PUBS");
SqlCommand SqlCom = new SqlCommand("Select * from authors", SqlConn);
SqlConn.Open();
SqlDataReader myReader = SqlCom.ExecuteReader();

while (myReader.Read()){
Console.WriteLine (myReader.GetValue(0));
}

Console.WriteLine("Pulsar una tecla para cerrar la conexión ...");
Console.ReadLine();

myReader.Close();
SqlConn.Close();

El mismo ejemplo utilizando ODBC.

OdbcConnection OdbcConn = new OdbcConnection("DSN=Pubs;UID=sa;PWD=;");
OdbcCommand OdbcCom = new OdbcCommand("Select * from authors", OdbcConn);
OdbcConn.Open();
OdbcDataReader myReader = OdbcCom.ExecuteReader();

while (myReader.Read()){
Console.WriteLine (myReader.GetValue(0));
}

Console.WriteLine("Pulsar una tecla para cerrar la conexión ...");
Console.ReadLine();

myReader.Close();
OdbcConn.Close();

Un DataReader también lo podemos asignar a un método DataSource de un control web form de la siguiente forma:

DataGrid1.DataSource = oCommand.ExecuteReader();

En este caso lo enlazaríamos a un DataGrid.


Referencia
http://www.netveloper.com/contenido2.aspx?IDC=83_0

:: Clases del Namesapce de System.Data.SqlCliente
:: Clases del Namesapce de System.Data.OleDb
:: Download del ODBC .NET Data Provider para .Net Framework 1.0
:: Clases del Namesapce de System.Data.Odbc para .NET Framework 1.1

Friday, September 25, 2009

Web Audio to Mp3

Grabar audio del Speaker hacia mp3, recordar activar Input Audio a Mezclador.
http://www.frontierdg.com/PCWIN%20Speaker%20Record.aspx

Thursday, September 24, 2009

Puertos

USB
http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx


Open and read COM port data using System.IO.Ports in C# and VB .NET 2.0
http://www.devasp.net/net/articles/display/727.html

Threading
http://bytes.com/topic/c-sharp/answers/248913-threading-system-io-ports

Serial communications
http://www.codeproject.com/KB/cs/serialcommunication.aspx

http://social.msdn.microsoft.com/forums/es-ES/vcses/thread/b95676f5-e07f-478b-b3b1-f0abb0d9e94b/

Puerto Paralelo
http://es.wikipedia.org/wiki/IEEE_1284

http://msmvps.com/blogs/peplluis/archive/2009/01/22/acceso-al-puerto-paralelo-lpt-algo-m-225-s-que-encender-un-led-o-imprimir-un-doc.aspx

http://msmvps.com/blogs/peplluis/archive/2008/09/19/leer-los-ceros-y-unos-de-un-micro-controlador.aspx

http://msmvps.com/blogs/peplluis/archive/2009/01/22/acceso-al-puerto-paralelo-lpt-algo-m-225-s-que-encender-un-led-o-imprimir-un-doc.aspx

Puerto Mapa
http://www.doc.ic.ac.uk/~ih/doc/par/

dll
http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html

a Excel

http://poi.apache.org/

http://www.leniel.net/2009/07/creating-excel-spreadsheets-xls-xlsx-c.html

http://npoi.codeplex.com/

http://www.codeplex.com/Wiki/View.aspx?ProjectName=ExcelPackage

http://www.aaron-powell.com/blog/september-2008/linq-to-xml-to-excel.aspx

http://www.leniel.net/2009/07/creating-excel-spreadsheets-xls-xlsx-c.html

http://www.carlosag.net/Tools/ExcelXmlWriter/

Tuesday, September 22, 2009

OpenCV Library en .NET

Existen alternativas como opencvdotnet, SharperCV, EmguCV, One on Code Project.
particularmente hize ejecutar los del code project, pero EmguCV para ser otra mucho mejor ya que cuenta con wrappers para Mono.

Referencias:

http://www.emgu.com/wiki/index.php/Download_And_Installation

Documentación
http://opencv.willowgarage.com/documentation/index.html

Ultima actualización Set-2009 (Sale caliente)
sourceforge.net/projects/opencvlibrary/

Perú: Denominaciones empresariales

En Resumen
Microempresa
1. El propietario o propietarios de la empresa laboran en la misma.
2. El número total de trabajadores no excede de 10 personas.
3. El valor total anual de ventas no excede de 12 UIT*.
* (1 UIT = S/. 2,800)

Régimen especial del impuesto a la renta

Es un régimen tributario dirigido a personas naturales y jurídicas, sucesiones indivisas y sociedades conyugales domiciliadas en el país que obtengan rentas de tercera categoría provenientes de:

1. Actividades de comercio y/o industria, entendiéndose por tales a la venta de los bienes que adquieran, produzcan o manufacturen, así como la de aquellos recursos naturales que extraigan, incluidos la cría y el cultivo.

2. Actividades de servicios, entendiéndose por tales a cualquier otra actividad no señalada expresamente en el inciso anterior.



Referencias:

Búsqueda de razon social en Registros publicos
http://www.sunarp.gob.pe/RelacionS.asp

Denomiaciones y leyes de constitución
http://www.congreso.gob.pe/comisiones/1999/microempresa/publica/bccup.htm#scrl

Régimen tributario
http://www.invesca.com/regimen-tributario-para-la-micro-y-pequena-empresa/

Leyes mencionadas(detalle)
http://www.informaccion.com/derechoregistral/

Plantilla declaración jurada
http://www.mypeperu.gob.pe/contenidos/prodame/EmpBien.htm

http://www.microjusticiaperu.org/site/constitucion-microempresas
http://www.deperu.com/abc/articulo.php?con=256
http://www.peruabogado.com/co_em.htm
http://www.abogadosperu.com/index.php?cont=6&cmbconsulta=19
http://www.perucontable.com/modules/newbb/viewtopic.php?topic_id=17972&forum=8&post_id=57250

Listado de Ficheros de un Directorio

CMS (Admisitradores de contenido)

Otros CMS aparte de joomla.

Refernecias:
http://www.osalt.com/es/joomla

Windows Herramientas

Herramientas Microsoft

Process Explorer, Find out what files, registry keys and other objects processes have open, which DLLs they have loaded, and more. This uniquely powerful utility will even show you who owns each process.
Process Monitor, Monitor file system, Registry, process, thread and DLL activity in real-time.
PsExec,
Execute processes remotely.
PsGetSid
, Displays the SID of a computer or a user.
PsKill,
Terminate local or remote processes.
PsList, Show information about processes and threads.

http://technet.microsoft.com/en-us/sysinternals/default.aspx

Crear discos arrancables de Windows
http://www.nu2.nu/pebuilder/

Análisis de codigo binario

Version 2.0 - Beta 2 (updated 28-Mar-2009)
OllyDbg is a 32-bit assembler level analysing debugger for Microsoft® Windows®. Emphasis on binary code analysis

http://www.ollydbg.de/

Manual Completo
http://www.ricardonarvaja.info/

Tuesday, September 15, 2009

Herramientas

KompoZer is a complete web authoring system that combines web file management and easy-to-use WYSIWYG web page editing.
http://kompozer.net/

Ranking Distros Linux

Ranking de distribuciones Linux.
http://distrowatch.com/stats.php?section=popularity

Thursday, September 10, 2009

C# Expresiones Regulares

Teoria elemental, con busqueda de tags HTML para obtener tags, nombre de atributos con sus valores y contenido del tag.

http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular

http://www.subgurim.net/Articulos/asp-net-general/14/expresiones-regulares-introduccion.aspx

http://www.subgurim.net/Articulos/asp-net-general/20/expresiones-regulares-como-trabajarlas-con-asp-net.aspx

http://www.elguille.info/regexp/regExp01.aspx

Recursos:

http://sourceforge.net/projects/regulator/

Tuesday, September 08, 2009

dll en Visual Basic

http://www.elguille.info/vb/avanzado/crear_dll_windows_con_vb6_explicado.htm
http://www.elguruprogramador.com.ar/articulos/crear-una-dll-con-visual-basic.htm
http://www.elguille.info/vb/cursos_vb/BASICO/basico47.htm

Sunday, September 06, 2009

Matriz: Servidores de Aplicaciones

La matriz es de referencia, puesto q tiene la información desactualizada.

Encuaesta de servidores web mas usados, includo servidor de aplicaciones
http://www.javahispano.org/polls.results.action?option=98

Comparativa de servidores
http://www.javahispano.org/contenidos/es/comparativa_de_servidores_jee_5/

Friday, September 04, 2009

Linux Shell Commands

Si script.sh cambia de ruta y queremos q cambie a esa ruta, habra q anteponer el comando source

#source ./script.sh

Ocultar la evidencia
#alias cmdNuevo="source ./script.sh"

O realizar lo siuiente en el script tambien ayuda
#!/your/shell
cd /home/username
pwd
exit 0


Referencias:
Linux Shell y Ejemplos http://www.freeos.com/guides/lsst/

Thursday, September 03, 2009

C# enum override toString

Referencias:

http://blogs.msdn.com/abhinaba/archive/2005/10/20/483000.aspx

Reloj Linux

Fecha y Hora del sistema

#date
#date -s 'yyyy-mm-dd hh:mm:ss'

Fecha y Hora del hardware
#hwclock
#hwclock –-systohc

Sincronizar con un servidor horario (Solo fecha y hora de sistema)
#ntpdate hora.oxixares.com

Referencias:
1. Explicación completa para distribuciones Red Hat
http://roberto-angelus.blogspot.com/2009/04/actualizar-hora-con-ntpd.html

2. http://www.ntp.org/

3. cron
http://www.linux-os.com.ar/linuxos/sincronizar-reloj-automaticamente/

Wednesday, September 02, 2009

mySQL Comandos Fechas

Trabajo con fechas:

mysql> SELECT DATE_ADD('2009-03-20', INTERVAL 31 DAY);
mysql> SELECT DATE_ADD('2009-03-20', INTERVAL 1 MONTH);
mysql> SELECT ADDDATE(CURDATE(), INTERVAL 31 DAY);
mysql> SELECT SUBDATE(CURDATE(), INTERVAL 2 MONTH);

La palabra clave INTERVAL y el especificador type no son sensibles a mayúsculas.

La siguiente tabla muestra cómo se relacionan los argumentos type y expr :


type Value Expected expr Format
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
YEAR YEARS
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS-MONTHS'


Referencias:
http://dev.mysql.com/doc/refman/5.0/es/date-and-time-functions.html

Struts v2 HelloWorld en NetBeans v6

Video tutorial de como crear nuestra primera aplicación con Struts v2, basado en las referencias indicadas debajo.

Links:

Sitio oficial: http://struts.apache.org/2.x/index.html
Tutoriales oficiales: http://www.vaannila.com/struts-2/struts-2-tutorial/struts-2-tutorial.html

Tuesday, September 01, 2009

Linux: Montar imágenes ISO/NRG/IMG/BIN/CUE/MDF/MDS

Montar una imagen ISO:

#mount -t iso9660 -o loop archivo.iso /punto_anclaje

Montar imágenes BIN y CUE:

convertir a imagen ISO con bchunk.

#apt-get install bchunk (Si no tienes instalado bchunk)

una vez disponible, ejecutar:

#bchunk archivo.bin archivo.cue nuevoarchivo.iso

convierte la imagen .bin con su archivo .cue correspondiente a un solo archivo .iso:

Montar imágenes NRG (imágenes de Nero Burning Rom):

Para poder montar estas imágenes tendremos que convertirlas a ISO. Para ello usaremos el programa nrg2iso, para instalarlo haremos:

#apt-get install nrg2iso

#nrg2iso archivo.nrg nuevoarchivo.iso

Montar imágenes MDF y MDS

El programa tiene el original nombre de mdf2iso. Para instalarlo:

#apt-get install mdf2iso

#mdf2iso archivo.mdf nuevaimagen.iso

Montar imágenes IMG

Usaremos el programa CCD2ISO. Este programa no lo he podido descargar desde los repositorios oficiales de Ubuntu pero de todos modos no estaría de más que intentes instalarlo por apt-get así:

#apt-get install ccd2iso

descargar el archivo que sera algo así como “ccd2iso-0.2.tar.gz”

descomprimir

#tar -xzvf ccd2iso-0.2.tar.gz

#cd ccd2iso , ingresmos a la carpeta

#./configure

#make

#make install

#ccd2iso imagen.img imagen.iso , para convertir

Y para desmontar lo que ya monte?

sudo umount /media/imagen

Paquetes necesarios:

bchunk desde: http://he.fi/bchunk/
nrg2iso desde: http://gregory.kokanosky.free.fr/v4/linux/nrg2iso.en.html
mdf2iso desde: http://developer.berlios.de/projects/mdf2iso
ccd2iso desde: http://sourceforge.net/projects/ccd2iso


CImg

CImg, libreria para procesamiento de imágenes.

Características:
1. Multiplataforma, Windows/Linux/Otros
2. Solo necesita incluir CImg.h
3. Integrable con otras librerias
4. Contiene filtros/algortmos standard de procesamiento de imágenes

Compilación bajo Linux(Fedora)
Paso 1: Descargar
#wget http://sourceforge.net/projects/cimg/files/CImg/1.3.1/CImg-1.3.1.zip/download
Paso 2: Descomprimir
Paso 3: Compilar
#g++ CImg_Demo.cpp -o demo -lm -lpthread -lX11
Paso 4:Ejecutar
#./demo

Para compilar en otras plataformas y compiladores ver:
http://cimg.sourceforge.net/reference/group__cimg__overview.html

Manual completo
http://cimg.sourceforge.net/CImg_reference.pdf

PostgreSQL json fields

select name->'es_PE',* from product_template where name->>'es_PE' like '%MEGACI%'   References: [1] https:/...