Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Guardar ruta de una imagen en MySQL (https://www.clubdelphi.com/foros/showthread.php?t=88625)

jose.ignacio.ve 06-07-2015 01:59:16

Guardar ruta de una imagen en MySQL
 
Hola foro. Tengo un problema busque en todos los foros y no lo puedo solucionar. Estoy haciendo un sistema de gestion de alumnos y quisiera guardar una ruta de la imagen que seria del alumno que voy a dar d alta. tengo un campo 'foto' en la tabla alumnos es de tipo varchar donde me tendria q guardar la direccion de la foto donde se encuentra. yo habia puesto
Código Delphi [-]
ruta:= OpenPictureDialog1.FileName;
 fmodulo.talumnos.FieldByName('foto').AsString:= ruta;
 fmodulo.talumnos.Post;
pero me sale un error que dice que field 'foto' cannot by modified
o que alguien me diga otra tecnica para programar lo que quiero. yo quiero registrar un alumno donde pongo todos sus datos y una foto del alumno y que se guarde la direccion de donde se encuentra la imagen, luego cuando yo valla a registrar su asistencia yo lo busque y me aparezca la foto que se guardo.

nlsgarcia 06-07-2015 02:18:27

jose.ignacio.ve,

Cita:

Empezado por jose.ignacio.ve
...Guardar ruta de una imagen en MySQL...me sale un error que dice que field 'foto' cannot by modified...

:rolleyes:

Pregunto : ¿Activastes el modo de edición del DataSet? :confused:
Código Delphi [-]
...
   ruta := OpenPictureDialog1.FileName;
   fmodulo.talumnos.Edit;
   fmodulo.talumnos.FieldByName('foto').AsString := ruta;
   fmodulo.talumnos.Post;
...
Espero sea útil :)

Nelson.

Casimiro Notevi 06-07-2015 08:58:45

Y para ahorrar una variable y una línea :)
Código Delphi [-]
fmodulo.talumnos.Edit;
fmodulo.talumnos.FieldByName('foto').AsString := OpenPictureDialog1.FileName;
fmodulo.talumnos.Post;

jose.ignacio.ve 06-07-2015 18:28:14

hola si la tabla esta en modo insert. ya que al presionar el boton aceptar me guarda todos los datos de los dbedit.

jose.ignacio.ve 06-07-2015 18:34:25

Código Delphi [-]
procedure TFalumnos.Button1Click(Sender: TObject);

var
vence:word;
inicio: tdate;
ruta:string;
begin

        vence:=   DaysInMonth(now);
        if modificacion=false then
              begin
                     fmodulo.talumnos.FieldByName('fecha_ingreso').AsDateTime:= now;
                     fmodulo.talumnos['fecha_inicio']:=self.DBinicio.Text;

              end
         else
               begin
                    fmodulo.talumnos.Active:=true;
                    fmodulo.talumnos.Edit;

                    modificacion:=false;

               end;

         if self.dbapellidos.Text='' then

                 begin
                      Application.MessageBox('El campo Apellido no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                        self.dbapellidos.SetFocus;
                      end
                   else
                    if self.DBnombres.Text='' then

                 begin
                      Application.MessageBox('El campo Nombre no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                        self.DBnombres.SetFocus;
                 end
                   else
                    if self.DBinicio.Text='' then
                      begin
                      Application.MessageBox('El campo Fecha de inicio no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                        self.DBinicio.SetFocus;
                      end
                   else
                    if self.DBLookupComboBox1.KeyValue=null then
                      begin
                      Application.MessageBox('El campo tarifa no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                        self.DBLookupComboBox1.SetFocus;
                      end
                    else
                    if self.DBdni.Text='' then
                     begin
                      Application.MessageBox('El campo Dni no puede ser vacio','Gimnasio',MB_OK+MB_ICONWARNING);
                        self.DBdni.SetFocus;
                      end ;

                       begin

                  fmodulo.talumnos['fecha_vencimiento']:= fmodulo.talumnos['fecha_inicio'] + vence;
                  fmodulo.talumnos.FieldByName('foto').AsString:=  OpenPictureDialog1.FileName;
                  fmodulo.talumnos.Post;
                  fmodulo.zqmodificacionestado.ExecSQL;
                  fmodulo.ZQlisalumnosfecha.Active:=true;
                  fmodulo.zqlisalumnosfecha.refresh;
                  fmodulo.talumnos.Refresh;
                  fmodulo.ZQlisalumnosfecha.Close;
                  fmodulo.talumnos.Close;
                  self.Close;
                       end;
este seria el codigo del boton aceptar.

jose.ignacio.ve 06-07-2015 18:37:06

la tabla alumno se activa al llamar al formulario osea activo la tabla pongo en modo insert y mueestro el formulario. o si alguien me suguiere otra opcion para tratar las imagenes de los alumnos. sin tener q guardarla en la base de datos. o es mejor guardarla en la base de dato? eso me esta volviendo loco :(

ecfisa 06-07-2015 18:50:07

Hola jose.ignacio.ve.

Si creaste los campos persistentes, desde el Field Editor poné la propiedad ReadOnly del campo "foto" en False o de otro modo, en algún punto antes de asignarle el valor, agrega esta línea a tu código:
Cita:

Empezado por jose.ignacio.ve (Mensaje 494058)
Código Delphi [-]
 ruta:= OpenPictureDialog1.FileName;

 fmodulo.talumnos.FieldByName('foto').ReadOnly := False;  // <---- Esta

 fmodulo.talumnos.FieldByName('foto').AsString:= ruta;
 fmodulo.talumnos.Post;

Saludos :)

jose.ignacio.ve 06-07-2015 19:47:12

muchas gracias me funciono! ahora otra pregunta! como hago para q cuando guarde la direccion se cree una carpeta donde vallan todas las fotos y que cree en donde se instalo la aplicacion.. no se si me explico

Casimiro Notevi 06-07-2015 20:01:45

ahora otra pregunta! ;)

ecfisa 06-07-2015 21:35:24

Ya lo hemos dicho hasta el cansancio...:(, pero por si no quedó suficientemente claro:
Cita:

12. Solo se permite una pregunta por hilo, es una cuestión de simplicidad y objetividad en las respuestas y facilita las búsquedas.
Saludos :)


La franja horaria es GMT +2. Ahora son las 23:36:58.

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