Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   forma de programar no se si es la correcta ? (https://www.clubdelphi.com/foros/showthread.php?t=90088)

gulder 04-04-2016 16:02:36

forma de programar no se si es la correcta ?
 
bueno dias grupo tenia varos años sin saber nada de ustedes pero siempre los recuerdo, bueno hasta que regrese, ahora con una duda mas de procedimiento o de saber si las cosas están bien hechas o que, vamos al grano

en mi aplicación que esta hecha en java y con una bd en mysql tengo varias tablas y muchas relaciones la duda me asalta por que siempre que voy a guardar un registro en una tabla, en la cual tengo varias relaciones, antes de guardar ese registro me toca hacer varias consultas a la tabla sacando las claves primarias que hacen parte de esta relación para que el registro quede bien insertado con la relación, pero no se si esto esta bien hecho si es la forma mas correcta de hacerlo o hay una forma mas eficiente de hacerlo miren lo que hago :
Código SQL [-]
                      String sentenciaSQl="INSERT INTO PRODUCTOS (REFERENCIA,CODIGO_BARRAS,NOMBRE,PRECIO_COMPRA,PRECIO_VENTA,ID_CATEGORIA,ID_CATEGORIA_IMPUESTO,ID_UN  IDADES,STOCK_MIN,STOCK_MAX) VALUES ('" + referencia.getText() + "','" +
                            codigoBarras.getText() + "','" +
                            nombre.getText() + "','" +
                            preciocompra_ + "','" +
                            pvp_ + "','" +
                            ID_CATEGORIA( categoria.getSelectedItem().toString() ) + "','" +
                            ID_CATEGORIA_IMPUESTOS ( impuestos.getSelectedItem().toString() )+ "','" +
                            ID_UNIDADES ( unidades.getSelectedItem().toString() )+ "','" +
                            stock_min + "','" +
                            stock_max + "')";


note ce que al momento de insertar un registro en la tabla productos, hago primero tres select en los siguientes métodos ID_CATEGORIA, ID_CATEGORIA_IMPUESTOS , ID_UNIDADES , los cuales me permiten traer las claves primarias para dicha relación, la pregunta es si esa es la forma mas eficiente para hacer lo que estoy haciendo, obviamente ella funciona pero no se si es la mejor forma,

bueno espero alguna respuesta gracias de antemano gu!der....

Neftali [Germán.Estévez] 04-04-2016 16:43:36

Yo como primera opción, te recomendaría que utilizaras parámetros para "montar" la sentencia SQL.
Mucha más claridad y menos número de errores.

Por otro lado, si vas a realizar muuuuchos INSERT similares (por ejemplo, en una INSERCIÓN masiva), las búsquedas de los ID's se podrían optimizar realizando previamente una consulta para tenerlos todos, en lugar de uno cada vez en el INSERT.

gulder 05-04-2016 16:33:19

gracias Neftali por tu respuesta bueno la segunda parte si la entendi perfectamente pero lo de parametros no entendi :confused: podrias explicarme mas a fondo cordial saludo

Neftali [Germán.Estévez] 05-04-2016 17:37:43

Nada, nada, estaba pensando en Delphi....

roman 05-04-2016 17:49:51

Cita:

Empezado por Neftali (Mensaje 504081)
Nada, nada, estaba pensando en Delphi....

Seguramente en Java también se puede. Aquí hay un ejemplo, usando JDBC, de prepared statements y parámetros.

LineComment Saludos


La franja horaria es GMT +2. Ahora son las 00:38:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi