Archivo del Autor: chocolim

Retornar el resultado de un stored procedure de firebird en c#

En general querriamos poder saber un resultado especificado por nosotros de un procedimiento en nuestra base de datos, asi es como:
Dentro de la base de datos esta el siguiente procedimiento:

CREATE PROCEDURE SUMAUNO (
ENTRADAP INTEGER)
RETURNS (
VAR INTEGER)
AS
BEGIN

VAR=:ENTRADAP+1;
END

Lo unico que hace es recibir el parametro y retornar la suma del parametro mas uno, el mismo puede ser la suma de cosas dentro de la base de datos por ejemplo un total de ventas del mes o algo asi.
Dentro de c# lo siguiente:

FbConnection myConnection = new FbConnection(«ServerType=1;Dialect=3;Database=datos.gdb;»);
myConnection.Open();
FbTransaction myTxn = conn.BeginTransaction();
FbCommand myCommand = new FbCommand(«borrame(24);», conn, myTxn);
myCommand.CommandType = CommandType.StoredProcedure;

object y;

y=myCommand.ExecuteScalar();
myTxn.Commit();
myConnection.Close();

Luego y tendra el valor de 25, que deseguro habra que castear al tipo de datos que queremos usar, faltan los controles de errores y el dispose de los recursos reservados.

Fuentes TrueType en Xwindows

Instalamos los paquetes xfs y xfstt mediante «apt-get install (supongo que esto valdrá igual para las demas distribuciones, solo que instalándolos a mano).

Reiniciamos el xfs :

/etc/init.d/xfs restart

Copiamos fuentes truetype (.ttf) a /usr/share/fonts/truetype

cp /dos/c/Windows/fonts/*.ttf /usr/share/fonts/truetype

cp /dos/c/Windows/fonts/*.TTF /usr/share/fonts/truetype

(también podemos hacer enlaces simbólicos a las fuentes de Windows, borrando el directorio fonts y haciendo enlace a windows/fonts)

Reiniciamos xfstt para que encuentre las nuevas fuentes:

/etc/init.d/xfstt restart

Si no las encuentra le añadimos -force-reload .

Activar la aceleracion dma para dispositivos en Ubuntu

La acelaracion DMA esta instalada pero sin configurar para las unidades CDROM, hay que agregar la siguiente linea al archivo /etc/hdparm.conf:

/dev/dispositivo {

dma = on

}

Y obviamente sustituir dispotivo, el hdparam es algo que puede hacer que el sistema no arranque, si te pasa eso pasale nohdparm al kernel como parametro al arrancar

Procedimientos en Firebird

Son rutinas que estan almacenadas dentro de la base de datos para su uso. Tiene la ventaja que las aplicaciones clientes no tienen que hacer inserts y demas, para mejor detalle en un libro de base de datos 🙂

Llamando a un procedimiento

Los procedimientos pueden realizar algo y retornar nada.

«Select» procedimiento retorna tablas, asi como SELECT, Tablas o Vistas. Pueden ser usados como una referencia a una tabla en una sentencia SELECT:

SELECT a, b FROM procedurename (params) …

Declarando un procedimiento

CREATE PROCEDURE name [(param1 datatype1, param2 datatype2, …)]

[RETURNS (param3 datatype3, param4 datatype4, …)]

AS BEGIN

Ejemplos:

/* — Retorna un solo valor –———————————– */

CREATE PROCEDURE Mul (a INTEGER, b INTEGER)

RETURNS (Result INTEGER)

AS BEGIN

Result = a * b;

END

/* — Retorna una tabla –——————————— */

CREATE PROCEDURE CountTo10

RETURNS (Cnt INTEGER)

AS BEGIN

Cnt = 1;

WHILE (Cnt

SUSPEND; /* Return next line */

Cnt = Cnt + 1;

END;

END

END;