PDA

Ver la Versión Completa : Query insertar dato en un Edit


Basi
04-10-2012, 23:11:57
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.

Basi
04-10-2012, 23:49:14
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