Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Filantropo

#1
Hola.
Me causa confusion esto del uml, las clases uml se dice que representan la estructura estatica del sistema, en su interior se describen los datos y metodos que tendra la entidad.
Esto suena a clases como las que se escribirian en algun lenguaje de alto nivel C++, java, php, su representacion de rectangulo con atributos y metodos tambien suena a clases de lenguajes de POO.
Pero lo que no entiendo es por que en los diagramas de clase uml las clases tienen lineas de relaciones incluso tienen cardinalidad 1-N , N-N etc,  esto suena a tablas de una BD.
entonces ¿que se representa en un diagrama, las clases de POO o las tablas de una BD?
#2
Hola amigos.
Espero puedan me orientar
Cuando se trata de un proyecto de desarrollo de un sistema web ¿a que hacen referencia "mision del sistema", "vision del sistema", "definicion del sistema" y "objetivos del sistema"?
Es decir que debo describir en cada uno esos puntos?


El sistema trata sobre venta de articulos de primera necesidad
#3
Holas.
Tengo una tabla cliente:


create table cliente (
      identificador int not null primary key,
    nombres varchar(30),
    apellidos varchar (30),
    email varchar (50),
    telefono varchar (20),
       fecha_insercion datetime
);


Las inserciones son mediante SP_CLIENTE_INSERTAR


CREATE PROCEDURE SP_CLIENTE_INSERTAR(
   in arg_identificador int,
   in arg_nombres varchar(30),
   in arg_apellidos varchar(30),
   in arg_email varchar(30),
   in arg_telefono varchar (20)
)
BEGIN
insert into cliente values(arg_identificador,
arg_nombres,
arg_apellidos,
arg_email,
arg_telefono,
NOW());
END//




SP_CLIENTE_BUSCAR realiza busquedas por nombre o apellido, ademas se le pasa un offset y limit para devolver solo una porcion de la busqueda y mostrarlo en forma de paginacion.


CREATE PROCEDURE SP_CLIENTE_BUSCAR(in arg_cadena varchar(50),
in arg_offset int,
in arg_limit int)
BEGIN
select identificador,
    nombres,
    apellidos,
    email,
    telefono
    from cliente
    where nombres like concat("%",arg_cadena,"%")
    or apellidos like concat("%",arg_cadena,"%")
    order by fecha_insercion asc
    LIMIT arg_offset,arg_limit;
END//



Inserte 12 clientes en un sola ejecucion y en la bd se insertaron todos con igual fecha_insercion como es d esperar:

Id nombre  fecha_insercion          otros_campos.......
1 maria   2020-12-05  17:31:19
2 julio   2020-12-05  17:31:19
3 antonio 2020-12-05  17:31:19
4 marlon  2020-12-05  17:31:19
5 mariela 2020-12-05  17:31:19
6 carmen  2020-12-05  17:31:19
7 ramiro  2020-12-05  17:31:19
8 carla   2020-12-05  17:31:19
9 paola   2020-12-05  17:31:19
10monica  2020-12-05  17:31:19
11 melisa 2020-12-05  17:31:19
12 nicole 2020-12-05  17:31:19



el problema es que el SP_CLIENTE_BUSCAR devuelve registros duplicados y en orden inverso durante la paginacion, ademas que se omite 4 o 5 de los 12 registros.
Lo que me devuelve el sp_cliente_buscar:


paginacion se realiza por cada 5 registros:

PAGINA1:
1 maria    2020-12-05  17:31:19
2 julio    2020-12-05  17:31:19
3 antonio  2020-12-05  17:31:19
4 marlon   2020-12-05  17:31:19
5 mariela  2020-12-05  17:31:19

PAGINA2:
6 carmen   2020-12-05  17:31:19
5 mariela  2020-12-05  17:31:19
4 marlon   2020-12-05  17:31:19
3 antonio  2020-12-05  17:31:19
2 julio    2020-12-05  17:31:19

PAGINA 03:
2 julio    2020-12-05  17:31:19
1 maria    2020-12-05  17:31:19

La bd esta en un servidor de hosting, el gestor es phpMyAdmin.
Alguien sabra por que ocurre esto, esta mal mi codigo o esta fallando el servidor?

Edicion:
Hay otra tabla llamada empleados es casi igual a la de clientes la unica diferencia es: tiene 3 campos adicionales, su proc almacenado de busqueda SP_EMPLEADO_BUSCAR es igual al del cliente, pero este si funciona correctamente.

Edicion 2
Olvide decir que los resultados mostrados son de una busqueda sin ningun texto. internamente la ejecucion seria asi:

call SP_CLIENTE_BUSCAR ('',0,5)  <-----PAG 1
call SP_CLIENTE_BUSCAR ('',5,5)  <-----PAG 2
call SP_CLIENTE_BUSCAR ('',10,5)  <-----PAG 3

Crei que tenia un error el codigo php que invoca a este proc almacenado pero no. Ejecute directamente en la consola phpmyadmin los 3 calls que escribi arriba y devuelve igual que el php: duplicados e invertidos
Deberia mostrar todos los registros (12 total) divididos en: pag1 y pag2 cada uno con 5 registros y por ultimo pag3 con 2 registros, a diferencia de SP_EMPLEADO_BUSCAR que siendo casi lo mismo Si trabaja como se espera.

Tambien es extraño que si se le pasa offset 0 y un limit alto me devuelve ahora si la lista completa de 12 sin duplicados.

call SP_CLIENTE_BUSCAR ('',0,5)  <-----PAG 1


call SP_CLIENTE_BUSCAR ('',5,5)  <-----PAG 2


call SP_CLIENTE_BUSCAR ('',10,5)  <-----PAG 3


call SP_CLIENTE_BUSCAR ('',0,9999999)


Lista completa clientes


En la captura los nombres: patricia, melisa, julio, marleni, eduardo son los que se repiten y en orden inverso.
Estoy mal o el servidor esta medio loco?
#4
Hola una ayuda.
Tengo que registrar las personas que asisten a reuniones, en cada reunion pueden haber muchos participantes, cada participante puede participar en mas de una reunion, cada participante tiene un papel o rol en cada reunion que son "juez, acusado o demandante", este rol varia en cada reunion, un participante puede ser juez en una reunion y acusado o demandante en otra, el numero de acusados o demandantes puede ser distinto en cada reunion
Lo que tengo hecho:

-- relacion muchos a muchod entre reunion y participantes, en la tabla intermedia se guarda el rol que cumplia el participante en esa reunion

Table_Reunion    |   Table_intermedia         |    Table_participante
                             |                                           |
     Id_reunion     |         Id_reunion                |         Id_participante
     Fecha             |          Id_participante       |          nombres
                             |          rol_partocipante    |



Lo que necesito es mostrar 4 columnas con los datos de fecha_reunion, juez, demandante, acusado:

























fechajuezdemandanteacusado
2019/05/09juanmariamelissa
antonietajose
marialeydi
2020/09/08antoniosusanajose
maria
melinda
2020/09/01matiasjairsol
jose
juan
Que sentencia podria mostrar los datos de esa forma?

Edicion
Las participantes sean jueces, demandantes o acusados se guardan en una unica columna de la tabla intermedia (idparticipante), como podria mostrarlo en una columna propia?


Edicion 2
O de que otra manera se podria descomponer el problema o las tablas?
#5
En una tabla de usuarios

tbUsuarios
   nombre
   clave
   email
   telefono

Lo que trato es imitar el comportamiento de la restriccion unique sobre el campo nombre que debe ser unico, en el procedimiento almacenado de insercion lo que hace es comprobar si algun usuario ya tiene el mismo nombre, si aun no entonces lo inserta pero si ya esta en uso NO inserta solo genera un error, tengo este codigo:




Create proc sp_insertar_usuario(in_nombre, in_clave, in_email, in_telefono)
Begin
   'Verificar si ya eziste un usuario con ese nombre
   filas=select count (*) from tbusuario where nombre=in_nombre
   If filas>0
         -- ya existe, generar error y no insertar
   Else
        -- no existe aun, proceder insercion
        insert into tbusuario (nombre,clave,email,telefono)
End




Ahora la duda que tengo es que... sabiendo que una BD puede ser accedida por muchos aplicaciones en simultaneo y ademas que los procesos de aplicacion suelen crear varios hilos de ejecucion se me ocurrio que podria suceder que 2 apps traten de insertar al mismo tiempo usuarios con el mismo nombre y se ejecuta el sp_insertar_usuario 2 veces al mismo tiempo, al llegar al select ambos tienen el mismo resultado : "0"
lo que significa quew el nombre todavia no esta en uso y llegan al if donde procede a realizar ambas inserciones con el mismo nombre, podria ocurrir un caso como este y como se podria evitar?
En windows c++ ocurrian casos como este de acceso simultaneo a uns funcion y se usaba las secciones criticas para impedirlo.
#6
Por curiosidad saber cuantas tablas pueden haber en BDs complejas, algunos dicen que 1000 (mil) o mas, sera cierto o es que estan mal hecha las BDs?





Edicion:


De todas las BDs que hiciste o viste en el trabajo, universidad , etc cual fue la que tenia mas tablas y cuantas eran?

#7
Tengo un form con un textbox y un datagridview, en el textbox se debe ingresar el nombre de un cliente, segun se van escribiendo cada letra el datagridview debera mostrar todos los clientes que coincidan con ese nombre

El codigo:

Private Sub txtnombre_Change ()
    filtrar ()
End Sub

Sub filtrar ()
       Dim connectionString As String = "Data Source=.;Initial Catalog=bdsistemita;Integrated Security=True"
       Dim sql As String = "SELECT * FROM tbclientes where like '%" & txtnombre.text & "%'"
       Dim connection As New SqlConnection(connectionString)
       Dim dataadapter As New SqlDataAdapter(sql, connection)
       Dim ds As New DataSet()
       connection.Open()
       dataadapter.Fill(ds, "tbclientes")
       connection.Close()
       DataGridView1.DataSource = ds.tables ("tbclientes")
   End Sub


Es necesario borrar/liberar de memoria de  alguna manera el SqlConnection, SqlDataAdapter, DataSet o se borran/liberan solos?

Segun esto  entiendo que se ejecutara el sub filtrar () y se creara el dataset y dataadapter por cada letra ingresada, si se buscase 100 nombres de 5 caracteres 100*5=500 letras --> 500 adapters + 500 dataset + 500 connections.

Uso visual.net 2019 y el import es sqlClient
#8
Tengo una duda, hay campos que tienen un numero limitado de posibles valores como:
estado_objeto: muy bueno | bueno | regular | malo | muy malo
sexo: masculino | femenino
estado_civil: soltero | casado | divorciado
doc_compra: boleta | factura


Hay quienes guardan el valor en forma de un solo caracter:
estado_objeto: a | b | c | d | e
sexo: m | f
estado_civil: s | c | d
doc_compra: b | f

Pero hay otros que agregan una tabla adicional y alli guardan esos posibles valores y lo relacionan con un foreign key
¿Cual metodo es mas recomendable? O en que situaciones se deberian usar?
     
#9
Utilizo la clase system.Data.sqlClient desde una app de vb.net y se conecta a una bd que se encuentra en sql server 2012
como podria mi app obtener un valor de retorno de las operaciones sql realizadas? Algo parecido a:


Borrado = BorrarRegistro (idcliente)
If borrado then
  Msgbox "borrado correctamente"
Else
  Msgbox "no se pudo.borrar"
End if


Tambien seria util conocer detalles adicional de ese resultado parecido a GetLastError:


Inser = InsertarCliente (nomb, apell)
If insert then
 Msgbox "insertado correctamente"
Else
 Select case GetlLastErrorSql()
      Case PK_YA_EXISTE
           Msgbox "ya existe el cliente"
     Case UNIQ_YA_EXISTE
           Msgbox "hay un valor duplicado"
     Case FK_ERROR
           Msgbox "clave foranea incorrecta"
     ........





Borrado = BorrarRegistro (1)
If borrado then
  Msgbox "borrado correctamente"
Else
 
  Select Case GetLastErrorSql ()
       Case FORE_KEY
          Msgbox "No se pudo borrar porque hay un registro vinculado a este"
       Case ..............
End if

#10
Salu2.
Estoy en desarrollo de una aplicacion de vb.net y su BD en microsoft sql server, necesito que a la BD solo puedan acceder quienes tengan un usuario y clave asignado, gugleando halle ejemplos de login que se basan en crear una tabla adicinal que contenga los usuarios y sus claves, y la aplicacion lo que hace es buscar ese usuario y clave, si existe muestra datos sino muestra error "clave/usuario incorrectos"

select * from users where user='paco' and pass='123456'

Pero este metodo es muy inseguro, algun curioso con conocimientos en sql podria ver la BD completa sin usar mi aplicacion .net, simplemente abriendo una consola o el managment.
¿que otro metodo podria usar?
La BD guardara datos sensibles.
#11
Hola.
Tengo una bd sobre ventas en la que ademas del producto y cantidad se debe registrar el documento emitido que puede ser boleta o factura.
Lo que tengo hecho son 3 tablas:

-tbventa
     idVenta
     iddocumento       <---puede ser boleta o factura

-tbfactura
     Numerofactura

-tbboleta
     NumeroBoleta

Dentro de venta deberia estar el id del documento boleta o factura, ¿que podria hacer para que iddocumento acepte cualquier de los 2 id, sea boleta o factura?
#12
Hola amigos.

Uso android studio 2.3 + gradle 3.5 en pc windows 8.1 con 4gb de ram, pruebo las apps en el movil mediante cable usb.
Al darle en ejecutar el gradle compila rapido la app pero el problema es que la instalacion demora muchisimo entre 1 y 2 minutos.

Me explico: al ejecutar la app, en la barra de estado que esta en la parte inferior del IDE se  muestra durante 2 a 5 segundos el mensaje "gradle-building..." luego cambia a: "installing APKs..." y asi se queda durante 2 minutos y recien se pasa a ejecutar la app en el movil, las apps son pequeñas de practica, no hayo razon para esa lentitud.

Este problema es reciente, hace aprox. un par de meses use por ultima vez el android studio y solo se tardaba entre 5 y 10 segundos en compilar, instalar y ejecutar, ni idea de que haya pasado con el ide, porque este tan lento.

Uso esta version antigua porque cuando instalaba las recientes me daban problemas con el gradle que no entiendo nada y pues esta funciona tal cual lo instale.

He probado:
-activar/desactivar "offline work" en settings/run
-activar/desactivar "usar distribucion gradle local" en settings/gradle
-cambiar en gradle.properties vjram de 1548 a 2048

Nada ha funcionado.
#13
Hola amigos.
Lo que busco es aprender diseñar interfaces graficas agradables, llamativas, de aspecto pro.

Se utilizar los controles de vb6, las intrucciones, variables y demas pero en interfaz graficas doy pena, me faltan ideas sobre que colores usar en los controles, tamaño de letra adecuado, posicionar los objetos en los form de manera que resulte bonito, facil de usar, y su aspecto guarde relacion con la empresa del cliente.

Quizas alguien tenga un tuto, pdf que explique esos temas se lo agradeceria mucho.
#14
Holas gente.

Tenia curiosidad por saber cuantos libros sobre programacion ustedes se leen por año o mes, aprox de cuantas paginas tiene, que porcentaje de lo que has leido crees que lograste comprender , cuantas veces fue necesario leer un mismo libro para retener la informacion y cuantos tienes.


Tengo 3 libros: de java, delphi y C++, empece a leerlos hace casi dos meses y de la pagina 50 no he pasado xD, me provoca sueño y comprendo muy poco, se me hace dificil recordar lo leido y pues me seria muy util hacer una comparacion de sus capacidades de lectura, habitos, experiencias con los mios asi saber en que nivel estoy xD.
#15
Sabran de algun buen tutorial de diagramas de caso de uso de negocio?  Uno que vaya directo al grano.

Es para un examen. el profesor no explica, entregara unos enunciados que de alguna manera debo resolver en el pc.
Ayuda pls.
#16
Windows / ¿win 8.1 esta medio loco?
30 Julio 2019, 02:06 AM
Me formatearon la pc yle instalaron windows 8.1 .

Pero algunas aplicaciones non funcionaban porque faltaban dlls (mostraban el mensaje : "el programa no puede iniciar porque falta xxx.dll") entonces trate formatearlo por mi cuenta y para eso me cree un booteable del mismo win 8.1 usando rufus y el tipo de particion gpt.

Al bootearlo me salia el error que no se puede usar la particion xxx porque el disco es de estilo gpt, entonces con diskpart borre todo el dis disco y lo converti a mbr y volvi a crear el usb booteable esta ves con tipo mbr y ahora me salta el error que "windows no puede usar la particion porque solo puede instalarse en tipos gpt" de nuevo volvi borrar el disco y lo converti a gpt y esta ves si se instalo.
Pero no entendio que hice mal ¿porque al principio decia que no se puede en gpt y despues que si? Debido a esto tuve que borrar 2 veces el disco y perditodos los arxhivos :( 
Que raro el windows medio loco.
#17
Habiendo tantos tutoriales en internet en formato pdf, word, html y en
Videos mp4, flv , cual es "para cada uno de ustedes" la mejor forma en que aprenden algun tema sea html, php, script etc?
#18
Hola
sabran de alguna pagina que trate sobre los diferentes tipos de software que existen???
No me refiero a la clasificacion comun de:
Software de sistema
Lenguajes programacion
utilitarios y
Aplicaciones

Sino a la clasificacion o categoria mas precisos por ejemplo:
Editores de video
Editores de audio
Compiladores
Navegadores
Descompresores
Reproductores de video
Etc etc etc

Ademas ejemplos de programas conocidos y su categoria, que caracteristicas debe cumplir un softwaee para que este en tal o cual categoria, cual es el nombre formal de las categorias (si hubiera).
Me encontrado con que a software se le da diferentes nombres de categoria confusos como DEV c++ hay quienes lo clasifican como IDE pero otros como compilador.

Salu2



#19
Hola a todos  :rolleyes:
Tenia curiosidad por saber como hacian sus sources los antiguos desarrolladores de aplicaciones windows cuando una aplicacion debia hacer mas de una tarea pesada usando un solo hilo, como evitaban que se congele la interfaz grafica mientras el hilo hacia trabajo fuerte.
#20
Hice una aplicacion de practica que dibuja unas lineas horizontales en la ventana.
en el windowproc durante el wm_paint se crea una pluma roja, lo selecciona en el HDC, dibuja 2 lineas horizontales y lo borra la pluma despues de EndPaint.

Por curiosidad lo cambie un poco: coloque un deleteobject para borrar la pluma despues de dibujar la primera linea y antes de la dibujar la segunda (estando ya seleccionado en el HDC) ya quw en los tutoriales se dice que si se intenta borrar una pluma que esta seleccionada en el HDC o una pluma que ya ha sido borrada pues deleteobject deberia resultar en  error o cero, pero lo extraño es q al ejecutar la aplicacion deleteobject resulta true que significa quw si lo ha borrrado por tanto la primera linea deberia ser roja y la segunda no, pero ambas salen rojas.

Luego coloque otro deleteobject debajo del primero, lo que deberia resultar tambien en error o cero por tratar borrar una pluma que ya esta borrada pero deleteobject sigue resultando true.

Alguien mas ha notado ese comportamiento extraño de esa function?

Uso visual c++ 6.0



Case WM_PAINT:
pluma = CreatePen (...) ;

hdc = BeginPaint (...) ;

SelectObject (hdc, pluma) ;
MoveToEx (hdc, 0, 100, NULL) ;
LineTo (hdc, 300, 100) ;

DeleteObject (pluma) ;
res = DeleteObject (pluma) ;
if (res == 0)  // tambien probe colocando  if (res == FALSE)
{
MessageBox (..., "error al borrar la pluma"...) ;
}

MoveToEx (......) ;
LineTo (....) ;
EndPaint (...) ;

return 0 ;
#21
Hola amigos,
Debo resolver unos ejercicios de modelo ER, a partir de unos enunciados debo diagramar las entidades, relaciones, atributos y cardinalidad.
Se me hace dificil para reconocer la cardinalidad en ejercicios en los que dan las entidades y atributos pero no dicen como se relacionan las entidades sino que se deben deducir, entonces no le entiendo si debe ser uno a uno o uno a muchos, etc

Uno de los ejercicios que no logro entender es:
    http://fundametosbdunipanamericana.blogspot.com/2010/11/ejercicio-mer-1-2.html?m=1  

Si ven en la imagen la relacion producto-->{detalle}-->venta,  debajo de producto dice (0, n) y debajo de venta (1, n) entonces q tipo de cardinalidad seria?: uno a uno, uno a muchos? Y por que seria?


¿alguien tendra la amabilidad de  explicar y algunos ejemplos faciles de entender?

Otra cosa que no entiendo es en que direccion se leen esos numeritos (1, n) izquierda a derecha o derecha a izquierda? Porque en ejemplos que observado hay 2 pares, uno en cada lado de la relacion pero en otros ejemplos hay solo 1 par que se ubica justo en el centro del rombo de relacion.