Ir al contenido


Foto

TSQLQuery, Lazarus Eof y Bof


  • Por favor identifícate para responder
2 respuestas en este tema

#1 Hapg18

Hapg18

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 01 marzo 2020 - 09:44

Ante todo reciban un cordial saludo de mi parte, soy novel en FPC Lazarus,no programaba en este lenguaje desde TurboPascal, voy al tema, hace 1 semana hice una aplicación que su principal función es conectarse a 1 DB MSSql Server y todo va perfecto, hasta que al TSQLQUERY le pongo una condición if then else para saber si consiguió o no el registro, en caso de que no lo consiga salta un tlabel indicando que no existe, pero no funciona
Aqui el fragmento con la falla:
 
 

delphi
  1. { Open query }
  2. //SQLQueryExample01.open;
  3. with SQLQueryExample01 do
  4.  
  5. begin
  6. // while SQLQueryExample01.Eof do
  7. //DataSourceExample01.DataSet.First;
  8. //Reg := SQLQueryExample01.RecordCount.MinValue;
  9. // if SQLQueryExample01.EOF then
  10. if (DataSourceExample01.Dataset.BOF) then// and not (DataSourceExample01.DataSet.EOF) then
  11. // SQLQueryExample01.IndexFieldNames:=;
  12.  
  13. begin
  14. showmessage('*A La Belgas...!*');
  15. //raise Exception.Create('*A La Belgas...!*');
  16. STextNoExiste.Visible := True;
  17. STextNoExiste.caption := 'EL Producto No Existe en el Inventario...!';
  18. // edit1.SetFocus;
  19.  
  20. end
  21. else
  22. begin
  23.  
  24. dbtext1.DataSource := DataSourceExample01;//**SQLQueryExample01.FieldByName(Precio).asstring;
  25. dbtext2.DataSource := DataSourceExample01;
  26. dbtext1.DataField := 'Precio';
  27. dbtext2.DataField := 'c_descri';
  28. end;
  29.  
  30. if Active then
  31. Close;
  32. Open;
  33. edit1.SetFocus;
  34. end;
  35. //
  36. end;
  37. { begin
  38. key:=#0;
  39. SelectNext(ActiveControl,true,true);
  40. end;}

 
Agradezco mucho cualquier ayuda que puedan ofrecer...! Gracias desde Venezuela
  • 0

#2 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 01 marzo 2020 - 09:08

Hola, yo haría algo asi:


php
  1. SQLQueryExample01.close;
  2. SQLQueryExample01.SQL.Text:='select codigo,stock WHERE codigo = :cod';
  3. SQLQueryExample01.ParamByName('cod').AsString:= buscado.text;
  4.  
  5. SQLQueryExample01.Open;
  6. if SQLQueryExample01.RecordCount = 0 then
  7. MessageDlg ('informe', 'No existe la busqueda';

 


  • 0

#3 Hapg18

Hapg18

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 03 marzo 2020 - 01:53

Hola, yo haría algo asi:


delphi
  1. SQLQueryExample01.close;
  2. SQLQueryExample01.SQL.Text:='select codigo,stock WHERE codigo = :cod';
  3. SQLQueryExample01.ParamByName('cod').AsString:= buscado.text;
  4.  
  5. SQLQueryExample01.Open;
  6. if SQLQueryExample01.RecordCount = 0 then
  7. MessageDlg ('informe', 'No existe la busqueda';

Ante todo, gracias por responder, ya lo resolvi, resulta que "SQLQueryExample01.Close;" no lo estaba colocando:
Aqui el codigo:

delphi
  1. if SQLQueryExample01.BOF and SQLQueryExample01.EOF then
  2. // if (SQLQueryExample01.FieldByName(Precio).AsFloat) < 1 then // and not (DataSourceExample01.DataSet.BOF) then
  3. // if Price < 1 then // and not (DataSourceExample01.DataSet.BOF) then
  4. // SQLQueryExample01.IndexFieldNames:=;
  5.  
  6. begin
  7. //showmessage('*A La Belgas...!*');
  8. //raise Exception.Create('*A La Belgas...!*');
  9. STextNoExiste.Visible := True;
  10. STextNoExiste.caption := 'EL Producto No Existe en el Inventario...!';
  11. // edit1.SetFocus;
  12. end
  13. else
  14. begin
  15. SQLQueryExample01.Close;
  16. STextNoExiste.Visible := False;
  17. dbtext1.DataSource := DataSourceExample01;//**SQLQueryExample01.FieldByName(Precio).asstring;
  18. dbtext2.DataSource := DataSourceExample01;
  19. dbtext1.DataField := 'Precio';
  20. dbtext2.DataField := 'c_descri';
  21. end;
  22.  
  23. if Active then
  24. Close;
  25. Open;
  26. edit1.SetFocus;
  27. end;
  28. //
  29. end;
  30. { begin
  31.   key:=#0;
  32.   SelectNext(ActiveControl,true,true);
  33.   end;}
  34. end;

 
Gracias NIkolas, recien voy migrando a Pascal Con Lazarus


  • 0