Cual es la mejor forma de guardar una imagen en una base de datos?

Realice un mini proyecto y había utilizado el tipo BLOB pero tenia problemas porque llegaba a pesar demasiado la base de datos y no lograba cargar el backup y probe a guardar solo la ruta de las imágenes y guardarlas en un carpeta de mi proyecto (que me sale bien porque solo guarda la ruta) pero he escuchado que es mejor convertirla en binario y guardarla en la base datos me podrían explicar mejor eso y si fuera posible un pequeño ejemplo si no es mucha molestia

Mostrar datos en un TableView JavaFX

Mostrar datos en un TableView ya lo tengo, mas o menos así. introducir la descripción de la imagen aquí

En mis clases de Modelo tengo 2 clases así: introducir la descripción de la imagen aquí

El sistema debe mostrar una Tabla con los productos que se van a recibir, inicialmente ésos productos se solicitaron con una cantidad y con un valor inicial, entonces al momento de recibir los productos en el almacen, pueden llegar todos con el mismo valor, o pueden llegar menos cantidad con un valor diferente, es por éso que he al momento de hacer click en el boton Recibir se despliega una nueva tabla con ésta información: introducir la descripción de la imagen aquí

Explico lo siguiente…

Necesito mostrar en una Tabla las siguiente columnas con sus respectivos valores:

Tenga en cuenta que el modelo de la tabla es RecepcionDePedido

columna de cantidad pedida = el valor que se muestra debe ser el numero que se pidió en su momento y su propiedad, variable o atributo asociado es “cantidadsolicitada” de la clase Pedido que está dentro de la clase RecepcionDePedido (el problema aquí es que yo no puedo colocar columnaCantidadSolicitada.setCellValueFactory(new PropertyValueFactory<>("cantidadsolicitada")); puesto que “cantidadsolicitada” no hace parte del modelo RecepcionDePedido y la columna está descrita así TableColumn<RecepcionDePedido, Double> colrecibido;)

columna cantidad recibida = se debe mostrar el mismo valor pedido, pero su propiedad, variable o atributo asociado es “cantidadrecibida” del modelo RecepcionDePedido

Por ejemplo, para mostrar un valor en una de las columnas de la tabla, se realiza de varias formas, una de ésas así:

columnaObservaciones.setCellValueFactory(new PropertyValueFactory<>("observaciones")); 

donde el String “observaciones” corresponde al nombre de la variable de la clase RecepcionDePedido

En fin, para realizar la Recepcion de los productos necesito mostrar en el TableView 3 columnas:

La primera con los valores solicitados,

La segunda corresponde a la cantidad recibida que debe ser el mismo valor solicitado pero ésa columna debe ser asociada al atributo “cantidadrecibida”.

La tercera corresponde el precio final del producto, que debe ser el mismo valor del precio inicial del producto, pero debe ser asociado al atributo “valorfinal”

Espero haber sido un poco claro… Dejo el codigo de mi controlador que funciona como necesito pero al parecer las columnas de cantidad recibida y valor final no estan siendo asociadas a sus respectivos atributos del modelo RecepcionDePedido…

**

package view; import FormatCell.CurrencyCell; import FormatCell.DoubleCell; import com.jfoenix.controls.JFXDatePicker; import java.net.URL; import java.text.NumberFormat; import java.util.Locale; import java.util.ResourceBundle; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.SelectionMode; import javafx.scene.control.TableColumn; import javafx.scene.control.TablePosition; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.layout.VBox; import javafx.util.Callback; import javafx.util.StringConverter; import model.Pedido; import model.Producto; import model.RecepcionDePedido; public class RecibirVariosController implements Initializable {     @FXML     private VBox root;     @FXML     private TextField cjFactura;     @FXML     private Label cjRemision;     @FXML     private JFXDatePicker cjFecha;     @FXML     private TableView<RecepcionDePedido> tabla;     @FXML     private Button btnGuardar;      private ObservableList<RecepcionDePedido> listaRecepcionDePedidos = FXCollections.observableArrayList();      @FXML     private TableColumn<RecepcionDePedido, String> colsolicitada;     @FXML     private TableColumn<RecepcionDePedido, Double> colrecibido;     @FXML     private TableColumn<RecepcionDePedido, Double> colvalorfinal;     @FXML     private TableColumn<RecepcionDePedido, String> colobservaciones;     @FXML     private TableColumn<RecepcionDePedido, String> colproducto;      @Override     public void initialize(URL url, ResourceBundle rb) {          tabla.getSelectionModel().setCellSelectionEnabled(true);         tabla.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);         tabla.setOnKeyPressed(evt->{             if(evt.getCode().isDigitKey()){                 final TablePosition focusedCell = tabla.focusModelProperty().get().focusedCellProperty().get();                 tabla.edit(focusedCell.getRow(), focusedCell.getTableColumn());             }         });           colsolicitada.setStyle("-fx-alignment: CENTER;");         colsolicitada.setCellValueFactory((param) -> {                         return new SimpleStringProperty(""+param.getValue().getPedido().getCantidadsolicitada());         });          colrecibido.setStyle("-fx-alignment: CENTER;");         colrecibido.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<RecepcionDePedido, Double>, ObservableValue<Double>>() {             @Override             public ObservableValue<Double> call(TableColumn.CellDataFeatures<RecepcionDePedido, Double> param) {                 return new ReadOnlyObjectWrapper(param.getValue().getPedido().getCantidadsolicitada());              }         });         colrecibido.setCellFactory(tc -> new DoubleCell<>());          colvalorfinal.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<RecepcionDePedido, Double>, ObservableValue<Double>>() {             @Override             public ObservableValue<Double> call(TableColumn.CellDataFeatures<RecepcionDePedido, Double> param) {                 return new ReadOnlyObjectWrapper(param.getValue().getPedido().getPrecioinicial());              }         });         colvalorfinal.setCellFactory(tc -> new CurrencyCell<>());         colvalorfinal.setOnEditCommit(event->{             ((RecepcionDePedido) event.getTableView().getItems().get(event.getTablePosition().getRow())).setPreciofinal(event.getNewValue());         });          colobservaciones.setCellValueFactory(new PropertyValueFactory<>("observaciones"));          colproducto.setCellValueFactory((param) -> {             return new SimpleStringProperty(param.getValue().getPedido().getProducto().toString());         });     }     public ObservableList<RecepcionDePedido> getListaRecepcionDePedidos() {         return listaRecepcionDePedidos;     }     public void setListaRecepcionDePedidos(ObservableList<RecepcionDePedido> listaRecepcionDePedidos) {         this.listaRecepcionDePedidos = listaRecepcionDePedidos;          listaRecepcionDePedidos.forEach((e) -> {             tabla.getItems().add(e);         });          for (int i = 0; i < tabla.getColumns().size(); i++) {             util.Metodos.changeSizeOnColumn(tabla.getColumns().get(i), tabla);         }     }  } 

**

¿Cómo mandar los datos de dos formularios con un solo botón para validar en un controlador con javascript y laravel 5.8?

Mi problema es que tengo dos forms y los tengo en diferentes tabs de bootstrap. Estos dos formularios me sirven para generar un registro en la base de datos pero a dos tablas diferentes, sin embargo necesito hacer la validación de los dos formularios en un solo controlador porque la segunda tabla a la que voy a guardar en la base de datos depende de datos del primer formulario. (Solo tengo un botón de submit en el formulario 2)

Quería tomar ventaja de los validadores de laravel pero quería saber si hay una manera de redirigir mis datos que recoja de los dos formularios con javascript, al controlador de laravel para que este me redirija de nuevo a la página pero con los respectivos errores generados por la validación de ambos formularios.

Los dos formularios deben enviarse con un solo botón.

Android Studio, Procol Buffered Java. Problema al guardar datos

Tengo un Proyecto en el que he creado una Tabla con una serie de TextViews, TextView con PopUpMenu y EditText, dinamicamente con un relleno de datos automático de un documento. El problema viene cuando, una vez escrito algo en los EditText y seleccionada alguna opción en el PopUpMenu que reemplazan lo ya escrito antes, no se como hacer que se me guarden para que, la próxima vez que abra el Proyecto, se me abra la tabla con los datos nuevos.

Ejemplo: Un Canal con (nombre, frecuencia, polaridad…) con sus respectivos valores en la tabla. Mediante el EditText donde van situados esos datos, cambio alguno o todos sus valores. Ahora necesitaría saber como guardar los nuevos datos en el documento para que, cuando vuelva a abrirlo, me salgan los nuevos datos y no los viejos. Gracias!

Envio de datos de HTML a Firebase

estoy creando una aplicación móvil y necesito enviar datos numéricos, tipo push, con HTML a Firebase, el problema es que los envía con comillas, y al recibirlos en la aplicación móvil genera error debido a esas comillas, ya que las variables que reciben los datos son de tipo double. Habrá algún método para enviar los mensajes sin comillas?. La función que estoy utilizando es la siguiente, gracias.

[Reference messages collection] var messageRef =  firebase.database().ref('users').push(dato1, dato2);  [Save message to firebase]  function saveMessage(dato1, dato2){   var newMessageRef = messageRef.push();   newMessageRef.set({     dato1: dato1,     dato2: dato2    }); 

Pasar datos de una actividad a otra android

Hola tengo este codigo para enviar datos de una acividad a otra pero me abre automaticamente la otra actividad. Lo que me gustaria saber es como abrir la actividad a la que pasamos los datos desde otra actividad por medio de un boton.

public void Registrar(View view) {     String doc=txtCodigo.getText().toString();     String nom=txtNombre.getText().toString();     String presentacion=txtPresentacion.getText().toString();     String cantidad=txtCantidad.getText().toString();     Intent j = new Intent(this,Informe.class);     if(btnRegistrar.isClickable()) {         ArrayList<String> registro = new ArrayList<String>();         registro.add(doc);         registro.add(nom);         registro.add(presentacion);         registro.add(cantidad);         j.putExtra("doc", txtCodigo.getText().toString());         j.putExtra("nom", txtNombre.getText().toString());         j.putExtra("presentacion", txtPresentacion.getText().toString());         j.putExtra("cantidad", txtCantidad.getText().toString());         Toast.makeText(RegistroRm.this, "Pasaron datos", Toast.LENGTH_SHORT).show();         startActivity(j); 

intente algo así pero me detiene la aplicación.

  public void Informe(View view) {     Intent informe = new Intent(this,Informe.class);     startActivity(informe); } 

Visualizar las tabla existente que hay en una base de datos sql en un Combo Box

Estoy tratando en un ComboBox mostrar las tablas que tengo en mi base de datos sql el error es que me muestra en el ComboBox este mensaje : System.datadatarowview

String consulta = ("select * from sys.tables");         SqlCommand cmd = new SqlCommand(consulta, cnn);         SqlDataAdapter sqlDataAdap = new SqlDataAdapter(cmd);         DataTable dtRecord = new DataTable();         sqlDataAdap.Fill(dtRecord);          Notificaciones_Consulta.DataSource = dtRecord; 

Me podrían ayudar no encuentro la razón.

Gracias,

Problemas con consulta laravel comparar caracteres con datos de excel

el problema que estoy teniendo es que al comparar el dato que obtengo desde ecxel me tira un valor nulo pero si le coloco un valor ’02’ enves de $ fila->gerencia ahi si me funciona y los datos si me los trae de ecxel no se cual puede ser el problema por que no me hace la comparacion bien

 $  gerencia_dinamico = \DB::table('gerencia')                 ->select('gerencia.id')->where('gerencia.codigo', 'like',$  fila->gerencia)->pluck('id')->first();                $  gerencia=$  fila->gerencia;              dd($  gerencia); 

¿Relación de tablas entre diferentes bases de datos en una misma conexión?

¡Hola!

En una aplicación escrita en .NET en la que trabajo accedemos a un servidor donde hay varias Bases de Datos.

Supongamos que tengo Tabla1 en la base de datos Hermite y Tabla2 en Cantor. Algunos campos de ambas tablas coinciden, o sea que debería actualizarse una tabla al actualizarse la otra.

Pero en mi caso, no se actualizan. ¿Qué podría estar fallando? Yo pienso que una de estas 2 opciones: -La relación nunca ha existido y hay que crearla ¿esto se haría en el código de .NET? -La relación existía pero está fallando. ¿A qué puede deberse?

Muchas gracias

como puedo manipular los datos en un recyclerview para poder hacer una operacion asi como un total

estoy creando una app de ventas de productos y en la parte de carrito de compras me ha costado mucho trabajo lo que llevo y no encuentro mucha informacion del mismo, cree una base de datos con sqlite para generar el carrito de compras y en esta parte pude hacer un subtotal de los productos multiplicando el la cantida selecionada por el precio anexo imagen de como se ve, pero ahora lo estoy adaptando con un webservice y esto obteniendo los datos y los muestro en un recyclerview pero solo puedo mostrar el precio y la cantidad selecionada pero no se como poder manipular la informacion para hacer un subtotal y tambien el total de todo lo que selecciono.

introducir el código aquí esta es mi clase donde tengo el recycler view 

public class Pedidos extends AppCompatActivity implements Response.ErrorListener, Response.Listener {

RecyclerView recyclerUsuarios; ArrayList<Carritot> listaUsuarios;  JsonObjectRequest jsonObjectRequest; RequestQueue requestQueue;  @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_pedidos);     listaUsuarios=new ArrayList<>();      recyclerUsuarios= (RecyclerView)findViewById(R.id.recycleview);     recyclerUsuarios.setLayoutManager(new LinearLayoutManager(this.getApplicationContext()));     recyclerUsuarios.setHasFixedSize(true);      requestQueue= Volley.newRequestQueue(getApplicationContext());      cargarweService(); }  private void cargarweService() {     String url = "https://androidprueba20.000webhostapp.com/listapedidos.php";     jsonObjectRequest=new JsonObjectRequest(Request.Method.GET,url,null,this,this);     requestQueue.add(jsonObjectRequest); }  @Override public void onErrorResponse(VolleyError error) {     Toast.makeText(getApplicationContext(), "No hay pedidos "+error.toString(), Toast.LENGTH_LONG).show(); }  @Override public void onResponse(JSONObject response) {     Carritot usuario=null;     JSONArray json=response.optJSONArray("pedido");      try {          for (int i=0;i<json.length();i++){             usuario=new Carritot();             JSONObject jsonObject=null;             jsonObject=json.getJSONObject(i);              usuario.setProducto(jsonObject.optString("id_producto"));             usuario.setCantidad(jsonObject.optInt("cantidad"));             usuario.setPrecio(jsonObject.optInt("precio"));             listaUsuarios.add(usuario);         }         CarritoAdapter adapter=new CarritoAdapter(listaUsuarios);         recyclerUsuarios.setAdapter(adapter);      } catch (JSONException e) {         e.printStackTrace();         Toast.makeText(getApplicationContext(), "No se ha podido establecer conexión con el servidor" +                 " "+response, Toast.LENGTH_LONG).show();     } } 

}

introducir el código aquí y esta es la de sqlite 

public class Carrito extends AppCompatActivity {

ListView listViewcarrito;//personas ArrayList<String> listaInformacion;//informacion ArrayList<Carritot> listapedidos;//usuarios ConexionSQLiteHelper conn; Button pagar, seguir; @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_carrito);      pagar = (Button)findViewById(R.id.pagar);      seguir = (Button)findViewById(R.id.seguir);      conn =new ConexionSQLiteHelper(getApplicationContext(),"bd_pedidos",null,1);      listViewcarrito= (ListView) findViewById(R.id.pedidos);     consultarListaPedidos();     final ArrayAdapter adaptador=new ArrayAdapter(this,android.R.layout.simple_list_item_1,listaInformacion);      listViewcarrito.setAdapter(adaptador);      listViewcarrito.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {         @Override         public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {             final int posicion=i;              AlertDialog.Builder dialogo1 = new AlertDialog.Builder(Carrito.this);             dialogo1.setTitle("Importante");             dialogo1.setMessage("¿ Elimina este pedido ?");             dialogo1.setCancelable(false);             dialogo1.setPositiveButton("Confirmar", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialogo1, int id) {                     listaInformacion.remove(posicion);                     adaptador.notifyDataSetChanged();                 }             });             dialogo1.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialogo1, int id) {                 }             });             dialogo1.show();              return false;         }     });      pagar.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             Intent i = new Intent(Carrito.this,Pagar.class);             Carrito.this.startActivity(i);         }     });      seguir.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             Intent i = new Intent(Carrito.this, Mainmenu.class);             Carrito.this.startActivity(i);         }     }); }  private void consultarListaPedidos() {     SQLiteDatabase db= conn.getReadableDatabase();      Carritot carrito=null;     listapedidos=new ArrayList<Carritot>();     //select * from pedidos     Cursor cursor=db.rawQuery("SELECT * FROM "+utilidades.TABLA_PEDIDO,null);      while (cursor.moveToNext()){         carrito=new Carritot();         carrito.setProducto(cursor.getString(0));         carrito.setCantidad(cursor.getInt(1));         carrito.setPrecio(cursor.getInt(2));          listapedidos.add(carrito);     }     obtenerLista(); } private void obtenerLista() {     listaInformacion=new ArrayList<String>();      int s = 0;      for (int i=0; i<listapedidos.size();i++){         s = listapedidos.get(i).getCantidad() * listapedidos.get(i).getPrecio();         listaInformacion.add("Producto: "+listapedidos.get(i).getProducto()+" Cantidad: "                 +listapedidos.get(i).getCantidad()+" Precio: "+listapedidos.get(i).getPrecio()+         " SubTotal: " +s);     } } 

}

introducir la descripción de la imagen aquí introducir la descripción de la imagen aquí