Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ingresar texto a DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=65033)

Malau 16-11-2009 23:25:56

Ingresar texto a DBGrid
 
Hola a todos, ojalá alguien pueda ayudarme con un problema que hace días no logro solucionar… Estoy haciendo una aplicación en la que necesito ‘reservar turnos’, a éstos los muestro en un dbgrid de acuerdo a la fecha y médico determinados. Hasta acá todo bien… Lo que ahora necesita hacer en poder ingresar texto al dbgrid en tiempo de ejecución, lo que ingresaré será el nombre, obra social, etc de quién reserve determinado turno.
Busqué en los foros y no encontré nada que pueda ayudarme.
Estoy usando Delphi 7 e InterBase 6.5. Otra cosa! El dbgrid está relacionado a IBQuery por ser una consulta…
Gracias, espero respuestas…

rgstuamigo 17-11-2009 00:23:54

Cita:

Empezado por Malau (Mensaje 346708)
Hola a todos, ojalá alguien pueda ayudarme con un problema que hace días no logro solucionar… Estoy haciendo una aplicación en la que necesito ‘reservar turnos’, a éstos los muestro en un dbgrid de acuerdo a la fecha y médico determinados. Hasta acá todo bien… Lo que ahora necesita hacer en poder ingresar texto al dbgrid en tiempo de ejecución, lo que ingresaré será el nombre, obra social, etc de quién reserve determinado turno.
Busqué en los foros y no encontré nada que pueda ayudarme.
Estoy usando Delphi 7 e InterBase 6.5. Otra cosa! El dbgrid está relacionado a IBQuery por ser una consulta…
Gracias, espero respuestas…

Pues ten en cuenta que el DBGrid es solo un componente que se usa para mostrar los registros del DataSet(Query o Table) en tu caso el IBQuery, es decir es al Dataset a quien debes colocarles los registros pero escribiendo en el DBGrid, desde luego lo que se escribe debe ser compatible con los tipos de datos de cada campo (Field).Por ejemplo en un campo fecha el dbGrid no me va permitir letras y asi respectivamente....;)
Para poder insertar datos hay que poner el DataSet en estado de insercion o edicion , desde codigo mas o menos asi:
Código Delphi [-]
begin
  IBQuery1.Insert;//Pongo el Dataset en estado de insercion
    IBQuery1.Fields[0].AsInteger:=StrToInt(Edit1.Text);//asigno algo al primer campo
    IBQuery1.Fields[1].AsString:=Edit2.Text;//asigno algo al segundo campo
    ...
    ...
  IBQuery1.Post;// confirmo el almacenamiento en la base de dato.
end;
Desde luego se lo puede hacer tambien(sin codificar casi nada) usando el componente DBNavigator (que esta en la pestaña Data Controls de la paleta de componentes), ya que este componente tiene botones para poder insertar, editar, eliminar,confirmar el guardado en la base de dato, cancelar y refrescar los datos y aparte te permite la navegacion entre registros(atras, adelante, primero o ultimo registro) ; te aconsejo hecharle una miradita.;)
Solo debes engancharlo con el DataSource especifico(propiedad DataSource).;).
Saludos...:)

Malau 17-11-2009 23:36:14

Hola rgstuamigo, mil gracias por tu respuesta!
Sabés que no fue muy útil lo que me sugeriste hacer con mi Query pero creo haber solucionado la situación: desde el evento OnCellClick del DBGrid llamo a otro Form, donde al abrirlo pongo mi DataSet en edición, para accederlo uso componentes DBEdits.
Para llegar al registro de la tabla que necesito primero se me ocurrió hacer un locate y no funcionó, luego se me ocurrió una consulta SQL pero tampoco dio resultado y por último hice un bucle (while) para comprobar si se cumplen las 3 condiciones: fecha, hora y médico.
Esta última es la que me permite hacer lo que quiero. Otra vez gracias!


La franja horaria es GMT +2. Ahora son las 10:51:36.

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