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 de erickahr
1
1
erickahr, tengo mas de tres años desarrollando en delphi, actualmente...
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?