Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   validar campos dblookupcombobox (https://www.clubdelphi.com/foros/showthread.php?t=83141)

jonydread 16-05-2013 05:07:45

validar campos dblookupcombobox
 
amigos que estoy asiendo mal al colocar el campo para validar al insertar los datos sale un error pero sin ese campo funciona todo bien
dejo el codigo si alguien me puede hechar una mano.
Código Delphi [-]
procedure TMainform.BitBtn2Click(Sender: TObject);
var
cItem: TListItem;
begin
if (dblookupcombobox1.KeyValue < 0) or (dblookupcombobox3.KeyValue < 0)  then
MessageDlg('Debe seleccionar todos los datos', mtWarning, [mbOk],0)
else

begin
  Zquery1.sql.text := 'insert into AsignadosA values (:Fecha,:Sierras,:Trabajador)';
  ZQuery1.ParamByName('Fecha').AsDate := Datetimepicker1.Date;
  ZQuery1.ParamByName('Sierras').AsInteger := dblookupcombobox1.KeyValue;
  ZQuery1.ParamByName('Trabajador').AsString := dblookupcombobox3.KeyValue;
  ZQuery1.ExecSQL;
  zQuery1.SQL.Clear;
  Zquery1.Close;
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA';
  zquery1.Open;
  Listview2.Clear;
while not zquery1.Eof do
begin
cItem := Listview2.Items.Add;
cItem.Caption := zQuery1.fieldbyname('Fecha').AsString;
cItem.SubItems.Add(zQuery1.fieldbyname('Sierras').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('Trabajador').AsString);
zquery1.next;
end;
end;
end;

ecfisa 16-05-2013 07:03:49

Cita:

Empezado por jonydread (Mensaje 460533)
amigos que estoy asiendo mal al colocar el campo para validar al insertar los datos sale un error...

Hola jonydread.

¿ Y cuál es textualmente el mensaje de error ?

Saludos. :)

jonydread 17-05-2013 03:24:28



quitando esto mas el begin posterior obviamente, funciona inserta los datos bien alguna idea?
Código Delphi [-]
if (dblookupcombobox1.KeyValue < 0) or (dblookupcombobox3.KeyValue < 0)  then
MessageDlg('Debe seleccionar todos los datos', mtWarning, [mbOk],0)
else

jonydread 17-05-2013 04:14:41

lo solucione
si bien la forma comprobaba si no estaba seleccionado el combo pero no era el correcto para utilizar lo cambie por NULL
Código Delphi [-]
if (dblookupcombobox1.KeyValue = NULL) or (dblookupcombobox3.KeyValue = NULL)  then
MessageDlg('Debe seleccionar todos los datos', mtWarning, [mbOk],0)
else

jonydread 17-05-2013 06:34:03

con el mismo codigo como puedo evitar duplicar un campo lo estoy asiendo asi pero no me funciona
me dice logic error or missing database
Código Delphi [-]
procedure TMainform.BitBtn2Click(Sender: TObject);
var
cItem: TListItem;
begin
if (dblookupcombobox1.KeyValue = NULL) or (dblookupcombobox3.KeyValue = NULL)  then
MessageDlg('Debe seleccionar todos los datos', mtWarning, [mbOk],0)
else
begin
Zquery1.Close;
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA where Sierras = dblookupcombobox1.KeyValue';
  zquery1.Open;
   if not zquery1.IsEmpty then
     raise exception.Create('Registro Existe')else
     begin
  Zquery1.Close;
  Zquery1.sql.text := 'insert into AsignadosA values (:Fecha,:Sierras,:Operario)';
  ZQuery1.ParamByName('Fecha').AsDate := Datetimepicker1.Date;
  ZQuery1.ParamByName('Sierras').AsInteger := dblookupcombobox1.KeyValue;
  ZQuery1.ParamByName('Operario').AsString := dblookupcombobox3.KeyValue;
  ZQuery1.ExecSQL;
  zQuery1.SQL.Clear;
  Zquery1.Close;
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA';
  zquery1.Open;
  Listview2.Clear;
while not zquery1.Eof do
begin
cItem := Listview2.Items.Add;
cItem.Caption := zQuery1.fieldbyname('Fecha').AsString;
cItem.SubItems.Add(zQuery1.fieldbyname('Sierras').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('Operario').AsString);
zquery1.next;
end;
dblookupcombobox1.KeyValue := NULL;
dblookupcombobox3.KeyValue := NULL;
end;
end;
end;

jonydread 17-05-2013 19:30:37

evitar duplicar un campo
 
como evitar duplicar un campo lo estoy asiendo asi pero no me funciona
me dice logic error or missing database
Código Delphi [-]
procedure TMainform.BitBtn2Click(Sender: TObject);
var
cItem: TListItem;
begin
if (dblookupcombobox1.KeyValue = NULL) or (dblookupcombobox3.KeyValue = NULL)  then
MessageDlg('Debe seleccionar todos los datos', mtWarning, [mbOk],0)
else
begin
Zquery1.Close;
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA where Sierras = dblookupcombobox1.KeyValue';
  zquery1.Open;
   if not zquery1.IsEmpty then
     raise exception.Create('Registro Existe')else
     begin
  Zquery1.Close;
  Zquery1.sql.text := 'insert into AsignadosA values (:Fecha,:Sierras,:Operario)';
  ZQuery1.ParamByName('Fecha').AsDate := Datetimepicker1.Date;
  ZQuery1.ParamByName('Sierras').AsInteger := dblookupcombobox1.KeyValue;
  ZQuery1.ParamByName('Operario').AsString := dblookupcombobox3.KeyValue;
  ZQuery1.ExecSQL;
  zQuery1.SQL.Clear;
  Zquery1.Close;
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA';
  zquery1.Open;
  Listview2.Clear;
while not zquery1.Eof do
begin
cItem := Listview2.Items.Add;
cItem.Caption := zQuery1.fieldbyname('Fecha').AsString;
cItem.SubItems.Add(zQuery1.fieldbyname('Sierras').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('Operario').AsString);
zquery1.next;
end;
dblookupcombobox1.KeyValue := NULL;
dblookupcombobox3.KeyValue := NULL;
end;
end;
end;

NOTA: es la continuacion de este hilo http://www.clubdelphi.com/foros/showthread.php?t=83141 lo puse aca porque creo que es donde corresponde la consulta


saludos gracias!

Casimiro Notevi 17-05-2013 20:00:41

Cita:

Empezado por jonydread (Mensaje 460628)
NOTA: es la continuacion de este hilo http://www.clubdelphi.com/foros/showthread.php?t=83141 lo puse aca porque creo que es donde corresponde la consulta

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

ecfisa 17-05-2013 22:50:01

Cita:

Empezado por jonydread (Mensaje 460628)
como evitar duplicar un campo lo estoy asiendo asi pero no me funciona
me dice logic error or missing database
...

Hola yonydread.

A primera vista esta línea no funcionaría:
Código Delphi [-]
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA where Sierras = dblookupcombobox1.KeyValue';

Debería ser algo parecido:
Código Delphi [-]
  ...
  zquery1.SQL.Text := 'SELECT * FROM AsignadosA where Sierras = :PVALUE';
  zquery1.ParamByName('PVALUE').Value := dblookupcombobox1.KeyValue';
  ...
Aunque no puedo asegurar si es así exáctamente ya que no uso Zeos.

Saludos.:)

nlsgarcia 18-05-2013 07:23:19

jonydread,

Cita:

Empezado por jonydread
...logic error or missing database...

Revisa este código:
Código SQL [-]
zquery1.SQL.Text := 'SELECT * FROM AsignadosA where Sierras = ' + QuotedStr(dblookupcombobox1.KeyValue);
Espero sea útil :)

Nelson.

jonydread 19-05-2013 16:04:12

gracias funciono perfecto tengo un error en esta parte
Código Delphi [-]
 raise exception.Create('Registro Existe')else
dice algo de raise class exeption
pero en fin la cambie por un messagedlg


saludos

jonydread 19-05-2013 17:10:27

a continuar con esto como puedo unir campos para ver si existe campo en ambas tablas
por ejemplo en campo1 de tabla1 y campo1 de tabla2 si existe el numero 1
he probado de este modo pero no logro funcionamiento
Código Delphi [-]
  zquery1.SQL.Text := 'SELECT * FROM  AsignadosA inner JOIN AsignadosB on AsignadosA.Sierras=AsignadosB.Sierras where AsignadosA.Sierras = ' + QuotedStr(dblookupcombobox1.KeyValue);
  zquery1.Open;

saludos!

ecfisa 19-05-2013 21:33:45

Hola jonydread.

Recuerda que Preguntas distintas = hilos distintos . (Punto 8 de la guía de estilo)

Saludos y gracias por tu colaboración :)

jonydread 19-05-2013 22:11:46

ok gracias!


La franja horaria es GMT +2. Ahora son las 03:50:42.

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