Ver la Versión Completa : Query insertar dato en un Edit
hola a todos como ya sdaben soy nuevo en delhpi y bueno me la paso o tratando de apreder cada dia un poco mas y bueno la duda que tengo que eh buscado y no eh podido hacer es como insertar datos en los edit mediante el query.. ya teniendo una base de datos... bueno si me pudieran ayudar.. o darme algun lugar donde pueda guiarme se le agradeceria saludos..
ecfisa
04-10-2012, 23:40:31
Hola Basi.
Te pongo un ejemplo simple:
procedure TForm1.tuQueryAfterScroll(DataSet: TDataSet);
begin
with DataSet do
begin
Edit1.Text := FieldByName('CAMPO_1').AsString;
Edit2.Text := FieldByName('CAMPO_2').AsString;
Edit3.Text := IntToStr(FieldByName('CAMPO_3').AsInteger);
...
end;
end;
En este caso se aprovecha el evento AfterScroll del query para ir mostrando los campos en los Edits a medida que se va cambiando de registro activo.
Saludos.
Dejame probarlo y adadtar la idea a lo que ya estaba practicando..
antes estaba haciendo estos ejemplos para sigientes y atras.
procedure TForm1.SiguienteButtonClick(Sender: TObject);
begin
PersonasQuery.Open;
PersonasQuery.Next;
LasNameEdit.Text:=(PersonasQueryLasName.value);
CiudadEdit.Text:=(PersonasQueryCiudad.value);
end;
procedure TForm1.AtrasButtonClick(Sender: TObject);
begin
PersonasQuery.Open;
PersonasQuery.prior;
LasNameEdit.Text:=(PersonasQueryLasName.value);
CiudadEdit.Text:=(PersonasQueryCiudad.Value);
end;
y bueno para registrar un nuevo registro agrege un nuevo query que lo llame asi RegistrarQuery y en su propidad SQL coloque esto
insert into personas values ();
y bueno no se si me captan la idea creo que mi problema sera en el sql..
buenos gracias por reponder efisa saludos
ecfisa
05-10-2012, 00:30:57
creo que mi problema sera en el sql..
Hola.
La cadena SQL (cambiando los nombres de campo por los correspondientes) como ejemplo sería:
with tuQuery do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO PERSONAS (CAMPO_1, CAMPO_2, ..., CAMPO_N)');
SQL.Add('VALUES (:CAMPO_1, :CAMPO_2, ..., :CAMPO_N )');
ParamByName('CAMPO_1').AsString := Edit1.Text;
ParamByName('CAMPO_2').AsInteger:= StrToInt(Edit2.Text);
...
ParamByname('CAMPO_N').AsString := EditN.Text;
ExecSQL; // No uses Open o Active en este caso
end;
Aunque yo acostumbro utilizar el mismo nombre del campo para los nombres de los parámetros, pueden ser los que gustes siempre que se precedan por dos puntos ':' en la cadena SQL.
Saludos :)
cancun
05-10-2012, 00:46:23
Hola
Por que usas Edits para mostrar la información? si puedes usar DBEdits o DBTexts y te ahorras bastante código o tal vez te sirva un DBGrid, los haz probado?
Saludos
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.