la cadena de connexion es
Código PHP:
Set MM_sumer_con_STRING = Server.CreateObject("ADODB.Connection")
MM_sumer_con_STRING.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("sumer.mdb"))
| ||||
Respuesta: filtrar por fechas error devuelto Microsoft OLE DB Provider for ODBC Drivers (0x80040E0C) No se estableció ningún texto de comando para el objeto de comando. /intranet_esihuman/z_prova_total.asp, línea 24 linea 24 es set rs = oConn.execute(sql) (lo he puesto en un arxivo nuevo y limpio) |
| |||
Respuesta: filtrar por fechas Entonces sustituye donde pone oConn por MM_sumer_con_STRING (el nombre de la variable me lió) y borra la instancia oConn (el set oConn = server.CreateObject.... ) ¿la variable sql va vacia? comprueba su valor.... mejor..... ponme el código completo de la página
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| ||||
Respuesta: filtrar por fechas me da el error Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1. /intranet_esihuman/z_prova_total.asp, línea 24 en la linea 24 tengo te pongo el codigo tal y como lo tenia ahora Código PHP: |
| |||
Respuesta: filtrar por fechas Quitale esta linea: oConn.Open MM_sumer_con_STRING y vuelvelo a correr. Un saludo
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| ||||
Respuesta: filtrar por fechas me da el error Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1. /intranet_esihuman/z_prova_total.asp, línea 25 te copio todo el codigo otra vez Código PHP: |
| |||
Respuesta: filtrar por fechas ¿Es ese todo el código? Es decir, ¿has puesto el archivo de inclusión donde defines MM_sumer_con_STRING? En caso de que respondas a la primera pregunta SI y a la segunda NO, pon estas dos lineas al principio del código: Set MM_sumer_con_STRING = Server.CreateObject("ADODB.Connection") MM_sumer_con_STRING.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("sumer.mdb")) Por cierto, ¿el SELECT * FROM CURRICULUMS te funciona? Un saludo
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| ||||
Respuesta: filtrar por fechas todo el codigo Código PHP: y el select * from curriculums si que funciona |
| |||
Respuesta: filtrar por fechas He emulado todo en mi server (base de datos, cadena de conexión, etc) y funciona correctamente. Solo se me ocurre un posible problema: la versión Access de la BD. Hay 4: 1997, 2000, 2002-2005 o 2007. La función dateDiff esta implementada desde 2000 o la 2002-2005 y es posible que cambie algun parámetro en ellas. Si sigues interesado en esta forma de obtener la edad te recomiendo que abras la base de datos en tu Access del PC, crees una consulta y pegues la sentencia SQL a ver si te funciona correctamente. Ya te digo, a mi me funciona tanto en el entorno de Access como a traves de ASP VBScript. Un saludo
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| ||||
Respuesta: filtrar por fechas Yo uso Access 2003 te pongo una iamgen de tomo tengo diseñada la tabla haver si es como tienes tu diseñado el campo fecha_naixement http://www.esigual.com/DISENOTABLA.JPG he provado de hacer esta sentencia sobre el access SELECT * FROM curriculums WHERE DateDiff("yyyy",DATA_NAIXEMENT, Date()) >= 18 and DateDiff("yyyy",DATA_NAIXEMENT, Date()) <= 20; y me ha funcionado a la perfeccion no se por donde puede venir el problema |
| |||
Respuesta: filtrar por fechas Lo siento, llevo todo el dia peleandome con Delphi ![]() Pues si, es exactamente como lo tengo yo (bueno, con menos campos pero eso da igual). Lo único que nos queda por chequear es la cadena de conexión aunque no deberia de fallar por ahí. Yo uso OLEDB: Provider=Microsoft.Jet.OLEBD.4.0; Data Source=dir_de_la_base_de_datos; Tu usas ODBC (MSDASQL) usando una conexión DSN less: Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)}; DBQ=dir_de_labase_de_datos; (puedes evitarte el Provider=MSDASQL pero si lo pones, no pongas ningun espacio entre el ; y Driver) DSN Less esta muy extendido entre los server (es mas antiguo que OLEDB) y OLEDB es mas potente pero requiere tener instalado en el server el MDAC 2.0 o superior. Un saludo
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| ||||
Respuesta: filtrar por fechas bue te lo puedes creer? con esto no me funciona Dim MM_sumer_con_STRING Set MM_sumer_con_STRING = Server.CreateObject("ADODB.Connection") MM_sumer_con_STRING.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("sumer.mdb")) %> pero con este si Set MM_sumer_con_STRING = Server.CreateObject("ADODB.Connection") 'Conn.Mode = adModeReadWrite MM_sumer_con_STRING.Open("Provider=Microsoft.Jet.O LEDB.4.0; Data Source=" & Server.MapPath("sumer.mdb")) que diferencia hay entre el microsoft.jet.OLEDB y el Microsoft Acces driver? |
| |||
Respuesta: filtrar por fechas jajajajajaja, bloody DSN less (perdon por la expresión). La verdad es que yo no te recomiendo paginar usando las opciones del recordset. Me gusta más hacerlo por SQL pero bue... es mas complicado, si. Supongo que si, que se puede. Todo es cuestion de probar... Respecto a la diferencia te lo expliqué en el post anterior. Uno es por OLEDB y el otro por ODBC (más antiguo). Un saludo y me alegro que te funcione ![]()
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| ||||
Respuesta: filtrar por fechas ahora que funciona he probado el int(dateDiff("d", Fecha_nacimiento, date())/365) > 18 and int(dateDiff("d", Fecha_nacimiento, date())/365) < 18 y me saca datos erroneos tambien he probado el ELECT * FROM curriculums WHERE DateDiff(""yyyy"", data_naixement, Date()) >= 18 and DateDiff(""yyyy"", data_naixement, Date()) <= 18; me saca esto 02/06/1990 18 09/08/1990 17 06/08/1990 18 el del 9/08/1990 no es correcto por que aun tiene 17 años |
| |||
Respuesta: filtrar por fechas Si, es un problema de los años bisiestos. Dejame hasta mañana y te busco una solucion. Un saludo
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |
| |||
Respuesta: filtrar por fechas Creo que lo he conseguido. Discurramos: Un año bisiesto es aquel que tiene un dia mas cada 4 años pero cada 400 años hay que eliminar 3 años. Es decir, un año bisiesto son todos los divisibles por 4 y por 400 menos los que son divisibles por 100. Es decir: 1 año dura 365+1/4-3/400=365,2425 días Por lo cual: SELECT * FROM CURRICULUMS WHERE int(dateDiff("d", Fecha_nacimiento, date())/(365+1/4-3/400)) >= 18 and int(dateDiff("d", Fecha_nacimiento, date())/(365+1/4-3/400)) <= 20 Esto te dará exactamente la edad correcta. Un saludo
__________________ "Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié - |