Delphi - Validar Datos

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Delphi (en relación al último mes)
Gráfica de Delphi

Validar Datos

Publicado por Carlos (2 intervenciones) el 26/10/2018 15:53:33
Buenos dias
Tengo el siguiente problema.. estoy grabando varios campos en una tabla (MS-SQL SERVER), pero quiero evitar que un registro se repita dos veces el mismo dia.... es decir cuando el empleado almuerze el lunes y vuelva a intentarlo ese mismo dia el sistema no lo permita pero el martes lo deje almorzar... he estado tratando de evitar esa duplicidad con un query diciendo

adoquery.sql.clear
adoquery.sql.add ('Select * from Empleados1 where Fecha (Este campo es de tipo fecha)='+ edit4.txt (Tipo String ))
adoquery.open

if adoquery.IsEmpty then
begin
mostrar mensaje y evitar que se grabe el registro
end
else
grabar datos

el problema es que no encuentro la forma de convertir el campo fecha en strin y me da un error...
ya anterior mentente use la funcion del sistema (Date), para mostrar la fecha en eledit y grabarla en la tabla usando este codigo para mostrar la fecha (edit4.Text:=datetostr(date);)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Validar Datos

Publicado por E.T. (1244 intervenciones) el 26/10/2018 19:49:53
Aqui intervienen varios factores. Te explico, cada manejador de base de datos (SQLServer, MySql, Firebird, Interbase....) guarda a su manera las fechas, además está tambien la configuración regional de tu computadora, por lo tanto la funcion datetostr pudiera arrojarte distintos resultados, intenta lo siguiente
Tambien hay un fallo en tu inserción, las fechas debe ir entre comillas, puedes usar la funcion quotedstr() para eso

1
2
3
4
5
adoquery.sql.clear
adoquery.sql.add ('Select * from Empleados1 where Fecha ='+ quotedstr(formatdatetime('yyyymmdd', strtodate(edit4.txt))));
//Si esto no funciona intenta esto
adoquery.sql.add ('Select * from Empleados1 where Fecha ='+ quotedstr(formatdatetime('yyyymmdd', now)));
adoquery.open
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar