Algo nuevo o es Error de TDolphin.?

Algo nuevo o es Error de TDolphin.?

Postby joseluisysturiz » Mon Oct 13, 2014 4:55 pm

Saludos, normalmente defino mis VAR con un switch de valor logico para controlar si es registro nuevo o es modificado, ejemplo:

aVar[1] := IIF( lNew, 0, oQry:campo1 ) // campo de tipo numero (int, double, decimal, etc)
aVAr[2] := IIF( lNew, space(10), oQry:campo2) // campo de tipo string
aVar[3] := IIF( lnew, date(), oQry:campo3 ) campo tipo fecha

hasta alli todo esta bien, el problema esta ocurriendo cuando grabo en los campos y el valor de la VAR sigue siendo cero(0) o esta vacio, ya que no se graba en el campo el valor cero de la VAR sino se graba como NULL al igual que si la VAR esta vacia, esto hace que cuando voy a modificar mi campo y la VAR toma el valor del campo de la tabla, se inicia en NULL y asi no me permite editarlo, esto esta sucediendo en la ultima actualizacion de la LIB de TDolphin ya que por casualidad tenia una LIB vieja y alli si trabaja bien, el problema es que tengo sistemas de clientes donde valido si el valor del campo es cero o mayor que cero al igual que los tipos fechas y ahora esas validaciones me arrojan error ya que el valor del campo numerico es NULL y no cero como lo mande guardar....para los nuevos sistemas estoy haciendo directamente en la tabla que el valor por default sera CERO, pero tengo sistemas que tiene full datos y que solo funciona con los registros nuevos. Tambien tuve que cambiar la forma de iniciar mis VAR de la siguiente manera

aVar[n] ;= iif( lNew .or. empty(oqry:campo), 0, oqry:campo)

nose si a alguno le sucede lo mismo o si es un problema mio en mis tablas o si es algun cambio que le hayan hecho a la TDolphin, agradezo sus comentarios, sugerencias y observaciones, gracias, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Algo nuevo o es Error de TDolphin.?

Postby acuellar » Mon Oct 13, 2014 5:22 pm

Yo pensé que era así de normal que grababa NULL en los campos VARCHAR, por lo que tuve que ponerle el carácter ASCII 255 para grabe y luego poder editarlo
y los campos fecha le gurado '01-01-1001'
Code: Select all  Expand view

   If ClipValue2SQL(oQry:FECHANAC)="NULL"
     oQry:FECHANAC:=ctod('01-01-1001')
   Endif
     oQry:NOMBRE:=If(Empty(oQry:NOMBRE),Chr(255), )
 


Así funciona. Claro que no debiera ser así.

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Algo nuevo o es Error de TDolphin.?

Postby joseluisysturiz » Mon Oct 13, 2014 5:44 pm

Saludos, pues no acuellar, eso que haces tambien lo hice, pero es muy tedioso, se puede hacer al principio de inicializacion de las VAR o cuando se va a grabar como lo haces, pero originalmente lo hacia bien sin hacer tantas validaciones, habria que ver que nos comenta Daniel, si se debe trabajar asi de ahora en adelante, si es algun detalle que se paso en la ultima version o alguna otra sugerencia, es bueno saber que no es a mi el unico que lepasa, crei era algo en mis sistemas, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Algo nuevo o es Error de TDolphin.?

Postby sysctrl2 » Mon Oct 13, 2014 11:10 pm

En los campos CHAR y NUMERICOS
cuando se crea la tabla,
debes de poner valores deault,

CAMPO 1 DECIMAL( 10, 2 ) DEFAUL 0.00

saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Algo nuevo o es Error de TDolphin.?

Postby joseluisysturiz » Tue Oct 14, 2014 12:46 am

Si SYSCTRL, asi es que lo estoy haciendo ahora en los sistemas nuevos, pero antes no hacia falta iniciar en la tabla en cero los campos numericos, asi he resuelto ese tipo de campos, pero que me dices sobre los campor VARCHAR, aunque los ponga por default string vacio (Empty String) al guardarlos sin valor, es decir que la VAR queda vacia, igual los guarda NULL al igual que los campos FECHAS, por los momentos hay que hacer truquitos para evitar los errores de validaciones, gracias y saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Algo nuevo o es Error de TDolphin.?

Postby Willi Quintana » Tue Oct 14, 2014 1:42 pm

Hola amigos,,,
Llevo trabajando con MySQL desde el 2005, con diversas herramientas, pero lo mas importante esta en el diseño de las tablas, el uso correcto de los tipos de datos, la diferencia entre char() y varchar(), la longitud de los campor numéricos, los índices etc etc, talvez estamos acostumbrados a las facilidades que nos brinda las dbfs, pero en SQL las cosas con distintas, mi consejo es que todos los campor de una tabla en SQL deben ser indicadas con valores por defecto,,, de otro modo pede surgir un valor nulo que es distinto a vacio o cero.
Code: Select all  Expand view

CREATE TABLE `kardexcliente` (
`registro` int(10) unsigned NOT NULL auto_increment,
`cod_producto` varchar(20) NOT NULL default '',
`modo` char(1) default '',
`fecha_doc` date NOT NULL default '0000-00-00',
`tipo` varchar(2) default ' ',
`documento` varchar(22) NOT NULL default '',
`cantidad` decimal(15,3) default '0.000',
`saldo` decimal(15,3) default '0.000',
`costo` decimal(15,3) default '0.000',
`cod_prov_clie` varchar(15) default '' COMMENT 'ruc o dni del proveedor o del cliente destino',
`cod_operador` varchar(10) default '',
`fecha_operacion` date NOT NULL default '0000-00-00',
`hora_operacion` varchar(8) NOT NULL default '00:00:00',
`precio_venta` decimal(12,3) default '0.000',
`estado` char(1) default ' ',
`concre` int(10) unsigned NOT NULL default '1',
`glosa` varchar(45) default '',
`num_pedido` varchar(14) NOT NULL default '              ',
`fecha_pedido` date NOT NULL default '0000-00-00',
`cod_vendedor` varchar(5) NOT NULL default '',
`guiaremision` VARCHAR(22) DEFAULT '',
`cod_almacen` VARCHAR(2) DEFAULT '01',            
`fecha_doc_guia` date NOT NULL default '0000-00-00',
`fecha_ope_guia` date NOT NULL default '0000-00-00',
`hora_ope_guia` varchar(8) NOT NULL default '00:00:00',
PRIMARY KEY  (`registro`,`cod_producto`),
KEY `Producto` (`cod_producto`),
KEY `Documento` (`documento`),
KEY `Operador` (`cod_operador`),
KEY `Fecha_Documento` (`fecha_doc`),
KEY `Fecha_Operacion` (`fecha_operacion`),
KEY `Vendedor` (`cod_vendedor`),
KEY `Pedido` (`num_pedido`),
KEY `FechaPedido` (`fecha_pedido`),
KEY `Guia` (`guiaremision`),
KEY `Almacen` (`cod_almacen`)
ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Enrico Maria Giordano and 83 guests