viernes, diciembre 19
Configurar PHP_PDO_INFORMIX EN WINDOWS
copiar la libreria php_pdo_informix.dll en la carpeta ext de php.
editar el php.ini que viene dentro de apache/bin
Descomentar(quitar el punto y coma) o agregar ahi la linea extension=php_pdo_informix.dll
reiniciar Apache.
haz un script de php con esto:
phpinfo();
y correlo en tu navegador, te dara la configuracion de PHP, busca la seccion de PDO, si aparece ahi el de informix, entonces ya esta listo.
tambien desde consola puedes probar con el comando php -m (para ver los modulos instalados de PHP)
Si ya aparece el pdo informix en tu configuracion de php y sigues teniendo problemas , prueba agregando en tu cadena de conexion (YA EN CODIGO) PDO especificar el db_locale = en_us.819 y el client_locale=en_us.819.
Listo
viernes, noviembre 21
Como Hacer un update entre dos bases de datos
Basta con un update similar al siguiente, notese el uso de alias para nuevabase.nombretabla y para basevieja.nombretabla, de esta manera con solo hace referencia al alias y especificar el nombre de campo, se hace mas sencilla la interpretacion.
UPDATE nuevabase.nombretabla n, basevieja.nombretabla o
SET n.nombrecampo =o.nombrecampo
WHERE n.idRegistro=16 AND o.idRegistro=16;
jueves, noviembre 13
Eliminar GRUB DEL MBR DESDE WINDOWS
1.- Inicia con un cd de Instalacion de Windows
2.- Dile que deseas reparar windows desde consola (Letra R)
3.- inicia en la particion de windows, te dara la lista, solo presiona el numero, supongo que es el numero 1.
4.- Te pedira la contraseña de Administrador de windows
5.- ya estas en modo consola de recuperacion de windows, ahora teclea los siguientes comandos:
1.- FIXBOOT (A lo que te pregunte, dile que si)
2.- FIXMBR (Tambien dile que si)
3.- EXIT (Para salir de modo consola)
6.- Se reiniara la maquina, quita tu cd de instalacion, listo, ya puedes entrar a winbugs de nuevo, no es necesario formatear, ahi estan todos tus datos.
Asi de simple es windows...
miércoles, noviembre 5
Actualizar php 5.1 a php 5.2.6
http://bluhaloit.wordpress.com/2008/03/13/installing-php-52x-on-redhat-es5-centos-5-etc/
En resumen:
To install PHP 5.2.5 (Highest in repository at this time) you can make use of a RPM repository maintained by Remi. He has a repository for each distro, but to save you translating for the ES5 one I’ll give you the commands here. Run the following to get up and running:
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
viernes, agosto 15
Como instalar kopete en UBUNTU
http://installubuntu.blogspot.com/2007/11/cmo-instalar-kopete-chatear-y-vdeo.html
miércoles, julio 16
Como convertir un campo a varias columnas en mysql
Supongamos que tenemos una tabla asi:
Producto
id
estado_fisico
nombre
SELECT * FROM producto;
nos dara algo similar a:
id--------estado_fisico--------nombre
1------------1--------------Caramelos
2------------2--------------Platano
3------------3--------------Jabon
Pero si deseamos que nos de un resultado similar a este, es decir convertir un campo a varias columnas
dependiendo de su valor:
id--nombre------bueno-------regular--------------malo
1--Caramelos----1-------------0------------------0
2--Platano------0-------------1------------------0
3--Jabon--------0-------------0------------------1
nuestra consulta quedaria de la siguiente manera:
SELECT
id, nombre,
if(estado_fisico=1,1,0) as bueno,
if(estado_fisico=2,1,0) as regular,
if(estado_fisico=3,1,0) as malo
from producto
Muy util en algunas situaciones, o bien para luego convertir este resultado en una subconsulta, etc.
miércoles, junio 11
lunes, marzo 3
El primer día de Guardería de Sophirita.
Bueno, Sophirita ya tiene 3 años y medio, mismos que paso bajo el cuidado de su Nana Cuca (medio dia), en casa, sin embargo el tiempo ha pasado demasiado rápido y es necesario que tenga sus propias actividades, hoy es su primer día de Guardería, se levanto muy contenta porque va a ir a la escuela, lo bueno de todo es que ella misma había pedido que la llevásemos a la escuela, puesto que en casa se aburría, así que llego, entro a su aula, busco su silla y se quedo muy tranquila, sin llorar, creo que las películas de Nemo (principalmente ), las películas de Barney ( que he visto como 100 veces) y otras, han dado frutos, pues le enseñaron que ir a la escuela y convivir con mas niños es muy agradable, y pues no quiero ser Marlyn , quien no dejaba ir a Nemo a la escuela (ni lo dejaba ser independiente), hay que darle confianza y dejar que se desenvuelva ella misma, ha llegado la hora de que alze el vuelo a su propio ritmo.
Creo que Sophirita la pasara muy bien, jugara con otros niños de su edad, ya que en casa conmigo era con quien jugaba, es muy divertido jugar a ser niño, pero ella necesita jugar con niños de su edad, aprender de ellos y enseñar las cosas que sabe, por cierto, ella ya sabe hacer muchas cosas, como dibujar, pintar, colorear, recortar, conoce las figuras geométricas, algunos números y letras, jugar en la computadora, incluso le gusta organizar a los demás niños y ponerlos a jugar.
Suerte Sophirita…
jueves, febrero 28
Otra sobre como Personalizar una Fecha en MYSQL
En este caso, de un subQuery se concatenan el dia en texto, el diaNumerico, el mes en Texto y el año, observese el subQuery:
SELECT
concat(t1.diaEnTexto, " ", t1.diaNumerico, " de ",t1.mesEnTexto, " de " , t1.elAnio
) as fechaEnTexto
FROM
(SELECT
EXTRACT(DAY FROM Orden_Compra.Fecha) as diaNumerico,
( CASE DAYOFWEEK(Orden_Compra.Fecha)
WHEN 1 THEN "Domingo"
WHEN 2 THEN "Lunes"
WHEN 3 THEN "Martes"
WHEN 4 THEN "Miercoles"
WHEN 5 THEN "Jueves"
WHEN 6 THEN "Viernes"
WHEN 7 THEN "Sabado"
ELSE ""
END) as diaEnTexto,
( CASE MONTH(Orden_Compra.Fecha)
WHEN 1 THEN "Enero"
WHEN 2 THEN "Febrero"
WHEN 3 THEN "Marzo"
WHEN 4 THEN "Abril"
WHEN 5 THEN "Mayo"
WHEN 6 THEN "Junio"
WHEN 7 THEN "Julio"
WHEN 8 THEN "Agosto"
WHEN 9 THEN "Septiembre"
WHEN 10 THEN "Octubre"
WHEN 11 THEN "Noviembre"
WHEN 12 THEN "Diciembre"
ELSE ""
END ) as mesEnTexto,
EXTRACT(YEAR FROM Orden_Compra.Fecha ) as elAnio
FROM Orden_Compra
WHERE
Orden_Compra.id = ? ) t1
viernes, febrero 22
Semana de Locura
Tambien por lo mismo de la enfermedad, perdi tiempo en PSP, mi intencion era presentar el examen de Certificacion de PSP el lunes 25 de Febrero de 2006, incluso ya estaba programado, pero no se dieron las condiciones para ello, sin embargo tengo el proposito de prepararme por mi cuenta y presentarlo posteriormente.
Que bueno ke es viernes. mi gripa ha disminuido, Sophirita esta mejor y habra tiempo de recuperarse...
lunes, febrero 11
Sentencias IF Anidadas en MySql
Supongamos que tenemos la tabla resultados, y verificamos si el campo minimo es menor que 3, si es asi entonces Semaforo valdra "Rojo", de lo contrario valdra "Amarillo":
if(resultados.minimo < 3, "Rojo","Amarillo") as Semaforo
Es un if sencillo, la primer coma seria el THEN, la segunda coma indica el ELSE.
En cualquier lenguaje de Programacion, los if anidados son muy comunes y faciles de codificar, pero por que no hacerlo tambien en Mysql, si, si se puede, veamos el siguiente ejemplo:
Tomemos la misma tabla de nombre resultados, la cual contiene los siguientes datos:
resultados.resultado
meta.meta
meta.minimo
meta.satisfactorio
meta.sobresaliente
Ahora, vamos a usar sentencias IF anidadas para verificar en que rango de la meta cae resultados.resultado y poner una variable llamada semaforo para que nos indique rojo,amarillo o verde, esta variable la podemos usar ya sea para una Grafica o simplemente para indicara al usuario que el resultado esta en determinada luz, y pues quedaria asi:
if (resultados.resultado <=meta.minimo,"Rojo",
( if(resultado.valor between meta.minimo and meta.satisfactorio,"Amarillo","Verde"))
) as Semaforo
Si resultados.resultado <= meta.minimo, entonces semaforo Rojo y aqui entra el ELSE Si resultado.resultado esta entre minimo y satisfactorio entonces semaforo amarillo de lo contrario semaforo Verde. Listo, ya hicimos IF's anidados. Siguiente tema: Crear pivotes en mysql.
viernes, febrero 8
Javascript para formatear un numero a determinados decimales o bien con formato de moneda.
Numero: 85000
var numero = new oNumero(85000);
rango=numero.formato(2,true);
Salida = 85,000.00
var numero = new oNumero(85000);
rango=numero.formato(2,false);
Salida = 85000.00
function oNumero(numero)
{
//Propiedades
this.valor = numero || 0
this.dec = -1;
//Métodos
this.formato = numFormat;
this.ponValor = ponValor;
//Definición de los métodos
function ponValor(cad)
{
if (cad =='-' || cad=='+') return
if (cad.length ==0) return
if (cad.indexOf('.') >=0)
this.valor = parseFloat(cad);
else
this.valor = parseInt(cad);
}
function numFormat(dec, miles)
{
var num = this.valor, signo=3, expr;
var cad = ""+this.valor;
var ceros = "", pos, pdec, i;
for (i=0; i < dec; i++)
ceros += '0';
pos = cad.indexOf('.')
if (pos < 0)
cad = cad+"."+ceros;
else
{
pdec = cad.length - pos -1;
if (pdec <= dec)
{
for (i=0; i< (dec-pdec); i++)
cad += '0';
}
else
{
num = num*Math.pow(10, dec);
num = Math.round(num);
num = num/Math.pow(10, dec);
cad = new String(num);
}
}
pos = cad.indexOf('.')
if (pos < 0) pos = cad.lentgh
if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+')
signo = 4;
if (miles && pos > signo)
do{
expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
cad.match(expr)
cad=cad.replace(expr, RegExp.$1+','+RegExp.$2)
}
while (cad.indexOf(',') > signo)
if (dec<0) cad = cad.replace(/\./,'')
return cad;
}
}//Fin del objeto oNumero:
fuente
http://javascript.espaciolatino.com/scripts/formateanum.htm
jueves, enero 24
Varias de MYSQL
Como hacer un respaldo de una base de datos en MYSQL, desde consola.
mysqldump -u root -p nombrebd > archivodestino.sql
Y ahora, como, desde consola importar el respaldo anterior:
Nos colocamos en el directorio bin de mysql y tecleamos el siguiente comando:
mysql -u root -p nombreBDdondeSeImportara < "rutaynombredelscriptACargar sql" si tienes password en el usuario root, te lo pedira.
lunes, enero 14
Como determinar el formato de salida de un reporte ?
Como ya sabemos, BIRT es un reporteador muy versatil, muy facil de usar y con muchas opciones, incluido el poder insertar codigo javascript, bueno, pues hay veces que se necesitan ciertas cosas, que solo con javascript se logran, por ejemplo, como determinar con codigo la salida o el formato en que se desplegara el reporte, en este caso, yo deseo ocultar los hiperlinks cuando el formato de salida de x reporte sea pdf, y la manera de hacerlo es simplemente asi, usando el objeto reportContext:
if (reportContext.getOutputFormat( )=="html")
{
hiperlinkdeseado
}
Significa que si el formato de salida es html, entonces que si muestre el hiperlink sobre ese dato, de lo contrario, simplemente no hace nada.
Espero que a alguien le sea de utilidad...
Por cierto, aqui se puede encontrar muchisima informacion sobre BIRT, esta la descripcion y los metodos de todos los objetos usados en BIRT, habra que echarle una buena hojeada...
http://safari.adobepress.com/0321443853/ch09lev1sec2
jueves, enero 10
Personalizar una Fecha en MySQL
SELECT
EXTRACT(DAY FROM Tabla.Fecha ) as diaNumerico,
( CASE DAYOFWEEK(Tabla.Fecha)
WHEN 1 THEN "Domingo"
WHEN 2 THEN "Lunes"
WHEN 3 THEN "Martes"
WHEN 4 THEN "Miercoles"
WHEN 5 THEN "Jueves"
WHEN 6 THEN "Viernes"
WHEN 7 THEN "Sabado"
ELSE ""
END) as diaEnTexto,
( CASE MONTH(Tabla.Fecha)
WHEN 1 THEN "Enero"
WHEN 2 THEN "Febrero"
WHEN 3 THEN "Marzo"
WHEN 4 THEN "Abril"
WHEN 5 THEN "Mayo"
WHEN 6 THEN "Junio"
WHEN 7 THEN "Julio"
WHEN 8 THEN "Agosto"
WHEN 9 THEN "Septiembre"
WHEN 10 THEN "Octubre"
WHEN 11 THEN "Noviembre"
WHEN 12 THEN "Diciembre"
ELSE ""
END ) as mesEnTexto,
EXTRACT(YEAR FROM Tabla.Fecha ) as elAnio,
EXTRACT(HOUR FROM Tabla.Fecha ) as laHora,
EXTRACT(MINUTE FROM Tabla.Fecha ) as elMinuto,
publicacion_convocatoria.lugar_celebracion_actos as lugar_apertura_tecnica
FROM publicacion_convocatoria
WHERE
Tabla.id = ?
Ya estando en BIRT, formamos nuestra cadena a Mostrar, la cual quedaria mas o menos asi:
"La junta se llevara a cabo el dia "+dataSetRow["diaEnTexto"]+" "+dataSetRow["diaNumerico"]+ " de "+dataSetRow["mesEnTexto"]+" de "+dataSetRow["elAnio"]+" a las "+dataSetRow["laHora"]+":"+dataSetRow["elMinuto"]+" horas " + " en "+dataSetRow["lugar"]+"."
Mostrando algo asi como esto:
"La junta se llevara a cabo el dia Miercoles 18 de Septiembre de 2007 a las 18:00 horas en XLugar...
Personalizando una Fecha en JavaScript
// Array de los meses
var monthNames = new makeArray(12);
monthNames[0] = "Enero";
monthNames[1] = "Febrero";
monthNames[2] = "Marzo";
monthNames[3] = "Abril";
monthNames[4] = "Mayo";
monthNames[5] = "Junio";
monthNames[6] = "Julio";
monthNames[7] = "Agosto";
monthNames[8] = "Septiembre";
monthNames[9] = "Octubre";
monthNames[10] = "Noviembre";
monthNames[11] = "Diciembre";
// Array de los días
var dayNames = new makeArray(7);
dayNames[0] = "Domingo";
dayNames[1] = "Lunes";
dayNames[2] = "Martes";
dayNames[3] = "Miercoles";
dayNames[4] = "Jueves";
dayNames[5] = "Viernes";
dayNames[6] = "Sabado";
// dataSetRow["FechaVale"]; es un campo del DataSet que contenga la fecha a personalizar.
var fecha =dataSetRow["FechaVale"];
var year = dataSetRow["FechaVale"].getYear();
if (year < 2000) year = year + 1900;
function makeArray(len)
{
for (var i = 0; i < len; i++) this[i] = null;
this.length = len;
}
//Aqui formamos la cadena final, la cual sera mostrada en el reporte.
displayString= dayNames[fecha.getDay()] + " " + fecha.getDate() + " de " + monthNames[fecha.getMonth()] + " " +" de " + year+".";
martes, enero 8
Convertir Numero a Texto en JavaScript
Nota: Originalmente la funcion no tomaba en cuenta los decimales, es decir, solo traducia la parte entera, por ello agregue el calculo de centavos en la parte final y ya solo arme la cadena de texto a mostrar.
function letras(c,d,u)
{
var centenas,decenas,decom
var lc=""
var ld=""
var lu=""
centenas=eval(c);
decenas=eval(d);
decom=eval(u);
switch(centenas)
{
case 0: lc="";break;
case 1:
{
if (decenas==0 && decom==0)
lc="Cien"
else
lc="Ciento ";
}
break;
case 2: lc="Doscientos ";break;
case 3: lc="Trescientos ";break;
case 4: lc="Cuatrocientos ";break;
case 5: lc="Quinientos ";break;
case 6: lc="Seiscientos ";break;
case 7: lc="Setecientos ";break;
case 8: lc="Ochocientos ";break;
case 9: lc="Novecientos ";break;
}
switch(decenas)
{
case 0: ld="";break;
case 1:
{
switch(decom)
{
case 0:ld="Diez";break;
case 1:ld="Once";break;
case 2:ld="Doce";break;
case 3:ld="Trece";break;
case 4:ld="Catorce";break;
case 5:ld="Quince";break;
case 6:ld="Dieciseis";break;
case 7:ld="Diecisiete";break;
case 8:ld="Dieciocho";break;
case 9:ld="Diecinueve";break;
}
}
break;
case 2:ld="Veinte";break;
case 3:ld="Treinta";break;
case 4:ld="Cuarenta";break;
case 5:ld="Cincuenta";break;
case 6:ld="Sesenta";break;
case 7:ld="Setenta";break;
case 8:ld="Ochenta";break;
case 9:ld="Noventa";break;
}
switch(decom)
{
case 0: lu="";break;
case 1: lu="Un";break;
case 2: lu="Dos";break;
case 3: lu="Tres";break;
case 4: lu="Cuatro";break;
case 5: lu="Cinco";break;
case 6: lu="Seis";break;
case 7: lu="Siete";break;
case 8: lu="Ocho";break;
case 9: lu="Nueve";break;
}
if (decenas==1)
{
return lc+ld;
}
if (decenas==0 || decom==0)
{
return lc+" "+ld+lu;
}
else
{
if(decenas==2)
{
ld="Veinti";
return lc + ld + lu.toLowerCase();
}
else
{
return lc+ld+" y "+lu
}
}
}
function getNumberLiteral(n)
{
var m0,cm,dm,um,cmi,dmi,umi,ce,de,un,hlp,decimal;
if (isNaN(n)) {
alert("La Cantidad debe ser un valor Numérico.");
return null
}
m0= parseInt(n/ 1000000000000); rm0=n% 1000000000000;
m1= parseInt(rm0/100000000000); rm1=rm0%100000000000;
m2= parseInt(rm1/10000000000); rm2=rm1%10000000000;
m3= parseInt(rm2/1000000000); rm3=rm2%1000000000;
cm= parseInt(rm3/100000000); r1= rm3%100000000;
dm= parseInt(r1/10000000); r2= r1% 10000000;
um= parseInt(r2/1000000); r3= r2% 1000000;
cmi=parseInt(r3/100000); r4= r3% 100000;
dmi=parseInt(r4/10000); r5= r4% 10000;
umi=parseInt(r5/1000); r6= r5% 1000;
ce= parseInt(r6/100); r7= r6% 100;
de= parseInt(r7/10); r8= r7% 10;
un= parseInt(r8/1);
//r9=r8%1;
999123456789
if (n<>=1000000000)
{
tmp=n.toString();
s=tmp.length;
tmp1=tmp.slice(0,s-9)
tmp2=tmp.slice(s-9,s);
tmpn1=getNumberLiteral(tmp1);
tmpn2=getNumberLiteral(tmp2);
if(tmpn1.indexOf("Un")>=0)
pred=" Billón "
else
pred=" Billones "
return tmpn1+ pred +tmpn2;
}
if (n<10000000000>=1000000)
{
mldata=letras(cm,dm,um);
hlp=mldata.replace("Un","*");
if (hlp.indexOf("*")<0>3)
{
mldata=mldata.replace("Uno","un");
mldata+=" Millones ";
}
else
{
mldata="Un Millón ";
}
mdata=letras(cmi,dmi,umi);
cdata=letras(ce,de,un);
if(mdata!=" ")
{
if (n == 1000000) {
mdata=mdata.replace("Uno","un") + "de";
} else {
mdata=mdata.replace("Uno","un")+" mil ";
}
}
return (mldata+mdata+cdata);
}
if (n<1000000>=1000)
{
mdata=letras(cmi,dmi,umi);
cdata=letras(ce,de,un);
hlp=mdata.replace("Un","*");
if (hlp.indexOf("*")<0>3)
{
mdata=mdata.replace("Uno","un");
return (mdata +" mil "+cdata);
}
else
return ("Mil "+ cdata);
}
if (n<1000>=1)
{
return (letras(ce,de,un));
}
if (n==0)
{
return " Cero";
}
return "No disponible"
}
centavos=Math.round(dataSetRow["Importe"] * 100)-Math.floor(dataSetRow["Importe"])*100;
if (centavos)
{
Texto=getNumberLiteral(dataSetRow["Importe"]).toUpperCase()+" PESOS "+ centavos +"/100 M.N.";
}else
{
Texto=getNumberLiteral(dataSetRow["Importe"]).toUpperCase()+" PESOS 00/100 M.N.";
}
lunes, enero 7
2008 ?
Inicio un nuevo año, un año con muchos propositos, propositos que deseo cumplir, hay muchos propositos en lo personal, familiar, economico, profesional, etc, yo creo que es muy bueno hacerse propositos, se recomienda que dichos propositos sean compartidos, es decir que se platiquen con alguien de confianza, a fin de que exista mas compromiso personal, esos propositos aparte hay que anotarlos, hay que llevar una agenda y continuamente irlos analizando, es decir donde estoy, a donde quiero llegar, y que necesito para lograr ese objetivo, y por donde empezar cada uno, el inicio de año es una buena fecha para partir, sin embargo, los propositos pueden plantearse en cualquier fecha.
Es comun que empezamos el año con una lista de propositos, que luego se van olvidando, se necesita disciplina, se necesita mucho trabajo y entusiasmo para poder cumplirlos, no hay que fijar demasiados propositos, hay que fijar los mas importantes y hacer las acciones necesarias para que se logren, hay que recordar que el tiempo es un consumible no renovable, asi que a echarle ganas.
En alguna ocasion, un consultor nos platicaba que un gran motivador se planto frente a un grupo de alumnos del Tec de Monterrey, les decia que cuando nacemos, a cada uno, Dios nos da 7 monedas de oro para gastar, son las monedas que gastaras en lo que dures con vida, sin embargo la primera y la septima no se gastan conscientemente, ya que cada moneda corresponde a una decena de años, los primeros 10 años no tenemos todavia una vision apropiada de lo que sera nuestra vida en un futuro, la ultima moneda, la septima que comprende de los 60 a los 70 años, ya estamos casi de bajada (todo depende de la vida que lleves), ya es la edad de enfermedades para la mayoria de los humanos, aunque no siempre es asi., por lo cual nos quedan 5 monedas para gastar, la gran mayoria de esos jovenes que escuchaban al consultor apenas si habian gastado 2 monedas, todavia les quedaban cuatro o cinco.
De pronto se levanto un señor de 50 años, y dijo, como puede decirnos eso, yo tengo 50 años y me ha dado a entender que ya solo me queda una moneda, que ya no puedo hacer casi nada, el consultor le dijo, si, tiene razon, pero recuerde que esa moneda tiene 10 años, si traduce esos diez años en dias serian alrededor de 3650 dias, si lo calcula en horas, serian 87600 horas, traducido en minutos serian 5256000, asi que usted decide como gasta su moneda.
Bueno, pues los invito a que gastemos cada quien nuestras monedas, hay que gastarlas bien, hay que ser buenas personas, buenos amigos, buenos padres, buenos hijos, etc...