Daniel Gerardo Sánchez

Mí diario, con el codigo adjunto.

  • Home

SQL LIMIT de Mysql en Firebird

By Danger on 24 junio 2010

Apenas estoy haciendo pinitos en Firebird, y haciendo una pequeña aplicación descubri que lo que para muchos de nosotros es algo normal, y me refiero a lo siguiente:

PLAIN TEXT
PHP:
  1. SELECT `campo` FROM `tabla` LIMIT 10, 1;

en Firebird no funciona de esa manera, seria de la siguiente forma:

PLAIN TEXT
PHP:
  1. SELECT FIRST 10 SKIP 1 `campo` FROM `tabla`;

Donde estamos diciendo que queremos 10 registros empezando por el registro 1. Interesante, espero les sirva.

Posted in Firebird, Mysql, PHP | Tagged CONSULTAS, FiREBIRD, LIMIT, Mysql, PHP, SELECT | Leave a response

Firebird con PHP

By Danger on 19 junio 2010

Primero que nada una disculpa porque me ausente bastante tiempo, creo que poco a poco tendre y me daré el tiempo de publicar cosas interesantes más seguido.

Ahora quiero mostrar para aquellos que aun no saben conectar y realizar un simple consulta con Firebird, como se hace.

A continuación les pongo un codigo de ejemplo de como conectar y realizar un consulta a una base de datos firebird remota.

PLAIN TEXT
PHP:
  1. $cx = ibase_connect("000.000.000.0:C:\firebird\ARCHIVO.FDB","SYSDBA","masterkey");
  2. $s = ibase_query($cx,"SELECT * FROM TABLA");
  3. $d = ibase_fetch_object($s);

Hasta aquí ya tendremos en la variable "d", el objeto con toda la información, que a mi parecer la funcion ibase_fetch_object es un equivalente a mysql_fetch_array. Y bien podriamos darle lectura con un forech.

Ahora, el codigo es muy sencillo pero podriamos tener muchos problemas externos con el servidor, que va desde la protección del costafuegos hasta el user y pass del server.

Yo les recomiendo checar algunos puntos como los siguientes:
1.- checar ip de server remota ( sí es local se recomienda usar localhost )
2.- checar puertos ( 3050 de firebird )
3.- checar firewall ó cortafuegos.
4.- checar sí el server usa pass ó no, al igual que user se esta utilizando.
5.- instalar el cliente firebird: http://www.firebirdsql.org/

Con esto bien checado deberia funcionar y conectar sin problema alguno.

Posted in PHP | Tagged BASE DE DATOS, FiREBIRD, PHP | Leave a response

Convertir archivos .csv a .asc con determinadas longitudes

By Danger on 14 abril 2010

Apenas estoy teniendo mi primer experiencia en sistemas del tipo CRM y de contabilidad para una empresa. Asi es, sere el encargado de tal labor.

El problema viene cuando el jefe del sistema me pide listados de los articulos con los que se iniciaran en almacen. Entonces cada departamento empieza a mandarme su listado en formato excel.

Me envian su listado en excel y yo tengo que realizar un archivo con un formato parecido al siguiente:

PLAIN TEXT
HTML:
  1. 645DF+++CASCO1+++++++++++
  2. 456FD+++COSA+++++++++++++

Donde el signo de mas es un espacio en blanco, por lo tanto en el layout te dicen:
- el primer campo debe tener equis en longitud y el restante se rellena con espacios
- el campo equis tal longitud, sí no existe valor esa longitud se llena con espacios en blanco.

Mi plan fue exportar el archivo excel a un archivo csv con separadores ";". Enseguida realizar un pequeño programita que me convirtiera ese csv al formato deseado, segun la longitud de cada campo.

Mi resultado es el siguiente:

PLAIN TEXT
PHP:
  1. ///////////////////////////////////
  2. //////////////////// convierte la información en una matriz bidimencional
  3. ///////////////////////////////////
  4. function MM_array($ff){
  5.     $buffer = array();
  6.     $f = file($ff);
  7.  
  8.     $i = 0;
  9.     foreach ($f as $line) {
  10.  
  11.         $s = explode(';',$line);
  12.    
  13.         for($j=0;$j<count($s);$j++){
  14.             $buffer[$i][$j] = $s[$j];
  15.         }
  16.  
  17.  
  18.         $i++;
  19.     }
  20.  
  21.     return $buffer;
  22. }
  23.  
  24.  
  25.  
  26. ///////////////////////////////////
  27. //////////////////// rellena con espacios la longitud de los campos que no cuentan con la long asignada
  28. ///////////////////////////////////
  29. function MM_lon($ar,$lon){
  30.     for($i=0;$i<count($ar);$i++){
  31.         for($j=0;$j<count($ar[$i]);$j++){
  32.             for($k=0;;$k++){
  33.                 if(strlen($ar[$i][$j]) <$lon[$j]){
  34.                     $ar[$i][$j] = str_replace("\r\n","",$ar[$i][$j]);
  35.                     $ar[$i][$j] .= ' ';
  36.                 }else{
  37.                     break;
  38.                 }
  39.             }
  40.         }
  41.     }
  42.  
  43.     return $ar;
  44. }
  45.  
  46.  
  47.  
  48. ///////////////////////////////////
  49. //////////////////// imprime la matriz en el formato deseado de importación
  50. ///////////////////////////////////
  51. function MM_res($ar){
  52.     $res = '';
  53.     for($i=0;$i<count($ar);$i++){
  54.         $res .= implode('',$ar[$i])."\n";
  55.     }
  56.     return $res;
  57. }

Y el modo de uso seria el siguiente:

PLAIN TEXT
PHP:
  1. $arr = MM_array('bustamante.csv');
  2. $ar = MM_lon($arr,array(20,50,15,1,21,10,10,5,15,15));
  3. echo MM_res($ar);

Me llevo gran parte de la mañana, pero ahora me he ahorrado DIAS de trabajo. ( Ya me soñaba ahi en el notepad asignando los espacios manualmente ¬¬ )

Espero que exista alguien que le pueda ayudar. Suerte!

Posted in PHP | Tagged asc, csv, exportar, importar, migrar, PHP | Leave a response

« PreviousNext »

Buscar

Sobre mí

  • Contacto
  • Portafolio

Categorias:

  • Apache
  • BAT
  • CSS
  • Firebird
  • General
  • Javascript
  • Mysql
  • Perl
  • PHP
  • Python

Who's Online

  • 0 Members.
  • 5 Guests.

Copyright © 2010 Daniel Gerardo Sánchez.

Powered by WordPress and Hybrid.