Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2004
Avatar de pinoxito
pinoxito pinoxito is offline
Miembro
 
Registrado: sep 2003
Posts: 16
Poder: 0
pinoxito Va por buen camino
ejemplos de procedimientos almacenados para interbase?

Hola amigos, tengo que duplicar facturas desde mi programa, y desearia hacerlo con un procedimiento almacenado, he estado mirando la ayuda de interbase pero solo hay dos ejemplos muy pobres. Alguien tiene o sabe donde mirar ejemplos del tipo que yo necesito?
Responder Con Cita
  #2  
Antiguo 27-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Creo que el concepto de "pobre" es algo bastante subjetivo. Habrá que saber si has buscado lo suficiente, o tu busqueda también es "pobre".

¿que le falta a los ejemplos?

quizas lo que busques es la sintaxis completa:

Cita:
Empezado por sqlhelp
Syntax
Código:
CREATE PROCEDURE name
	[(param <datatype> [, param <datatype> …])] 
	[RETURNS <datatype> [, param <datatype> …])]
	AS <procedure_body> [terminator]

<procedure_body> =
	[<variable_declaration_list>] 
	<block>
<variable_declaration_list> = 
	DECLARE VARIABLE var <datatype>; 
	[DECLARE VARIABLE var <datatype>; …]
<block> = 
BEGIN
	<compound_statement> 
	[<compound_statement> …] 
END
<compound_statement> = {<block> | statement;}

<datatype> = SMALLINT
	| INTEGER
	| FLOAT
	| DOUBLE PRECISION
	| {DECIMAL | NUMERIC} [(precision [, scale])]
	| {DATE | TIME | TIMESTAMP)
	| {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR} 
		[(int)] [CHARACTER SET charname] 

| {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR} [VARYING] [(int)]
De esta misma ayuda, extraigo el ejemplo:

Cita:
Empezado por sqlhelp
Examples The following procedure, SUB_TOT_BUDGET, takes a department number as its input parameter, and returns the total, average, minimum, and maximum budgets of departments with the specified HEAD_DEPT.

/* Compute total, average, smallest, and largest department budget.
*Parameters:
* department id
*
*Returns:
* total budget
* average budget
* min budget
* max budget */
Código SQL [-]
SET TERM !! ;
CREATE PROCEDURE SUB_TOT_BUDGET (HEAD_DEPT CHAR(3))
  RETURNS (tot_budget DECIMAL(12, 2), avg_budget DECIMAL(12, 2),
    min_budget DECIMAL(12, 2), max_budget DECIMAL(12, 2))
  AS
  BEGIN
    SELECT SUM(BUDGET), AVG(BUDGET), MIN(BUDGET), MAX(BUDGET)
      FROM DEPARTMENT
      WHERE HEAD_DEPT = :head_dept
      INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
    EXIT;

END !!

SET TERM ; !!

The following select procedure, ORG_CHART, displays an organizational chart:

/* Display an org-chart.
*
* Parameters:
* --
* Returns:
* parent department
* department name
* department manager
* manager's job title
* number of employees in the department */
Código SQL [-]
CREATE PROCEDURE ORG_CHART
  RETURNS (HEAD_DEPT CHAR(25), DEPARTMENT CHAR(25),
    MNGR_NAME CHAR(20), TITLE CHAR(5), EMP_CNT INTEGER)
  AS
    DECLARE VARIABLE mngr_no INTEGER;
    DECLARE VARIABLE dno CHAR(3);
  BEGIN
    FOR SELECT H.DEPARTMENT, D.DEPARTMENT, D.MNGR_NO, D.DEPT_NO

FROM DEPARTMENT D
      LEFT OUTER JOIN DEPARTMENT H ON D.HEAD_DEPT = H.DEPT_NO
      ORDER BY D.DEPT_NO
      INTO :head_dept, :department, :mngr_no, :dno
    DO
      BEGIN
        IF (:mngr_no IS NULL) THEN
          BEGIN
            MNGR_NAME = '--TBH--';
            TITLE = '';
          END
        ELSE
          SELECT FULL_NAME, JOB_CODE
            FROM EMPLOYEE
            WHERE EMP_NO = :mngr_no
            INTO :mngr_name, :title;
          SELECT COUNT(EMP_NO)

FROM EMPLOYEE
            WHERE DEPT_NO = :dno
            INTO :emp_cnt;
          SUSPEND;
      END

END !!

When ORG_CHART is invoked, for example in the following isql statement:

Código SQL [-]
SELECT * FROM ORG_CHART

it displays the department name for each department, which department it is in, the department manager's name and title, and the number of employees in the department.


Código:
HEAD_DEPT               	DEPARTMENT 			MGR_NAME 		TITLE 	EMP_CNT
=====================    	===================		================	====	=======
				Corporate Headquarters  	Bender, Oliver H. 	CEO 	2
Corporate Headquarters  	Sales and Marketing 		MacDonald, Mary S.	VP	2 
Sales and Marketing     	Pacific Rim Headquarters 	Baldwin, Janet 	Sales	2 
Pacific Rim Headquarters 	Field Office: Japan 		Yamamoto, Takashi 	SRep 	2 
Pacific Rim Headquarters 	Field Office: Singapore 	--TBH--				0
¿es suficiente?

¿Buscas por algun tema en particular?
Será mejor que lo aclares, no te parece. Quizas mi respuesta siga siendo pobre para tus intereses, quizas tu forma de plantear lo que buscas sea el origen de eso.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 30-08-2004
JulioGO JulioGO is offline
Miembro
 
Registrado: ago 2004
Posts: 94
Poder: 20
JulioGO Va por buen camino
Seria mas facil si nos detallas el problema que tienes. Las respuestas no se van a generar si no explicas un poco el dilema.

Saludos.
Responder Con Cita
  #4  
Antiguo 03-09-2004
aurafern aurafern is offline
Miembro
 
Registrado: dic 2003
Posts: 34
Poder: 0
aurafern Va por buen camino
Cita:
Empezado por JulioGO
Seria mas facil si nos detallas el problema que tienes. Las respuestas no se van a generar si no explicas un poco el dilema.

Saludos.
Cordial saludo. Aprovechando que PINOXITO ha hecho esta consulta, voy a citar un caso para el cual no he encontrado una solucion apropiada. Necesito crear una base de datos para modulo de produccion que me permita crear productos y hacer explosion de ellos

ejemplo: para producir el producto 001 (un pastel en hojaldre) , necesito:

el producto masa1 : 20gr
el producto guiso : 10 gr
el producto pollo desmechado : 3 gr
y la mano de obra

el producto masa1 a su vez es otra receta:
harina 5gr
agua 0.3ml
sal 1gr


el producto guiso a su vez es otra receta:
tomate 5gr
cebolla 5gr
sal 1gr

el producto pollo desmechado se saca del inventario (se compra procesado y desmechado)

Cómo es la estructura de las tablas para ingresar la receta y cómo consulto, por ejemplo la receta detallada hasta el ultimo nivel?.

informe detallado de cuanto me cuesta fabricar un pastel:

Item Costo
===================================================
pastel en hojaldre 1500
masa1 250
harina 5gr 200
agua 0.3ml 20
sal 1gr 30
guiso 350
tomate 5gr 150
cebolla 5gr 170
sal 1gr 30
pollo 400
mano de obra 500
Responder Con Cita
  #5  
Antiguo 03-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
¿Estas solicitando que alguien te haga el sistema?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 03-09-2004
aurafern aurafern is offline
Miembro
 
Registrado: dic 2003
Posts: 34
Poder: 0
aurafern Va por buen camino
Cita:
Empezado por jachguate
¿Estas solicitando que alguien te haga el sistema?
No espero que me hagan el sistema, solicito una ayuda sobre un procedimiento que creo que es recursivo pero la o las tablas donde voy a consultar deben estar creadas de la manera que no he encontrado. Por eso trate de ser lo mas clara posible para conseguir la respuesta precisa, de ustedes que saben mucho a cerca de lo que yo todavía no sé
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:52:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi