Access frente a ASP
Ejemplo 1:
Es un error muy común utilizar el comodín * que usa Access en consultas en el
lenguaje ASP.
Access utiliza * como comodín para sustituir múltiples
caracteres mientras que ASP utiliza %. En el caso de sustitución de un carácter,
Access utiliza ?, mientras que ASP _
Resumen:
Access: *, ?
ASP: %, _
He aquí varios ejemplos:
SELECT * from Clientes where Ciudad LIKE "N*"
Funciona en Access, produce un error en ASP.
SELECT * from Clientes where Ciudad LIKE "N%"
Funciona bien en ASP.
SELECT * from Clientes where phrase LIKE "N?w"
Funciona en Access, produce un error en ASP.
SELECT * from Clientes where phrase LIKE "N_w"
Funciona bien en ASP.
Ejemplo 2: ¿Son los nombres de campo un problema?
a. Nombres prohibidos.
No le pongas como nombre "date" a un campo:
Una query como esta:
Select * from empleados where date=#1/17/98#
no funcionará porque "date" es un nombre restringido.
Renombra el campo para que la query quede como:
Select * from empleados where hiredate=#1/17/98#
b. Campos de nombre con espacios.
Un nombre de campo con espacios creará problemas si no lo pones entre corchetes.
Una consulta como:
select * from empleados where estado de residencia='MD'
no funcionará aunque sea sintácticamente correcta porque "state of residence" es
un campo con espacios
Una consulta como:
select * from empleados where [estado de residencia]='MD'
sí funcionará porque el campo ha sido delimitado por corchetes
Ejemplo 3: Errores comunes.
a. Los campos de textos vienen delimitados por ' ', cosa que no ocurre
con los numéricos.
Una query como:
select * from empleados where Ciudad=Rockville and Estado=MD and
mesesderesidencia>9
no funcionará porque the text fields were not delimited properly.
Una query como:
select * from empleados where Ciudad='Rockville' and Estado='MD' and
mesesderesidencia>9
sí funcionará.
b. Encierra las fechas con los delimitadores: # #
Una query como:
select * from empleados where birthdate>1/1/1966
no funcionará porque los campos de fecha no están delimitados correctamente.
Una query como:
select * from empleados where birthdate>#1/1/1966#
sí funcionará bien.