Ayuda con Zeos

Hola buenas tardes estoy usando los componentes Zeos para una aplicación con bd mySql el problema es el siguiente estoy usando una TZMyqlTable, la abro sin problemas pero no me acepta los comandos uppercase, upcase en el filter, coloco en el filter UPPERCASE(CLAVE)=UPPERCASE(EDIT1.TEXT) y me da error, gracias por su ayuda
{"Lat":5.2660078828055,"Lng":-66.8671917915344}

1 Respuesta

Respuesta
1
Te recomiendo convertir primero a MAY, y después usar el filtro:
//****************************************************************>
var
uprClave, uprTexto: String;
begin
uprClave:=UpperCase(Tabla.FieldValues['Campo']);
uprTexto:=UpperCase(Edit1.Text);
{ahora si....}
Filter uprClave=uprTexto;
end;
//|<******************************************************************
Ahora si lo que te marca error es el UpperCase, no recuerdo en que librería esta, pero prueba agregar el StrUtils al USES de tu código.
Cualquier cosa me comentas.
Hola gracias por responder el código es el siguiente:
begin
  Main.ZUsuarios.Filter:='UpperCase(OPE_NOMBRE)="'+UpperCase(Edit1.Text)+'" AND UpperCase(OPE_CLAVE)="'+UpperCase(Edit2.Text)+'"';
Main.ZUsuarios.Filtered:=T;    //aqui me da el error!!!
  Main.ZUsuarios.First;
  if Main.ZUsuarios.Eof then
  begin
    MessageDlg('Usuario o Password Incorrecto', mtError, [mbOK], 0);
    Application.Terminate;
  end;
  if Main.ZUsuarios.FieldByName('OPE_RESERVAS').AsInteger=0 then
  begin
    MessageDlg('El Usuario no Tiene Acceso a este Modulo', mtWarning, [mbOK], 0);
    Application.Terminate;
  end;
  Usuario:=Edit1.Text;
end;
Y el error es UpperCase(OPE_NOMBRE) que es el de Zeos.
¿Aprovecho la oportunidad para preguntarte como establezco una relación maestro detalle con el Zeos?
Gracias por tu colaboración!
Bien por lo que veo estas evaluando el acceso para los usuarios del sistema, normalmente yo utilizo un ZQuery, y filtro mediante SQL:
With ZQuery1 do
         Begin
          Connection:=Main.ZConection1;
          SQL.Clear;
           SQL.Add('Select * from usuarios where OPE_NOMBRE ='+QuotedStr(Edit1.text)+';');
          Active:=True;
           if RecordCount>0 then
                           MessageDlg('Acceso exitoso', mtInfo, [mbOK], 0)
          else
                           MessageDlg('El Usuario no Tiene Acceso a este Modulo', mtWarning, [mbOK], 0);
           End;
Como te darás cuenta, realizo un filtro estricto, con like, si el usuario no existe devolverá recordcount=0 osea que no encontró coincidencias, si encuentra al usuario devolverá 1 entonces sabremos que el usuario si existe.
Para evaluar la contraseña, puedes poner el código en donde puse el mesaje de acceso exitoso (pon este código en lugar de 'MessageDlg('Acceso exitoso', mtInfo, [mbOK], 0)' ):
if ZQuery1.fieldvalues['Password']=Edit.Text then
                MessageDlg('Acceso exitoso', mtInfo, [mbOK], 0)
Else
                MessageDlg('Contraseña Incorrecta!', mtWarning, [mbOK], 0);
Respecto a tu pregunta de relaciones... me imagino que te refieres que que al actualizar aúna tabla se afecte la segunda automáticamente... bien pues si es así, tendría que trabajar con Triggers en los eventos de BD, afterInsert, BeforeInsert, AfterDelete, BeforeDelete, etc.
Eso depende del motor de base de datos que utilices, si utilizas MySQL, tendrías que bajarte la ultima version que es la que soporta Triggers, o bien hacerlo mediante Procesos almacenados, si Trabajas con InterBase o Firebird, no tendrás problema Alguno.
Espero te sea de utilidad... de cualquier forma, ¿para cualquier duda solo postea OK?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas