crear procedimiento (rutina) en mysql via neobbokdbpro - Forum

Forum Navigation
You need to log in to create posts and topics.

crear procedimiento (rutina) en mysql via neobbokdbpro

Hola!, he estado tratando de crear un procedimiento (rutina) via neobbok win, pero no logro llevarlo a cabo. Si escribo el siguiente procedimiento en el webgui de phpmyadmin, este se ejecuta correctamente y crea el stored procedure (rutina):

delimiter //
create procedure insertar_express()
begin
set @express=(select coalesce(max(folio),0) from express);
if @express<200 then insert into express value ();
else set @express=-1;
end if;
end //
delimiter ;

Pero no puedo lograr el mismo resultado con neobook win, con el comando dbpExecSQL.

Agradeciendo de antemano las sugerencias.

Revisa la accion:

dbpExecProc "DB1" "" ""

ejecuta stored procedures.

Funciona, pero es mucho mas lento que si lo hicieras en php, y luego  descargaras el resultado.

mi 0.01

Hola David!, gracias por tu respuesta, pero lo que deseo es que el programa que estoy desarrollando en neobook win busque si esta presente la rutina en la base de datos, y si esta no se encuentra la genere en la base de datos. Todos los pasos funcionan bien excepto el de generar la rutina (stored procedure).

Yo directamente no verifico, la elimino  si es que existe. No hace problema, lo ejecutas en el starting de la app. Te paso las 2 lineas de codigo que uso, tanto para eliminar el procedimiento almacenado como para crear. Estas lineas funcionan correctamente y las tengo andando el el programa. Te va a servir de ejemplo. Debes copiar tal cual esta aqui y abrir con doble clic en el editor de codigos de Visualneo win. Saludos

dbpExecSQL "Ventas 2.0" "DROP PROCEDURE IF EXISTS VENTAS_vender_producto|" ""

dbpExecSQL "Ventas 2.0" "CREATE PROCEDURE VENTAS_vender_producto(|    IN cantidad_decimales INT,|    IN id_empleado INT,|    IN id_cliente INT,	|    IN elemento_a_ingresar varchar(255),|    IN nro_grupo INT,|	#IN actividad_anexo_nro INT,|    IN listas_precios_activo varchar(4),|	IN nro_lista_precios int,|    IN agrupar_detalle varchar(2),|    IN realinear_precios varchar(10),	|    IN agregar_categoria varchar(2),|    IN agregar_subcategoria varchar(2),|    IN agregar_marca varchar(2),|    IN agregar_caracteristicas varchar(2),|    IN agregar_numeracion varchar(2),|	OUT estado varchar(255),|	OUT id_prod int,|	OUT id_det int,|	OUT subtotal varchar(120),|	out final_descripcion VARCHAR(255),|	OUT final_precio_unitario FLOAT,|	OUT final_cantidad FLOAT,|	OUT final_costo FLOAT,|	OUT final_gasto FLOAT,|	OUT final_gasto_fijo FLOAT,|	OUT final_ganancia FLOAT,|	OUT final_iva FLOAT,|	OUT final_iva_fiscal FLOAT,|	OUT final_iva_0 VARCHAR(2),|	OUT final_usa_balanza VARCHAR(2),|	OUT final_lista_rapida VARCHAR(2),|	OUT final_codigo VARCHAR(250)    |	)|BEGIN|	#Se definene las variables|		#Datos primarios|			DECLARE prod_id INT;|			DECLARE prod_categoria VARCHAR(250);|			DECLARE prod_subcategoria VARCHAR(250);|			DECLARE prod_marca VARCHAR(250);|			DECLARE prod_caracteristicas VARCHAR(250);|			DECLARE prod_precio_costo FLOAT;|			DECLARE prod_cantidad FLOAT;|			DECLARE prod_usa_balanza VARCHAR(2);|			DECLARE prod_lista_rapida VARCHAR(2);|			DECLARE prod_codigo VARCHAR(250);|		#Valores de precio|			DECLARE precio_iva FLOAT;|			DECLARE precio_iva_$ FLOAT;|			#DECLARE precio_gasto FLOAT;|			DECLARE precio_gasto_$ FLOAT;|			DECLARE precio_gasto_fijo FLOAT;|			#DECLARE precio_ganancia FLOAT;|			DECLARE precio_ganancia_$ FLOAT;|			DECLARE precio_neto_final FLOAT;|			DECLARE precio_bruto FLOAT;|		#Valores de precios final|			#DECLARE final_precio_unitario FLOAT;|			#DECLARE final_costo FLOAT;|			#DECLARE final_gasto FLOAT;|			#DECLARE final_ganancia FLOAT;|			#DECLARE final_iva FLOAT;|			#DECLARE final_iva_fiscal FLOAT;|			#DECLARE final_iva_0 VARCHAR(2);|		#Otros|			DECLARE descripcion VARCHAR (250);|			DECLARE adicional_iva FLOAT;|			DECLARE corregir VARCHAR(250);|			DECLARE parte1 VARCHAR(250);|			DECLARE unidad VARCHAR(250);|			DECLARE id_detalle_encontrado INT;|			DECLARE abortar BOOL;|	|	SET abortar = FALSE;|	#Se busca el código en la lista y se asignan datos primarios ------------- CORRECTO ------------|		SELECT |			Productos_2.Lista.ID, |			Productos_2.Lista.CATEGORIA, |			Productos_2.Lista.SUBCATEGORIA, |			Productos_2.Lista.MARCA,|			Productos_2.Lista.CARACTERISTICAS,|			TRUNCATE( Productos_2.Lista.PRECIO_COSTO, cantidad_decimales),|			Productos_2.Lista.CANTIDAD_EXISTENTE,|			Productos_2.Lista.USA_CODIGO_BALANZA,|			Productos_2.Lista.LISTA_RAPIDA,|			Productos_2.Lista.CODIGO				|			INTO |				prod_id, |				prod_categoria, |				prod_subcategoria,|				prod_marca,|				prod_caracteristicas, |				prod_precio_costo,|				prod_cantidad,|				prod_usa_balanza,|				prod_lista_rapida,|				prod_codigo|			FROM Productos_2.lista |			WHERE Productos_2.Lista.CODIGO = elemento_a_ingresar;|	#Se define la descripcion|		#Categoria|			if agregar_categoria = 'Si' then|				if descripcion is null then|					SET descripcion = prod_categoria;|				else|					SET descripcion = CONCAT(descripcion,' ',prod_categoria);|				end if;|			end if;|		#SubCategoria|			if agregar_subcategoria = 'Si' then|				if descripcion is null then|					SET descripcion = prod_subcategoria;|				else|					SET descripcion = CONCAT(descripcion,' ',prod_subcategoria);|				end if;|			end if;|		#Marca|			if agregar_marca = 'Si' then|				if descripcion is null then|					SET descripcion = prod_marca;|				else|					SET descripcion = CONCAT(descripcion,' ',prod_marca);|				end if;|			end if;|		#Caracteristicas|			if agregar_caracteristicas = 'Si' then|				if descripcion is null then|					SET descripcion = prod_caracteristicas;|				else|					SET descripcion = CONCAT(descripcion,' ',prod_caracteristicas);|				end if;|			end if;|		#Numeracion|			if agregar_numeracion = 'Si' then|				SET descripcion = CONCAT(prod_id,' - ',descripcion);|			end if;||	#Si hay producto se continua|		IF prod_id is null then|			SET estado = 'false';|			SET abortar = TRUE;|		else|			#Se verifica si es codigo de balanza|				if prod_usa_balanza = 'Si' then|					SET estado = 'false';|					SET abortar = TRUE;			|				End if;|			IF abortar <> TRUE THEN|				#Se indica el resultado|					SET final_descripcion = descripcion;|					SET final_usa_balanza = prod_usa_balanza;|					SET final_codigo = prod_codigo;|					SET final_lista_rapida = prod_lista_rapida;|					SET final_cantidad = prod_cantidad;|					SET estado = 'True';|					SET id_prod = prod_id;            |				#Se procede segun lista de precios este activa|					if listas_precios_activo = 'True' then|						#Se obtienen los datos de la lista de precios ------------- CORRECTO ------------|							SELECT|								TRUNCATE( Productos_2.Precios.IVA, cantidad_decimales) ,|								TRUNCATE( Productos_2.Precios.IVA_$, cantidad_decimales) ,|								TRUNCATE( Productos_2.Precios.GASTO_$, cantidad_decimales) ,|								TRUNCATE( Productos_2.Precios.GASTO_FIJO, cantidad_decimales) ,|								TRUNCATE( Productos_2.Precios.GANANCIA_$, cantidad_decimales) ,|								TRUNCATE( Productos_2.Precios.PRECIO_NETO_FINAL, cantidad_decimales) ,|								TRUNCATE( Productos_2.Precios.PRECIO_BRUTO, cantidad_decimales)|								INTO|									precio_iva,|									precio_iva_$,|									precio_gasto_$,|									precio_gasto_fijo,|									precio_ganancia_$,|									precio_neto_final,|									precio_bruto|								FROM|									Productos_2.Precios|								WHERE|									Productos_2.Precios.PRODUCTO_Nº = prod_id|									AND|									Productos_2.Precios.LISTA_PRECIOS_Nº = nro_lista_precios;|						#se asignan valores de precio|							SET final_precio_unitario = precio_neto_final;|							SET final_costo = prod_precio_costo;|							SET final_gasto = precio_gasto_$;|							SET final_gasto_fijo = precio_gasto_fijo;|							SET final_ganancia = precio_ganancia_$;|							SET final_iva_fiscal = precio_iva;|							SET final_iva = 0; #Si o si se obtiene al final|					else|						#se asignan valores de precio y se verifica el IVA ------------- CORRECTO ------------|							SET final_precio_unitario = prod_precio_costo ; |							SET final_costo = 0;|							SET final_gasto = 0;|							SET final_gasto_fijo = 0;|							SET final_ganancia = 0;|							SET final_iva_fiscal = 0;|							SET final_iva = 0;|					end if;|				#Se verifica si se realinea el precio ------------- CORRECTO ------------|					IF realinear_precios = 'a $ 5' Then|						SET parte1 = (SELECT SUBSTRING_INDEX( CAST(final_precio_unitario AS CHAR) ,'.',1));|						SET unidad = (SELECT SUBSTRING(parte1, LENGTH(parte1), 1) );|						SET corregir = 'True';|						IF unidad = 0 THEN|							SET corregir = 'False';|						END IF;|						IF unidad = 5 THEN|							SET corregir = 'False';|						END IF;|						If corregir = 'True' then|							if unidad > 0 then|								if unidad > 5 then|									SET final_precio_unitario = (parte1 - unidad + 10);|								else|									SET final_precio_unitario = (parte1 - unidad + 5);|								end if;|							else|								SET final_precio_unitario = (parte1 - unidad);|							end if;|						else|							SET final_precio_unitario = parte1;|						End if;|					end if;|					IF realinear_precios = 'a $ 10' Then|						SET parte1 = (SELECT SUBSTRING_INDEX( CAST(final_precio_unitario AS CHAR) ,'.',1));|						SET unidad = (SELECT SUBSTRING(parte1, LENGTH(parte1), 1) );|						SET corregir = 'True';|						IF unidad = 0 THEN|							SET corregir = 'False';|						END IF;|						If corregir = 'True' then|							if unidad > 0 then|								SET final_precio_unitario = (parte1 - unidad + 10);|							Else|								SET final_precio_unitario = (parte1 - unidad);|							end if;|						ELSE|							SET final_precio_unitario = parte1;|						END IF;|					end if;|				#Se verifica el IVA ------------- CORRECTO ------------|					SET final_iva_0 = 'No';|					if final_iva_fiscal is null then|						SET final_iva_fiscal = 0;|					end if;|					if final_iva_fiscal = 0 then|						#Se ubica en datos adicionales|							SET final_iva_fiscal = (SELECT IVA FROM Productos_2.Adicional WHERE Productos_2.Adicional.PRODUCTO_Nº = prod_id);|							SET final_iva_0 = (SELECT IVA_0 FROM Productos_2.Adicional WHERE Productos_2.Adicional.PRODUCTO_Nº = prod_id);|							if final_iva_fiscal is null then|								SET final_iva_fiscal = 0;|							end if;|							if final_iva_fiscal = 0 then|								if final_iva_0 is null then|									set final_iva_fiscal = 21;|									set final_iva_0 = 'No';|								else|									if final_iva_0 <> 'Si' then|										set final_iva_fiscal = 21;|										set final_iva_0 = 'No';|									end if;|								end if;|							else|								set final_iva_0 = 'No';|							end if;|					end if;|				#Se calcula el IVA MONTO ------------- CORRECTO ------------|					SET final_iva = final_precio_unitario - ( final_precio_unitario / (1 + (final_iva_fiscal / 100) ) );|				#Se verifican decimales|				  SET final_precio_unitario = TRUNCATE( final_precio_unitario, cantidad_decimales);|				  SET final_costo = TRUNCATE( final_costo, cantidad_decimales);|				  SET final_gasto = TRUNCATE( final_gasto, cantidad_decimales);|				  SET final_gasto_fijo = TRUNCATE( final_gasto_fijo, cantidad_decimales);|				  SET final_ganancia = TRUNCATE( final_ganancia, cantidad_decimales);|				  SET final_iva_fiscal = TRUNCATE( final_iva_fiscal, cantidad_decimales);|				  SET final_iva = TRUNCATE( final_iva, cantidad_decimales);|			END IF;|		end if;|		IF abortar <> TRUE THEN|			#Se continua segun hay o no que agrupar|				if agrupar_detalle = 'Si' Then|					 #Se busca en la lista|						SET id_detalle_encontrado = (|														SELECT Ventas_2.Detalles.ID |														FROM Ventas_2.Detalles |														WHERE |																Ventas_2.Detalles.GRUPO_Nº = nro_grupo|																AND|																Ventas_2.Detalles.PRODUCTO_Nº = prod_id|														LIMIT 1|													);||						if id_detalle_encontrado is null then|							#Se añade un detalle con CANTIDAD 1|								INSERT INTO Ventas_2.Detalles|								SET|									Ventas_2.Detalles.CANTIDAD = 1,|									#Ventas_2.Detalles.PRODUCTO_CANTIDAD_EXISTENTE = ,|									Ventas_2.Detalles.DESCRIPCION = descripcion,|									Ventas_2.Detalles.PRECIO_UNITARIO = TRUNCATE(final_precio_unitario, cantidad_decimales),|									#Ventas_2.Detalles.DESCUENTO = ,|									Ventas_2.Detalles.IMPORTE = TRUNCATE(final_precio_unitario, cantidad_decimales),|									Ventas_2.Detalles.COSTO = TRUNCATE(final_costo, cantidad_decimales),|									Ventas_2.Detalles.GASTO = TRUNCATE(final_gasto, cantidad_decimales),|									Ventas_2.Detalles.GANANCIA = TRUNCATE(final_ganancia, cantidad_decimales),|									Ventas_2.Detalles.IVA = TRUNCATE(final_iva, cantidad_decimales),|									Ventas_2.Detalles.IVA_FISCAL = TRUNCATE(final_iva_fiscal, cantidad_decimales),|									Ventas_2.Detalles.IVA_0 = final_iva_0,|									Ventas_2.Detalles.ESTADO = 'Pendiente',|									Ventas_2.Detalles.FECHA = Now(),|									Ventas_2.Detalles.HORA = Now(),|									Ventas_2.Detalles.GRUPO_Nº = nro_grupo,|									#Ventas_2.Detalles.ACTIVIDAD_ANEXO_Nº = actividad_anexo_nro,|									Ventas_2.Detalles.ACTIVIDAD_TIPO = 'venta',|									Ventas_2.Detalles.PRODUCTO_Nº = prod_id,|									Ventas_2.Detalles.LISTA_PRECIOS_Nº = nro_lista_precios,|									Ventas_2.Detalles.CLIENTE_Nº = id_cliente,|									Ventas_2.Detalles.EMPLEADO_Nº = id_empleado;|									#Ventas_2.Detalles.TRANSPORTE_Nº = ;|							#RESULTADO|								SET estado = 'True';|								SET id_prod = prod_id;|								SET id_det = (|												SELECT Ventas_2.Detalles.ID |												FROM Ventas_2.Detalles |												WHERE |														Ventas_2.Detalles.GRUPO_Nº = nro_grupo|														AND|														Ventas_2.Detalles.PRODUCTO_Nº = prod_id|												LIMIT 1|											);|						else|							#CANTIDAD + 1 /// Se recalculan los valores de forma inversa + 1|								UPDATE Ventas_2.Detalles|								SET|									Ventas_2.Detalles.COSTO = TRUNCATE( (Ventas_2.Detalles.COSTO / Ventas_2.Detalles.CANTIDAD) * (Ventas_2.Detalles.CANTIDAD + 1) , cantidad_decimales) ,|									Ventas_2.Detalles.GASTO = TRUNCATE( (Ventas_2.Detalles.GASTO / Ventas_2.Detalles.CANTIDAD) * (Ventas_2.Detalles.CANTIDAD + 1) , cantidad_decimales) ,|									Ventas_2.Detalles.GANANCIA = TRUNCATE( (Ventas_2.Detalles.GANANCIA / Ventas_2.Detalles.CANTIDAD) * (Ventas_2.Detalles.CANTIDAD + 1) , cantidad_decimales) ,|									Ventas_2.Detalles.IVA = TRUNCATE( ( if ( Ventas_2.Detalles.DESCUENTO > 0 ,|																(( Ventas_2.Detalles.PRECIO_UNITARIO - (( Ventas_2.Detalles.PRECIO_UNITARIO )*( Ventas_2.Detalles.DESCUENTO / 100))) |																	- ( ( Ventas_2.Detalles.PRECIO_UNITARIO - (( Ventas_2.Detalles.PRECIO_UNITARIO )*( Ventas_2.Detalles.DESCUENTO / 100))) / (1 + (Ventas_2.Detalles.IVA_FISCAL / 100) ) |																	)|																)  * (Ventas_2.Detalles.CANTIDAD + 1), |																( Ventas_2.Detalles.PRECIO_UNITARIO - ( Ventas_2.Detalles.PRECIO_UNITARIO / (1 + (Ventas_2.Detalles.IVA_FISCAL / 100) ) ) ) * (Ventas_2.Detalles.CANTIDAD + 1) ) ) , cantidad_decimales ),|									#Ventas_2.Detalles.IMPORTE = Ventas_2.Detalles.PRECIO_UNITARIO * (Ventas_2.Detalles.CANTIDAD + 1),|									Ventas_2.Detalles.IMPORTE = TRUNCATE( ( If (Ventas_2.Detalles.DESCUENTO > 0,|                                          ((Ventas_2.Detalles.CANTIDAD + 1) * Ventas_2.Detalles.PRECIO_UNITARIO) - ( (Ventas_2.Detalles.DESCUENTO / 100) * ((Ventas_2.Detalles.CANTIDAD + 1) * Ventas_2.Detalles.PRECIO_UNITARIO) ),|                                          ((Ventas_2.Detalles.CANTIDAD + 1) * Ventas_2.Detalles.PRECIO_UNITARIO) ) ) , cantidad_decimales) ,|									Ventas_2.Detalles.CANTIDAD = TRUNCATE( Ventas_2.Detalles.CANTIDAD + 1 , cantidad_decimales)|								WHERE|									Ventas_2.Detalles.ID = id_detalle_encontrado;|							#RESULTADO|								SET estado = 'True';|								SET id_prod = prod_id;|								SET id_det = id_detalle_encontrado;|						end if;|				Else|					#Se añade un detalle con CANTIDAD 1|						INSERT INTO Ventas_2.Detalles|						SET|							Ventas_2.Detalles.CANTIDAD = 1,|							#Ventas_2.Detalles.PRODUCTO_CANTIDAD_EXISTENTE = ,|							Ventas_2.Detalles.DESCRIPCION = descripcion,|							Ventas_2.Detalles.PRECIO_UNITARIO = TRUNCATE( final_precio_unitario , cantidad_decimales ),|							#Ventas_2.Detalles.DESCUENTO = ,|							Ventas_2.Detalles.IMPORTE = TRUNCATE( final_precio_unitario , cantidad_decimales ),|							Ventas_2.Detalles.COSTO = TRUNCATE( final_costo , cantidad_decimales ),|							Ventas_2.Detalles.GASTO = TRUNCATE( final_gasto , cantidad_decimales ),|							Ventas_2.Detalles.GANANCIA = TRUNCATE( final_ganancia , cantidad_decimales ),|							Ventas_2.Detalles.IVA = TRUNCATE( final_iva , cantidad_decimales ),|							Ventas_2.Detalles.IVA_FISCAL = TRUNCATE( final_iva_fiscal , cantidad_decimales ),|							Ventas_2.Detalles.IVA_0 = final_iva_0,|							Ventas_2.Detalles.ESTADO = 'Pendiente',|							Ventas_2.Detalles.FECHA = Now(),|							Ventas_2.Detalles.HORA = Now(),|							Ventas_2.Detalles.GRUPO_Nº = nro_grupo,|							#Ventas_2.Detalles.ACTIVIDAD_ANEXO_Nº = actividad_anexo_nro,|							Ventas_2.Detalles.ACTIVIDAD_TIPO = 'venta',|							Ventas_2.Detalles.PRODUCTO_Nº = prod_id,|							Ventas_2.Detalles.LISTA_PRECIOS_Nº = nro_lista_precios,|							Ventas_2.Detalles.CLIENTE_Nº = id_cliente,|							Ventas_2.Detalles.EMPLEADO_Nº = id_empleado;|							#Ventas_2.Detalles.TRANSPORTE_Nº = ;|					#RESULTADO|						SET estado = 'True';|						SET id_prod = prod_id;|						SET id_det = (|										SELECT Ventas_2.Detalles.ID |										FROM Ventas_2.Detalles |										WHERE |												Ventas_2.Detalles.GRUPO_Nº = nro_grupo|												AND|												Ventas_2.Detalles.PRODUCTO_Nº = prod_id|										ORDER BY Ventas_2.Detalles.ID DESC |										LIMIT 1|									);|				End if;|			#Se obtiene el subtotal|				#SET subtotal =  ( SELECT truncate(SUM(Ventas_2.Detalles.IMPORTE) ,3) AS SUBTOTAL FROM Ventas_2.Detalles WHERE Ventas_2.Detalles.GRUPO_Nº = nro_grupo);|				#SET subtotal =  ( SELECT CAST( SUM(Ventas_2.Detalles.IMPORTE) AS DECIMAL(7, 2) ) AS SUBTOTAL FROM Ventas_2.Detalles WHERE Ventas_2.Detalles.GRUPO_Nº = nro_grupo);|				SET subtotal =  ( SELECT TRUNCATE( SUM(Ventas_2.Detalles.IMPORTE), cantidad_decimales) AS SUBTOTAL FROM Ventas_2.Detalles WHERE Ventas_2.Detalles.GRUPO_Nº = nro_grupo);|		END IF;|END|" ""

 

MrCubeFan has reacted to this post.
MrCubeFan

Ten en cuenta que todos los IN son parametros de entrada y todos los OUT son parametros de salida, los # son comentarios, y se ejecuta con el siguiente ejemplo:

dbpExecSQL "Ventas 2.0" "CALL VENTAS_vender_producto(|	[@ VENTAS-Cantidad de decimales],|	[@ GLOBAL-Mi Nº de empleado],			#Empleado|	[Ventas 2.0.Clientes.ID], 			#Cliente|	'[VENTAS-Ingreso]',				#Elemento|	[Ventas 2.0.Actividades.GRUPO_Nº],		#Nro de grupo|	'[@ PRODUCTOS-Listas de precios activo]', 	#Lista de precios activo?|	[Productos 2.0.Listas_precios.ID],		#Nro de listas de precios|	'[@ VENTAS-Agrupar productos]', 		#Agrupar detalle|	'[@ PRODUCTOS-Realinear precios]',		#Realinear precio|	'[@ VENTAS-Incluir Categoria]',|	'Si',						#Incluir subcategoria|	'[@ VENTAS-Incluir marca]',|	'[@ VENTAS-Incluir Caracteristicas]',|	'[@ VENTAS-Incluir Nº de producto]',|	@resultado,|	@id_prod,|	@id_det,|	@subtotal,|	@descripcion,	#Descripcion|	@precio_unitario,	#Precio Unitario	|	@cantidad,			#Cantidada existente|	@Costo,		#Costo|	@Gasto,		#Gasto|	@Gasto_fijo,		#Gasto fijo|	@Ganancia,	#Ganancia|	@Iva,		#IVA $|	@Iva_fiscal,	#IVA Fiscal %|	@Iva_0,		#IVA 0cero|	@Usa_balanza,|	@lista_rapida,|	@codigo)|" ""

*** Todo lo que tiene @ son variables de mysql donde se guardan los OUT. Esto se debe leer o capturar de la siguiente forma:

dbpExecSQL "Ventas 2.0" "SELECT |	@resultado AS RESULTADO, |	@id_prod AS ID_PROD, |	@id_det AS ID_DET, |	@subtotal AS SUBTOTAL,|	@descripcion AS DESCRIPCION, |	@precio_unitario AS PRECIO, |	@cantidad AS CANTIDAD_EXISTENTE, |	@Costo AS COSTO, |	@Gasto AS GASTO,|	@Gasto_fijo AS GASTO_FIJO,|	@Ganancia AS GANANCIA, |	@Iva AS IVA, |	@Iva_fiscal AS IVA_FISCAL, |	@Iva_0 AS IVA_0, |	@usa_balanza AS USA_BALANZA, |	@lista_rapida AS LISTA_RAPIDA, |	@codigo AS CODIGO" "resultado"

dbpopentable "Ventas 2.0" "Resultado" ""

Esto te va a servir porque es un caso real de uso de la inserción de un producto a una lista de detalles de una venta, es muy complejo pero tenes casi todos los recursos usados en un procedimiento almacenado. La ventaja que tienen los procedimientos almacenados es que lo que procesa VisualNEO en 3 segundos, MySQL lo procesa en 300 ms. Pero debes saber programar en el lenguaje del procedimiento almacenado.

MrCubeFan has reacted to this post.
MrCubeFan

alangonzalez91, muchas gracias por tu respuesta!!, era justamente lo que necesitaba!, pude crear el procedimiento en cuestión y otros 3. El problema era como se declaraba el procedimiento en neobook. Tomando como referencia el código que amablemente posteaste modifiqué mi código, quedando así:

CREATE PROCEDURE insertar_express(
OUT express_folio int
)
BEGIN
SET express_folio = (select coalesce(max(folio),0) from express);
IF express_folio<200 then
INSERT INTO express value ();
SET express_folio = (select max(folio) from express);
ELSE
SET express_folio=-1;
end if;
END

Muchas gracias por tu tiempo y respuesta, ahora puedo seguir adelante con mi proyecto!.

alangonzalez91 has reacted to this post.
alangonzalez91