Login - 220 users online  


  
Foros


8
votos
La cantidad de votos diarios que tiene cada usuario es igual a la cantidad de bolitas del mismo.
Dale votos al thread para mantenerlo arriba en la home del sitio.
Averiguar lugares decimales de un campo con VB6 y ADO





Thread creado por avenger el 04/01/2012 01:19:41 pm. Lecturas: 758. Mensajes: 30. Favoritos: 0








04/01/2012 01:19:41 pm 
       4                           
Estoy programando bases de datos con VB6 y objetos ADO, y necesito conocer la cantidad de lugares decimales de un campo numerico. No encuentro ninguna propiedad que me de ese dato.
Ni .Precision ni .NumericScale me dan esa informacion. Por ejemplo, para un campo numerico de tipo Double con 2 lugares decimales .Precision arroja 15 y NumericScale devuelve 255.

Nota tanto 15 como 255 son datos tipo Byte, es decir, enteros de 0 a 255.

¿Alguna vez te topaste con esa necesidad en VB6? ¿como la resolviste?


04/01/2012 01:26:36 pm 
       0                           
bakhold


Miembro desde: 05/05/2008

Threads abiertos: 17
Mensajes: 345  
Subtítulos subidos: 4
Threads Favoritos: 0





con facebook




04/01/2012 01:39:52 pm 
       2                           
gorromir


Miembro desde: 20/02/2006

Threads abiertos: 1
Mensajes: 446  
Subtítulos subidos: 1
Threads Favoritos: 0















te doy votos para q siga en el home a ver si alguien te ayuda... yo ni la mas puta idea de lo que estas hablando


04/01/2012 02:03:15 pm 
       0                           
Ok, gracias por los votos, debi poner al titulo ´´Pregunta a programadores de VB´´


04/01/2012 02:47:00 pm 
       0                           
crimsonking


Miembro desde: 21/04/2011

Threads abiertos: 54
Mensajes: 539  
Subtítulos subidos: 0
Threads Favoritos: 4





Hace añares no programa en VB6, recuerdo muy poco. Lamento no poder ayudarte.

Pregunta, lo usás didácticamente ? Para la facultad ? Por trabajo ?


04/01/2012 02:54:15 pm 
       1                           
Yrmenlaf


Miembro desde: 02/08/2011

Threads abiertos: 0
Mensajes: 258  
Subtítulos subidos: 0
Threads Favoritos: 0



Si sabes ingles te recomiendo:
Visual Basic forums

Seguro que ahí van a tener idea, acá somos mas de pelis y porno


04/01/2012 03:31:21 pm 
       1                           
pendrakon


Miembro desde: 14/10/2004

Threads abiertos: 9
Mensajes: 3566  
Subtítulos subidos: 89
Threads Favoritos: 0





y no me manejo en el lenguaje, pero si no pillas la funcion, porque no te haces una? nose pasar el numero a un arreglo y ahi contar los caracteres despues de la coma que los separa, digo como ultimo recurso


04/01/2012 04:45:56 pm 
       0                           
gastyz


Miembro desde: 25/02/2010

Threads abiertos: 55
Mensajes: 910  
Subtítulos subidos: 0
Threads Favoritos: 11






avenger escribió:
Estoy programando bases de datos con VB6 y objetos ADO, y necesito conocer la cantidad de lugares decimales de un campo numerico. No encuentro ninguna propiedad que me de ese dato.
Ni .Precision ni .NumericScale me dan esa informacion. Por ejemplo, para un campo numerico de tipo Double con 2 lugares decimales .Precision arroja 15 y NumericScale devuelve 255.

Nota tanto 15 como 255 son datos tipo Byte, es decir, enteros de 0 a 255.

¿Alguna vez te topaste con esa necesidad en VB6? ¿como la resolviste?



asi rapido e inspirado por la respuesta anterior (hay caracteres que el foro no permite, como el simbolo de menor, el punto y coma):
converti el numero a string, ej string numeroString = numero
defini una bandera bool ej bool bandera=false
defini un contador ej int contador=0
usa un for para recorrer todo el string ej for (int x=0 x /menor/ numeroString.length x++)
dentro del for, pregunta si ese caracter es el punto decimal o la coma ej if (numeroString[x].equals(´´,´´))
dentro de ese if, programa la bandera a true
fuera de ese if, un if que pregunte por la bandera if (bandera)
dentro de ese if, el contador aumenta 1 ej contador ++
al final del for tenes el contador cargado con la cantidad de decimales
para saber cuales son los decimlaes tambien podes crear un string que aumente dentro del if (bandera)

entonces quedaria (seguramente habra alguna diferencia porque yo programo en sharp)

string numeroString = numero
bool bandera=false
int contador=0
string decimales

for (int x=0 x /menor/ numeroString.length x++)
{
if (numeroString[x].equals(´´.´´))
{
bandera=true
}

if (bandera)
{
contador++
decimales+=numeroString[x] //si queres esto, el if que pone la bandera a true debe venir despues para que no se cargue el ´´.´´ aca, o aumentar en 1 la variable x del for en el if anterior
}
}


04/01/2012 05:40:35 pm 
       0                           
petetex


Miembro desde: 10/09/2005

Threads abiertos: 1
Mensajes: 185  
Subtítulos subidos: 0
Threads Favoritos: 0





Se resuelve dandole un formato al numero para que todos tengan la misma cantidad de decimales. En el caso de moneda es obvio, le pones 2, para el resto es a gusto. En C o PHP usaria printf(´´%.2f´´). Suerte con eso y no uses mas VB6, jeje.


04/01/2012 05:49:25 pm 
       0                           

crimsonking escribió:
Hace añares no programa en VB6, recuerdo muy poco. Lamento no poder ayudarte.

Pregunta, lo usás didácticamente ? Para la facultad ? Por trabajo ?


A veces vendo algun programa, otras veces hago algun programa para mi propio uso.
En este caso se trata de un sistema que usaran 2 clientes. El cliente A necesita mas datos, asi que sus tablas son algo distintas de las que usa el cliente B. Pero no quiero tener dos versiones, una para cada uno. Asi que el programa, cuando corra para el cliente B hallara que faltan campos en algunas tablas e incluso tablas enteras. Lo que quiero hacer es que automaticamente adapte las tablas de B, nada mas que por razones de compatibilidad, sin contar que B podria tener mas posibilidades si quisiera. Y para lograr eso el programa necesita percibir como estan las tablas en cierto momento. Saber cuantos decimales tiene un campo numerico forma parte de esa percepcion y tambien, lo necesitan las instrucciones CREATE TABLE y ALTER de SQL que se van a hacer cargo de las modificaciones.


04/01/2012 05:50:43 pm 
       0                           

Yrmenlaf escribió:
Si sabes ingles te recomiendo:
www.vbforums.com Visual Basic forums

Seguro que ahí van a tener idea, acá somos mas de pelis y porno


Me dare una vuelta, gracias !


04/01/2012 06:04:36 pm 
       0                           

gastyz escribió:

avenger escribió:
Estoy programando bases de datos con VB6 y objetos ADO, y necesito conocer la cantidad de lugares decimales de un campo numerico. No encuentro ninguna propiedad que me de ese dato.
Ni .Precision ni .NumericScale me dan esa informacion. Por ejemplo, para un campo numerico de tipo Double con 2 lugares decimales .Precision arroja 15 y NumericScale devuelve 255.

Nota tanto 15 como 255 son datos tipo Byte, es decir, enteros de 0 a 255.

¿Alguna vez te topaste con esa necesidad en VB6? ¿como la resolviste?


asi rapido e inspirado por la respuesta anterior hay caracteres que el foro no permite, como el simbolo de menor, el punto y coma:
converti el numero a string, ej string numeroString = numero
defini una bandera bool ej bool bandera=false
defini un contador ej int contador=0
usa un for para recorrer todo el string ej for int x=0 x /menor/ numeroString.length x++
dentro del for, pregunta si ese caracter es el punto decimal o la coma ej if numeroString[x].equals,
dentro de ese if, programa la bandera a true
fuera de ese if, un if que pregunte por la bandera if bandera
dentro de ese if, el contador aumenta 1 ej contador ++
al final del for tenes el contador cargado con la cantidad de decimales
para saber cuales son los decimlaes tambien podes crear un string que aumente dentro del if bandera

entonces quedaria seguramente habra alguna diferencia porque yo programo en sharp

string numeroString = numero
bool bandera=false
int contador=0
string decimales

for int x=0 x /menor/ numeroString.length x++
{
if numeroString[x].equals.
{
bandera=true
}

if bandera
{
contador++
decimales+=numeroString[x] //si queres esto, el if que pone la bandera a true debe venir despues para que no se cargue el . aca, o aumentar en 1 la variable x del for en el if anterior
}
}


Lo que propones es lo primero que pense. Te lo digo simple, transformar el numero a string y averiguar donde esta el separador decimal. Me parece un poco inseguro. Por ejemplo, la funcion no trabajaria si no hay registros. Y si los procesos de conversion dato-en-tabla a VB son medio caprichosos (cosa nada rara en VB6), podria ocurrir que la funcion no tomara realmente la cantidad de espacios decimales.

El problema es que parece demasiado improvisado. Me preguntaba si no habria alguna manera mas formal de conseguir esa misma informacion. La ayuda de VB6 dice que la propiedad .NumericScale de los objetos fields de ADO da esa informacion. Pero si la da, no parece. Me seguire devanando los sesos con esa propiedad. De ultima, hare la funcion detectora de la posicion del punto decimal. Incluso la funcion, si no hay registros, podria crear uno y tratar de meter un numero decimal muy chico (digamos 0,0000000001), para luego recuperarlo y ver si el ´´1´´ figura. Si no figura o si da error, intentaria grabar el 0,000000001 y asi sucesivamente.

Bueno, gracias por todo


04/01/2012 06:08:45 pm 
       0                           

petetex escribió:
Se resuelve dandole un formato al numero para que todos tengan la misma cantidad de decimales. En el caso de moneda es obvio, le pones 2, para el resto es a gusto. En C o PHP usaria printf%.2f. Suerte con eso y no uses mas VB6, jeje.


Tengo que pasar a vb.net, pero debe ser la misma garcha.

Por otro lado, yo no le debo dar formato al numero, debo saber que formato ya tiene.


04/01/2012 06:49:04 pm 
       0                           
petetex


Miembro desde: 10/09/2005

Threads abiertos: 1
Mensajes: 185  
Subtítulos subidos: 0
Threads Favoritos: 0






avenger escribió:

crimsonking escribió:
Hace añares no programa en VB6, recuerdo muy poco. Lamento no poder ayudarte.

Pregunta, lo usás didácticamente ? Para la facultad ? Por trabajo ?

A veces vendo algun programa, otras veces hago algun programa para mi propio uso.
En este caso se trata de un sistema que usaran 2 clientes. El cliente A necesita mas datos, asi que sus tablas son algo distintas de las que usa el cliente B. Pero no quiero tener dos versiones, una para cada uno. Asi que el programa, cuando corra para el cliente B hallara que faltan campos en algunas tablas e incluso tablas enteras. Lo que quiero hacer es que automaticamente adapte las tablas de B, nada mas que por razones de compatibilidad, sin contar que B podria tener mas posibilidades si quisiera. Y para lograr eso el programa necesita percibir como estan las tablas en cierto momento. Saber cuantos decimales tiene un campo numerico forma parte de esa percepcion y tambien, lo necesitan las instrucciones CREATE TABLE y ALTER de SQL que se van a hacer cargo de las modificaciones.



Seguis viendo mal como encarar el problema. Si tenes dos clientes, uno maneja con 2 cifras y otro con 4, en la configuracion del programa le decis como queres que se presente la informacion, no importa como este grabada, luego presentas la consulta con el formato adecuado. Ponele que el campo se llame ingresos ,seria algo como SELECT FORMAT(ingreso,precision) FROM mitabla_de_ingresos . De mas esta decir que 4, 4.0, 4.000 y 4.0000000000000000 son el mismo numero, salvo en aplicaciones cientificas donde realmente hay un criterio para la cantidad de decimales ingresados, porque depende de la forma de muestro, pesaje o valoracion.


04/01/2012 07:21:36 pm 
       0                           
No entendiste petetex, no me preocupa la cantidad de decimales que quiera cada cliente. Ocurre que hay diferencias de estructura de base de datos. Hay tablas en B que no estan en A y ausencia de campos en tablas de B que si existen en A. Mi intencion es uniformizar automaticamente las bases de datos a la version mas compleja, cuando el programa corra en B.


04/01/2012 07:22:26 pm 
       0                           
petetex


Miembro desde: 10/09/2005

Threads abiertos: 1
Mensajes: 185  
Subtítulos subidos: 0
Threads Favoritos: 0





Si se seguis con ese karma deberias darte una vuelta por acá y ser iluminado )


04/01/2012 07:23:59 pm 
       0                           
Para programas locales prefiero seguir sobre Windows, aunque en materia de programacion web estoy usando php


04/01/2012 07:28:23 pm 
       0                           
petetex


Miembro desde: 10/09/2005

Threads abiertos: 1
Mensajes: 185  
Subtítulos subidos: 0
Threads Favoritos: 0






avenger escribió:
No entendiste petetex, no me preocupa la cantidad de decimales que quiera cada cliente. Ocurre que hay diferencias de estructura de base de datos. Hay tablas en B que no estan en A y ausencia de campos en tablas de B que si existen en A. Mi intencion es uniformizar automaticamente las bases de datos a la version mas compleja, cuando el programa corra en B.


Y no te sirve un archivo .ini de configuracion donde le decis que es el cliente tipo A o tipo B?. En base a eso mostras uno u otra consulta. Cuando no te sirve esa abstraccion la llevas a la base de datos si te lo permite. En el caso de MySQl podes porque te permite crear procedimientos.


04/01/2012 07:50:39 pm 
       0                           
No quiero poner .INIs que curioseen otros programadores.


04/01/2012 10:02:47 pm 
       0                           
chiola


Miembro desde: 17/03/2006

Threads abiertos: 4
Mensajes: 109  
Subtítulos subidos: 11
Threads Favoritos: 0





Tenes que hacer una consulta al esquema de la base de datos.






Otros threads relacionados
Hoy escuché a dirigentes rurales decir “que el gobierno tiene que saber leer el voto del pueblo, que tiene que resolver el problema del campo reduciendo las retenciones (hasta algunos hablarían de quitarlas), eliminar cupos de exportación y aumentar los precios de productos agropecuarios”.¿Es así? ¿Todos los que no votaron a los K, votaron necesariamente a favor del campo y de estas medidas qu
Por: BiTRaTe el 07/07/2009 09:18:32 pm
- Leido: 2483 veces - Votos: 53 - Mensajes: 66 - Último mensaje: guriki Ver último mensaje
[youtube]OK1CEJAo8rc[/youtube] :unsure: Es el mismo de La marcha tropical......Juan Campodonico....uruguayo el...like or not like? :wave:
Por: VaronV el 15/03/2012 03:01:50 pm
- Leido: 304 veces - Votos: 16 - Mensajes: 2 - Último mensaje: picotero Ver último mensaje
Un tipo mayor se hace miembro de un campo de nudistas muy exclusivo por simple curiosidad, en busca de nuevas emociones. Como era su primer dí­a, se quitó la ropa como todo el mundo y fue a dar vueltas por el lugar. Una linda rubia, super despampanante, apareció por ahí­ y él inmediatamente tuvo una erección. La chica notó su erección e inmediatamente se le acercó sensual:- ¿Me ha llamado, señ
Por: merlinbe el 14/12/2010 11:58:36 pm
- Leido: 2101 veces - Votos: 16 - Mensajes: 13 - Último mensaje: lemans Ver último mensaje
La hermosa modelo Canadiense Misa Campo nació en Montreal el 1º de enero de 1980, a su diez años se mudó a California junto a su padre.Misa Campo heredo su nombre de una gran religiosidad, sin embargo la hermosa modelo no tiene ningún pudor a la hora de posar para la cámara pues posee un escultural cuerpo que a su vez es envía de muchas.En la adolescencia comenzó a trabajar como camarera, lo que la ayudó a comprobar con creces que podía sacar algún fruto de las insistentes miradas masculinas. Así fue que decidió inclinarse por la carrera de modelo y compartir con el mundo sus voluptuosas curvas.En 2006, llegó a ser Miss Rocawear, título que la catapultó a las tapas de las principales revistas masculinas con Nuts y Maxim.[image]http://gifsoup.com/webroot/animatedgifs1/1268219_o.gif[/image][image]http://www.gifsoup.com/view1/1278546/misa-campo-o.gif[/image][image]http://www.gifsoup.com/view3/1132642/misa-campo-o.gif[/image][image]http://www.s2ki.com/s2000/uploads/gallery/1288158549/gallery_63943_34452_11104407994ccc7ccfeb8a5.gif[/image][image]http://29.media.tumblr.com/tumblr_lsse5btrNk1qci5cno13_400.gif[/image][image]http://www.stud-center.com/wallpaper/misa-campo/misa-campo-103243.jpg[/image][image]http://www.stud-center.com/wallpaper/misa-campo/misa-campo-103242.jpg[/image][image]http://www.stud-center.com/wallpaper/misa-campo/misa-campo-103246.jpg[/image][image]http://www.stud-center.com/wallpaper/misa-campo/misa-campo-103239.jpg[/image][image]http://wallpaperuser.com/wp-content/uploads/2012/01/misa-campo-girl-wallpaper.jpgi[/image][image]http://www.mediashow.ro/show/353039-3/misa-campo-20.jpg[/image][image]http://np40.files.wordpress.com/2010/10/misa.jpg[/image][image]http://a3.ec-images.myspacecdn.com/images02/137/8f9b0e0f978e4f40a26e005595843bda/l.jpg[/image][image]http://24.media.tumblr.com/tumblr_lbpu1xfLUY1qap9r4o1_500.jpg[/image][image]http://www.pc-spot.us/galleries/albums/grl/Misa%20Campo/misa_campo_hot_2_20090909_182584115
Por: oraldo el 26/02/2012 05:57:48 pm
- Leido: 1734 veces - Votos: 12 - Mensajes: 10 - Último mensaje: mandrake_l Ver último mensaje
Sociedades de indigentes y muertosLa AFIP y el juzgado a cargo de la investigación sospechan que utilizaban empresas ficticias a nombre de indigentes o fallecidos para “blanquear” compras irregulares realizadas a productores agropecuarios. Evasión estimada en 150 millones de pesos.Por Javier LewkowiczLa AFIP allanó ayer 117 oficinas de empresas cerealeras multinacionales en el marco de
Por: luism el 02/03/2011 03:43:28 am
- Leido: 1420 veces - Votos: 12 - Mensajes: 24 - Último mensaje: luism Ver último mensaje
A dos añosPor Alfredo ZaiatHan pasado dos años del fracaso oficial de establecer por ley la Resolución 125 de retenciones móviles y compensaciones a pequeños productores. En la mayoría de los acontecimientos políticos, la evaluación sobre impactos económicos y sociales requiere de cierta perspectiva histórica, que no es otra cosa que el paso del tiempo. Dos años es un lapso breve para un a
Por: luism el 25/07/2010 02:59:48 am
- Leido: 596 veces - Votos: 10 - Mensajes: 12 - Último mensaje: donroque Ver último mensaje
No soy de mirar mucha tele, pero la vi a mi hermana mirando estos videos en YouTube y me pareció muy loco. Los pongo en el orden que los pasaron en RSM:Capítulo 1[youtube]http://www.youtube.com/watch?v=p5P4tzh_0jw[/youtube]Capítulo 2[youtube]http://www.youtube.com/watch?v=T5uZ21-XLO4[/youtube]Capítulo 3[youtube]http://www.youtube.com/watch?v=r_vf3TtidC0[/youtube]Capítul
Por: mym-pc el 30/03/2010 08:37:19 am
- Leido: 965 veces - Votos: 10 - Mensajes: 8 - Último mensaje: WalterSierralta Ver último mensaje


campo

1