En mi trabajo actual utilizan el gestor de Base de Datos de Informix para algunos de los sistemas en los que desarrollamos, y es aquí donde me encontré una vez con un error como el siguiente al ejecutar una consulta:

 [Error Code: -528, SQL State: IX000]  Maximum output rowsize (32767) exceeded.

El problema es que la documentación de Informix tanto oficial como de los propios usuarios suele estar en su mayoría en Inglés y a veces aunque uno entienda el idioma de Shakespeare también suele haber muchas preguntas en foros sin respuestas que lo dejan a uno más frustrado que al principio. Es por eso que escribo el post para poder brindar alguna ayuda a quien tenga el mismo problema.

Dicho error solo se me presentaba con una consulta que tenía la particularidad de hacer un SELECT con muchos campos solicitados, al final encontré una explicación en una página que listaba los errores de Informix:

528 Maximum output rowsize max-size exceeded.

The total number of bytes that this statement selects exceeds the maximum that can be passed between the database server and the program. Make sure that the columns selected are the ones that you intended. Check that you have not named some very wide character column by mistake, neglected to specify a substring, or specified too long a substring. If the selection is what you require, rewrite this SELECT statement into two or more statements, each of which selects only some of the fields. If it is a join of several tables, you might best select all desired data INTO TEMP; then select individual columns of the temporary table. If this is a fetch via a cursor in a program, you might revise the program as follows. First, change the cursor to select only the ROWID of the desired row. Second, augment the FETCH statement with a series of SELECT statements, each of which selects one or a few columns WHERE ROWID = the saved row ID.

Lo cual explica básicamente que este error aparece debido a que se excede el límite de bytes que pueden ser transferidos desde el servidor de base de datos y el programa o la aplicación que realiza la consulta, la cual está limitada a 32k (esto no lo dice ahí pero se infiere en el error), lo que se recomienda es lo lógico, lo cual es bien quitar campos en el SELECT que no vayamos a utilizar, y de no ser posible esto entonces dividir la consulta en dos o más sentencias, de esta manera cada consulta se ejecutará correctamente y luego en nuestra aplicación tendríamos que hacer una fusión de los datos devueltos en cada una de las consultas. También ofrece una opción un poco más complicada referente a pasar la información a una tabla temporal utilizando el ROWID, pero debido a la complicación que conlleva no se me hace una opción viable.

En resumen el error solo se muestra cuando una fila es demasiado pesada para poder transferirse del servidor a la aplicación, esto también puede pasar debido a que los campos solicitados son demasiado grandes, es decir si tenemos campos de texto con mucha capacidad y llamamos muchos entonces provocaremos que se exceda este límite, por lo que otra solución puede ser en la consulta sacar un substring límitado a la información necesaria de cada uno de los campos de texto que tengan capacidad para más caracteres de los que en realidad utilizamos. O bien cambiar la tabla/tablas modificando los campos con capacidades menores de ser posible.

Espero les sirva la información.

¿Alguna vez has experimentado el miedo de que un globo te reviente en la cara o cerca del cuerpo? Pues al parecer un grupo de hombres pensaron que no es suficiente con un solo globo y compiten en una carrera con un traje hecho de puros globos mientras en el camino los demás intentan reventarlos todos. ¿Quien ganará esta carrera?

Lo más interesante de todo es que al parecer si se llega a las 500,000 visitas de este vídeo lo repetiran pero esta vez con chicas muy sexys ;9 y lo podremos ver desde este enlace … Yo no sé ustedes, pero creo que eso sería algo digno de ver xD,

TP-LINK 2

Si estás leyendo esto seguramente seas una de las personas que han tenido problemas con el alcance de su red Wi-Fi, ya sea porque tienes un módem poco potente o bien porque vives en una casa grande y es imposible que la señal se reparta equitativamente con un solo modem inalambrico, o bien alguna rara combinación de ambos.

En mi caso vivía en una casa de varios pisos en donde el módem inalámbrico estaba adentro de una habitación y además en un piso distinto a mi cuarto, por lo cual la señal del Wi-Fi que llegaba a mi laptop era de una misera barra, llegando a tal punto de que si movía la laptop unos centimetros mis descargas se cortaban o el internet iba infernalmente lento.

Para arreglar este tipo de problemas se tiene más de una opción, comoContinúa leyendo

Steve Jobs

Se veía venir, pero no de una manera tan abrupta, sin rumores previos, sin fechas auguradas, y finalmente pasó; Steve Jobs renuncia a Apple.

Y digo que se veía venir porque desde hace meses que se viene rumorando que el estado de saludo de Steve Jobs no era el mejor, se le veía más delgado en sus últimas presentaciones, demacrado y después un poco más repuesto, sin embargo era obvio para todos que estaba lidiando con un problema grave de salud desde aquel momento en que pidió un receso temporal de sus labores como CEO durante unos meses.

Lo impactante del asunto es que la noticia llegó sin nada que lo augurara, ‘de un día para otro’ podría decirse, y justo un mes (o quizá dos) antes de laContinúa leyendo