Resolviendo Error puerto 80 XAMPP

Hola lectores, ultimamente no me he conectado debido a la gran carga de trabajo, sin embargo hoy les traigo este articulo, se trata acerca del error que genera xampp del puerto 80 el cual no puede incializarse como lo muestra esta imagen:

error80

Bueno este error se genera cuando otra aplicación emplea dicho puerto y no nos permite iniciar nuestro servidor XAMPP, para esto tenemos que limpiar el pool de los puertos con el siguiente comando, ejecutando la consola de windows en modo administrador:

cmdNET

Donde detuvimos todos los servicios que dependen de peticiones HTTP.

Ejecutamos nuevamente el servicio de apache y oh! sorpresa nuevamente podemos correr la plataforma:

Apache

 

Query diferentes tablas y campos

Continuando con la temática del manejo de información, en este post vamos a analizar el uso del INNER JOIN y lo que podemos hacer con el empleo del mismo, cuantas veces no se presenta la situación donde queremos realizar una consulta a diferentes tablas y por ende campos de una base de datos.

Estructura del INNER JOIN:

SELECT    *  //Display de los campos
FROM      "tabla1" a //identificador tabla 1
INNER JOIN "tabla2" b //identificador tabla 2 
ON a."CampoComun" = b."CampoComun" //Asociacion de ID de ambas tablas
WHERE     a."CampoCondicion" = requerimiento //Condicion del query

 

Ahora vamos aterrizar la estructura en un sencillo ejemplo donde tenemos:

ejem

El cliente nos pide que el sistema muestre únicamente el nombre del empleado y la descripción de su puesto, para lo cual ejecutaremos el siguiente query:

USE DB_COMPANY
SELECT a.NombreEmpleado AS "Nombre del Empleado", b.Descripcion AS "Descripcion del puesto"
FROM "Empleados" a
INNER JOIN "Puestos" b
ON a."IdPuesto" = b."IdPuesto"
Where a."IdEmpleado" = 1

 

Nótese que dentro de la consulta empleamos el «AS» esto es para renombrar el campo mostrado.

El resultado:

Capture

Bien, esto es básicamente el manejo del INNER JOIN, sin embargo podemos hacer consultas que impliquen más tablas o campos:

SELECT  a."Campo1Tabla1", a." Campo2Tabla1", a." Campo3Tabla1", 
b." Campo1Tabla2", c." Campo1Tabla3", d." Campo1Tabla4" 
AS " Campo1Tabla4Renombre", d." Campo2Tabla4", d." Campo3Tabla4", 
d." Campo4Tabla4", a." Campo4Tabla1", a." Campo5Tabla1", 
a." Campo6Tabla1", a." Campo7Tabla1"
FROM      "Tabla1" a
INNER JOIN "Tabla2" b ON a."CampoComunTabla1" = b." CampoComunTabla2" 
INNER JOIN "Tabla3" c ON b." CampoComunTabla2" = c." CampoComunTabla3"
INNER JOIN "Tabla4" d ON a." CampoComunTabla1" = d." CampoComunTabla4"
WHERE     a."CampoTabla1"=requerimiento;

 

Espero este post sea de importancia al momento de realizar sus consultas SQL!

Calendario Ajax in TextBox

Ajax como es de saber proporciona elementos que nos ayudan a interactuar en este caso con controles de .NET, al ser una técnica propia de javascript presenta flexibilidad ante aplicaciones y requerimientos.

Durante el desarrollo de un proyecto empleando controles webform, me vi a la necesidad de implementar un calendario desplegable en un textbox para lo cual estuve investigando y documento la siguiente solución:

Primeramente dentro de nuestra aplicación con ayuda de la consola del instalador de paquetes NuGet descargaremos e instalaremos este elemento: Ajax Control Toolkit.

8

Administramos el paquete en nuestra solución:

9

Nótese que aún no se añaden los controles, para esto vamos a agregarlos directamente, tomando como referencia el path donde se encuentra la dll de los elementos:

Nuevamente dentro del toolbox damos clic derecho y navegamos a la ruta mostrada anteriormente (ruta de la dll) y agregamos los componentes:

Listo!, hasta aqui ya tenemos los elementos del Ajax toolkit en el toolbox de nuestro proyecto.

Ahora en el formulario donde vamos a desplegar el calendario añadimos del toolbox en la sección extensiones de ajax un control llamado script manager al cual le añadimos la siguiente propiedad:

 EnableScriptGlobalization = » true «

Es para configurar el calendario en español,  acto seguido añadimos el control llamado calendar extender donde también le asignamos una propiedad llamada TargetControlID:

<asp:CalendarExtender ID="CalendarExtender1" 
TargetControlID="NombreTextBox" 
runat="server"></asp:CalendarExtender>

 

Allí escribimos el nombre del textbox donde se va a desplegar el calendario, por último en la cabecera de nuestra página (.aspx) añadimos estas líneas como se visualiza en el ejemplo para informar al control el cambio de idioma.

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Tuarchivo.cs" Inherits="Tupagina.aspx" 
Culture="Auto" UICulture="Auto" %>

 

Resultado:

13

Nota: Si llegaras a presentar este error en tu aplicación:

«Only one instance of a ScriptManager can be added to the page.»

Es por que en tu página maestra ya existe un complemento de tipo ScriptManager activo, entonces no es necesario agregarlo solo en archivos empty o diferentes a control users.

Javascript en controles WebForms

En esta sencilla entrada vamos a ver de que manera implementar Javascript en controles webform, que básicamente se ejecutarán dentro de los eventos del postback en el lado del servidor.

Esta linea de código que a continuación se muestra se implementa dentro de un evento (por ejemplo en el clic de un botón).

ScriptManager.RegisterStartupScript(this.Page, this.Page.       GetType(),"succes_msg","alert('mensaje');",true);

 

ScriptManager administra la biblioteca y archivos de tipo script, AJAX de ASP.NET, el metodo RegisterStartupScript registra un bloque de script de inicio cada vez que se produce un postback.

6

Los parámetros se componen de:

la página que registra el script, el tipo de script, identificador del bloque de script, javascript a ejecutar, el tag booleano para incluir o no el bloque de script.

alerta de confirmación en javascript.

Podemos añadir este atributo al evento clic de un botón, que es donde se emplea más:

Button.Attributes.Add("onclick", "javascript: if ( confirm('¿Seguro que deseas realizar esta accion?')== false) return false;");

 

prácticamente lo único que hace el código es definir un atributo para un control (Button) con dos parámetros que son el nombre del atributo y el valor.

7

la condición if define si la acción es aceptada o rechazada para que no se realice ninguna acción.

Entiende tu vocación

Un saludo a todos los lectores, efectivamente en este post voy a tratar el tema de como entender tu vocación haciendo mención de algunas cuestiones lectivas, primeramente es importante saber que el área de tecnologías de la información abarca muchísimos campos de estudio como las variantes de la programación (móvil, desktop, web,  programación electrónica, etc..), redes e infraestructura, bases de datos, seguridad de la información, diseño, soporte técnico, inteligencia artificial entre otras más, donde actualmente unas áreas exigen mas demanda que otras, entonces la pregunta es, cual es la correcta para mi?

En mi opinion personal, primeramente antes de escoger cualquier campo hay que investigar al respecto sobre qué trata cada uno, ya que las universidades dentro de su plan de carrera se limitan bastante, es decir, si te muestran la variedad de conocimientos en TI pero aparte de que se limitan a una sola tecnología por especialidad en toda la carrera, se te exige de una manera de la cual te fueras dedicar a ello y eso no es lo más correcto ya que el grupo de estudiantes tiene cualidades y capacidades diferentes, como fue mi caso donde en toda la trayectoria de la universidad manejé Java por el plan de estudios y terminé dedicandome a .NET u otros compañeros que vivieron estresados por materias de programación y al final de cuentas lo suyo eran las redes e infraestructuras, entonces que hacer?, sencillo cumple con tus actividades universitarias e investiga aparte sobre el área que más te guste o te llame la atención, dedicale tiempo extra , un tiempo en el cual te enfoques en leer, conceptualizar, comprender de que manera funciona la tecnología que seleccionaste, hay muchisimos tutoriales y libros en internet que son de mucha ayuda, asi que pretextos por la origen de información no lo hay.

Esto te ayudará a enfrentar la realidad laboral de una manera más sencilla puesto que unicamente vas a trabajar y especializar sobre lo que tú ya optaste, es muy común que cuando se es joven, la ambición corroe por nuestras venas y decir «si yo se programar en todos los lenguajes, si también se acerca de redes y hasta puedo vulnerar las redes wi-fi» esto es común, sin embargo llega un momento en el cual sabes de todo y a la vez no sabes nada, es decir es bueno conocer los fundamentos de ciertas áreas pero no puedes ser un especialista en todo, es posible pero no es saludable, por eso es importante elegir tu campo laboral, dedicarle tiempo extra para investigar sobre ello, actualizarte y hasta certificarte en la misma, esto abre muchas puertas al conocimiento y oportunidades laborales.

La programacion es una actividad muy enriquecedora y complacentera pero también puede ser muy frustrante cuando no te resultan las cosas de la manera en que tu lo deseas, requiere de una practica asidua, comprensión técnica y lógica, constantes actualizaciones, muchos te dirán que el programar no siempre te trae los beneficios monetarios deseados y que es la albañileria del mundo tecnologico («palabras de lideres de proyecto y gerencia claro»), pero eso no tiene importancia cuando se entrega un proyecto sobre el cual has dedicado mucho tiempo, esfuerzo y ves que el fruto del equipo de trabajo, se ha estado implementando y es una solución para toda una organización, donde se ha cumplido el objetivo de automatizar un proceso.

Te invito a que fomentes la cultura de investigar, leer, de saber que es lo que realmente te llama la atención, si no es en esta área puede ser cualquier otra pero que de verdad hagas una actividad con la cual te sientas agusto y desarrolles pasión por la misma, no hay nada más reconfortante que trabajar teniendo en claro que es lo que tienes que hacer  y cómo lo vas hacer, con esto se entregan óptimos resultados y un alto rendimiento en tu trabajo de día a día.

 

Bienvenida..

Que tal, el propósito de este espacio es precisamente como lo dice el header line que tú como lector obtengas el conocimiento a través de mis experiencias personales y laborales que serán expresadas en los diferentes artículos, lejos de ser un blog formal y completamente técnico, este medio tiene como misión, el que tu puedas encontrar la solución a un problema por medio de alguna de las publicaciones, esta es una situación por la cual pasé y créeme que se siente de maravilla cuando al fin encuentras el remedio siendo que tenias días buscando, entonces no queda mas que agradecer y aprender.

Personalmente no me considero buen escritor ni redactor ya que imagino, se ocupa de experiencia, lectura y práctica para ello, sin embargo estoy seguro de que repasaré mucho recibiendo tus comentarios que serán de gran retroalimentación para mi, siéntete seguro de poder analizar, manifestar, mejorar e incluso corregir alguno de los post para eso es este sitio.

Lo que inicialmente comenzaría como un wiki personal y de notas de interés se transformó en un blog para compartir y de manera colectiva educarse, pienso que sencillamente nos une un sentir en común: la pasión, la pasión por la tecnología, la pasión por aprender, la pasión por emprender y ver los resultados de la manera que tú esperabas.

Bienvenido lector.