![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
![]() Lo de "Ya probe el update directamente sobre ib-expert y no hace los cambios", no nos sirve de mucho, más que nada porque TIENE que hacer los cambios, salvo que hagas algo mal, para eso te pedimos el código completo de ese procedimiento almacenado y de tu código haciendo la llamada desde el ibexpert, por ejemplo, o desde donde lo pruebes y no te funcione.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
||||
|
||||
|
ok Cuando digo que no hace nada, es porque lo ejecuto y no hace los cambios necesarios. Esta es la linea que ejecuto directamente sobre ibexpert:
Y el codigo delphi es que la esta expuesto en el post anterior. Es logico que dudes de las pruebas que me indicas, pero sencillamente nos las hace. Ok mi pregunta es: a partir de esta linea directa debo de hacer el procedimiento almacenado y ejecutarlo directamente desde ibexpert, pero si es solamente una linea y no me funciona?, que se puede esperar de un procedimiento lamacenado, es decir, quiero decir, que la instruccion directa es sumamente sencilla y por ende el procedimiento deberia ser de la misma manera y logica, pero claro, con su sintaxis respectiva. Entonces estoy atascado en la instruccion directa y el codigo delphi, que tambien esta super sencillo y cuando se ejecuta no logra hacer los cambios. ![]() Realmente no veo el problema para que no me de los resultados deseados, simplemente no veo el error. ![]() Gracias por su atencion... Ah y claro que necesito resolver esta situacion... ![]() |
|
#3
|
||||
|
||||
|
Esta es la instruccion que ejecuto directamente desde delphi:
|
|
#4
|
||||
|
||||
|
Mas informacion:
.- Utilizo Firebird 1.5 sobre un servidor Linux Ubuntu 8.04. .- Las estaciones de trabajo esta corriendo sobre win xp .- EL programa esta hecho en delphi 7 con todos los componentes basicos (no tercertos). .- Utilizo los components IBX para que trae delphi 7 para accesar la data. Gracias. |
|
#5
|
||||
|
||||
|
ja ja ja Pido disculpas por no saber expresarme mejor, pero creeme lo intento. ja ja ja
![]() |
|
#6
|
||||
|
||||
|
jajaja... ahora un método nuevo, con este ya van 3 formas distintas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
||||
|
||||
|
Es que en cada uno de las 3 formas... no nos has dado toda la información.
De todas formas lo de emplear "Consumo", "Residencial", etc. es una muy mala idea porque influyen varios factores que pueden hacer que no funcione, si pones "consumo", por ejemplo, ya no funcionará, tampoco funcionará dependiendo del tipo de dato usado en crear el campo, que tampoco nos has puesto la estructura de la tabla. Por ejemplo, si usas un campo de cadena fija, digamos que un char(20) y almacenas el valor "Consumo" que tiene 7 caracteres, realmente no se está almacenando "Consumo" sino "Consumo ", así que cuando vas a hacer el filtro por ese campo, nunca te funcionará. Si usas varchar(20) no habrá problema porque él sólo quita los espacios... o no, depende de la versión de firebird/interbase que uses, porque en las versiones antiguas, la firebird 1.0 todavía no tenía solucionado el fallo de que los varchar se guardaban también con los espacios. Estos son simples ejemplos de por lo qu einsistimos mucho que necesitamos mucha más información, lo más completa posible, para poder ayudar.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#8
|
||||
|
||||
|
Wow, cada vez uno aprende mas:
En la captura de datos se valida la entrada de los mismo, es decir, cuando defines el tipo de factura se validan: "Consumo" y/o "Servicios" Cualquiera de los dos, el usuario no lo escribe, solo lo selecciona. En lo que respecta a tipo de tarifa, igualemente valido que sea: "Residencial" o "Especial" o "Comercial" o "Industrial A" y "Industrial B". Igualmente como el anterior, el usuario no lo escribe, y solo lo selecciona. De esta manera estan almacenados en la base de datos. El tipo de datos en la base de datos para los dos campos es Varchar(10) y varchar (30) respectivamente. El sistema consiste en un sistema de facturacion del servicio de agua potable y tiene tres years funcionando, pero cada dia se le han agregado cosas nuevas. Desde el year pasado se le agrego los impuestos cuyo desgloce consiste en base imponible y cantidad excenta, eso es lo que estamos tratando de arreglar. Este es una peque#a explicacion de lo que hace el sistema. he realizado varias pruebas que no han resultado y solo he tenido ese problema con ella, he realizado varias pruebas con los ultimos cuatro meses y no he tenido exito. Tambien he realizado chequeos de otras transacciones de consulta que se activen fantasmalmente y no he encontrado nada. He filtrado la data con pocos registro y tampoco he tenido exito. Hast el momento se tiene 380000 registro en la tabla de facturacion que estamos manejando. Si quieren mas informacion hasta les puedo enviar la misma base de datos, para que realicen sus prueba. ![]() |
|
#9
|
||||
|
||||
|
Cita:
![]() Centrémonos en un método determinado, ¿te parece bien el procedimiento almacenado?, creo que es la mejor opción. Pon aquí el código completo del mismo y haremos una prueba desde el ibexpert. Además pon aquí el código completo de la estructura de la tabla, ok? ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#10
|
||||
|
||||
|
EL SP, me parece buenisimo:
Código SQL [-] SET TERM ^ ; CREATE PROCEDURE "UPDATE" ( X_TIPO_TARIFA VARCHAR(30), X_TIPO_FACTURA VARCHAR(10), X_MES INTEGER, X_YEAR INTEGER) AS begin update facturacion set base_imponible = cloaca where tipo_tarifa=:x_tipo_tarifa and tipo_factura=:x_tipo_factura and extract(month from fecha)=:x_mes and extract(year from fecha)=:x_year; update facturacion set excento = consumo_agua where tipo_tarifa=:x_tipo_tarifa and tipo_factura=:x_tipo_factura and extract(month from fecha)=:x_mes and extract(year from fecha)=:x_year; suspend; end^ SET TERM ; ^ GRANT SELECT,UPDATE ON FACTURACION TO PROCEDURE "UPDATE"; GRANT EXECUTE ON PROCEDURE "UPDATE" TO SYSDBA; ======================== Código:
/******************************************************************************/
/**** Generated by IBExpert 26/04/2010 07:19:48 p.m. ****/
/******************************************************************************/
SET SQL DIALECT 3;
SET NAMES NONE;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE FACTURACION (
ID_SUSCRIPTOR VARCHAR(30),
STATUS_FACTURA VARCHAR(15),
RUTA INTEGER,
NUMERO_FACTURA INTEGER,
NUMERO_FACTURA_A VARCHAR(30),
NUMERO_FACTURA_IMPRESA INTEGER,
CODIGO_SUSCRIPTOR INTEGER,
CODIGO_SUSCRIPTOR_A VARCHAR(30),
LECTURA_ANTERIOR INTEGER,
LECTURA_ACTUAL INTEGER,
CONSUMO NUMERIC(15,2),
FECHA_INICIO DATE,
FECHA_INICIO_A VARCHAR(20),
FECHA_FIN DATE,
FECHA_FIN_A VARCHAR(20),
FECHA_FACTURACION DATE,
FECHA_FACTURACION_A VARCHAR(20),
FECHA_VENCIMIENTO DATE,
FECHA_VENCIMIENTO_A VARCHAR(20),
MONTO_TARIFA NUMERIC(15,2),
MONTO_TARIFA_EXCESO NUMERIC(15,2),
ALICUOTA_IVA NUMERIC(15,2),
CARGO_FIJO NUMERIC(15,2),
CARGO_VARIABLE NUMERIC(15,2),
CARGO_EXCESO_CONSUMO NUMERIC(15,2),
CONSUMO_AGUA NUMERIC(15,2),
CLOACA NUMERIC(15,2),
PORCENTAJE_CLOACA NUMERIC(15,2),
MONTO_CONCEPTO NUMERIC(15,2),
MONTO_FACTURADO NUMERIC(15,2),
MONTO_IVA NUMERIC(15,2),
DEUDA_ANTERIOR NUMERIC(15,2),
TIPO_TARIFA VARCHAR(30),
ESTADO VARCHAR(20),
AVISO_CORTE VARCHAR(2),
FECHA_PAGO_FACTURA DATE,
FECHA_PAGO_FACTURA_A VARCHAR(20),
FORMA_PAGO VARCHAR(20),
PORCENTAJE_DESCUENTO NUMERIC(15,2),
MONTO_DESCUENTO NUMERIC(15,2),
DESCUENTO_AUTORIZADO VARCHAR(30),
NUMERO_CHEQUE VARCHAR(30),
CUENTA_CHEQUE VARCHAR(30),
NOMBRE_BANCO VARCHAR(30),
USUARIO VARCHAR(10),
FECHA DATE,
FECHA_A VARCHAR(10),
PRECIO_UNITARIO NUMERIC(15,2),
SUB_TOTAL NUMERIC(15,2),
CONTADOR INTEGER,
LITERAL_EXCENTO VARCHAR(10),
MONTO_PAGADO NUMERIC(15,2),
VUELTO NUMERIC(15,2),
NUMERO_TARJETA VARCHAR(30),
TIPO_TARJETA_CREDITO VARCHAR(30),
NOMBRE_BANCO_TARJETA VARCHAR(30),
TIPO_FACTURA VARCHAR(10),
RECIBO VARCHAR(2),
PRECIO NUMERIC(15,2),
BASE_IMPONIBLE NUMERIC(15,2),
FACTURAR_LOTE VARCHAR(10),
CODIGO_STATE_ACCOUNT VARCHAR(10),
EXCENTO NUMERIC(15,2),
STATUS_TARIFA VARCHAR(20),
CAMPO1 VARCHAR(50),
CAMPO2 VARCHAR(100),
STATUS_2 VARCHAR(30),
STATUS_3 VARCHAR(30),
STATUS VARCHAR(30),
CODIGO_LECTURA INTEGER,
PENDIENTES INTEGER
);
/******************************************************************************/
/**** Indices ****/
/******************************************************************************/
CREATE INDEX FACTURACION_CODIGO_CLIENTE ON FACTURACION (CODIGO_SUSCRIPTOR);
CREATE INDEX FACTURACION_IDX1 ON FACTURACION (DEUDA_ANTERIOR);
/* Fields descriptions */
DESCRIBE FIELD STATUS_FACTURA TABLE FACTURACION
'Si indica "Si" es que esta facturado';
DESCRIBE FIELD FECHA_INICIO TABLE FACTURACION
' fecha inicio de periodo a facturar';
DESCRIBE FIELD FECHA_FIN TABLE FACTURACION
' fecha fin de periodo a facturar';
DESCRIBE FIELD CARGO_FIJO TABLE FACTURACION
' cargo fijo para la tarifa comercial';
DESCRIBE FIELD CARGO_VARIABLE TABLE FACTURACION
'cargo variable tarifa comercial';
DESCRIBE FIELD CARGO_EXCESO_CONSUMO TABLE FACTURACION
' cargo consumo tarifa comercial';
DESCRIBE FIELD CONSUMO_AGUA TABLE FACTURACION
' consumo mas tarifa mensual';
DESCRIBE FIELD MONTO_CONCEPTO TABLE FACTURACION
' monto por concepto debito o credito de la facturacion mensual';
DESCRIBE FIELD MONTO_FACTURADO TABLE FACTURACION
' monto facturado es la suma de agua,cloaca, exceso, cargo fijo, debido o credito';
DESCRIBE FIELD ESTADO TABLE FACTURACION
'status operacional= 1 activo, 2 cortado, 3 suspendido';
DESCRIBE FIELD AVISO_CORTE TABLE FACTURACION
'Verdadero si y falso no';
/******************************************************************************/
/**** Privileges ****/
/******************************************************************************/
|
|
#11
|
||||
|
||||
|
perdon siempre se me salta este error:
Este es el procedimiento. Lo acabo de crear. |
|
#12
|
||||
|
||||
|
¿La tabla no tiene clave primaria?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Correccion de Sintaxis | sierraja | Firebird e Interbase | 9 | 28-10-2008 23:34:14 |
| Correccion ortografica | Iskariote0087 | Varios | 4 | 23-02-2008 10:42:09 |
| Una pequeña corrección | Faust | Varios | 1 | 07-07-2006 07:10:39 |
|