Foros del Web » Programando para Internet » ASP Clásico »

Error al Leer un Campo de BD

Estas en el tema de Error al Leer un Campo de BD en el foro de ASP Clásico en Foros del Web. Muy Buenas, Utilizo una página.asp para actualizar los datos de mis clientes, estos se identifican, y les muestro todos sus datos para que realicen modificaciones. ...
  #1 (permalink)  
Antiguo 29/12/2002, 17:04
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Error al Leer un Campo de BD

Muy Buenas,

Utilizo una página.asp para actualizar los datos de mis clientes,
estos se identifican, y les muestro todos sus datos para que realicen modificaciones.

Sin embargo, tengo un maldito campo que no se muestra, creo que lo he comprobado todo, pero no doy con el error.

La variable beautocur es undefined :

var beautocur = String (rsusu.fields.item("eautocur"));

Siempre es undefined, es decir, tenga o no datos el campo en la BD.

Debe ser un error de JAVASCRIPT, pero, ¿Cúal?.

Salu2. :cantar:
  #2 (permalink)  
Antiguo 29/12/2002, 17:31
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Cuando obtienes el error, al hacer el update?
Pon las lineas de codigo donde tomas los valores y haces el update.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #3 (permalink)  
Antiguo 29/12/2002, 17:39
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Hola Maestro,

Es al leer de la base de datos.

var beautocur = String (rsusu.fields.item("eautocur"));

Salu2.
  #4 (permalink)  
Antiguo 29/12/2002, 17:44
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Deberia valerte asi tambien:
var beautocur = String (rsusu("eautocur");
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #5 (permalink)  
Antiguo 29/12/2002, 18:16
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Voy a ver, pero utilizo una línea de código igual para el resto de campos de la misma tabla y no me dan ningún problema.

Salu2.
  #6 (permalink)  
Antiguo 29/12/2002, 18:20
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 3 meses
Puntos: 29
Tal vez sea por que ese csmpo está vacío?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 29/12/2002, 18:21
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Probado y en las mismas: undefined.

Salu2.
  #8 (permalink)  
Antiguo 29/12/2002, 18:25
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Hola ChuLoSoy,

Tengo un campo igual en la misma tabla, y me lo muestra sin ningún problema esté vacio o no.

Salu2.
  #9 (permalink)  
Antiguo 29/12/2002, 18:32
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 3 meses
Puntos: 29
Puedes poner un poco más de código?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #10 (permalink)  
Antiguo 29/12/2002, 19:10
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Pero si no hay mas código, es decir:

1. Creo una conexión a la BD y la abro.
2. Creo el RecordSet.
3. Extraigo los valores de los campos a unas variables:
var beautocur = String (rsusu("eautocur"));
4. Muestro los datos del registro del cliente para que pueda
modificarlos.

Todos los campos bien, excepto este dicho campo que es undefined.

Salu2. :cantar:
  #11 (permalink)  
Antiguo 29/12/2002, 19:52
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 3 meses
Puntos: 29
¿Qué tipo de campo es? ¿Para qué usas el string()?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #12 (permalink)  
Antiguo 29/12/2002, 20:12
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
1. String(), convierte el valor en una cadena, se utiliza para evitar errores o resultados inesperados. No siempre es necesario utilizar esta función pero evita problemas.

2. Es varchar de 2000 de longitud.

Salu2.
  #13 (permalink)  
Antiguo 02/01/2003, 16:49
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
¿Retomamos el tema?

1. Son 2 campos varchar (2000) los que tengo en la misma tabla de la BD, ¿ Puede ser esto un problema ?.

2. He comprobado que la consulta no me trae ningún valor del campo eautocur.

3. Cuando utilizo:

var beautocur = String (rsusu.fields.item("eautocur"));

entonces beautocur vale undefined.

4. Cuando utilizo:

var beautocur = rsusu.fields.item("eautocur");

entonces beautocur vale ' '.

5. En la base de datos eautocur contiene una cadena de texto.

6. Para otro campo de la BD (eautobio), también varchar(2000), realizo las mismas operaciones y si me recupera su valor.

7. Aunque no me recupera el valor que tiene en la base de datos, si introduzco texto, este se actuliza en la BD sobreescribiendo el que existía.


¿ Qué puedo hacer ?

Salu2.
  #14 (permalink)  
Antiguo 02/01/2003, 19:12
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
estas tratando de asignar un valor de asp a javascript?:..


si es asi te recomiendo que lo hagas de esta forma.

<script>
var variable= '<%=recordset("campo")%>';
alert (variable);
</script>

de todas formas verifica que este dato haya sido cargado desde codigo servidor.

<%
dim variable
variable = recordset("campo")
response.write variable
%>
  #15 (permalink)  
Antiguo 03/01/2003, 08:57
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Bueno, en realidad defino como lenguaje de script a javascript:

<%@ LANGUAGE = JavaScript %>

Estando dentro del bloque de código asp, no tendría que utilizar:
<%= ... %>.

No obstante, por probar ...

Salu2.
  #16 (permalink)  
Antiguo 03/01/2003, 09:20
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Os voy a poner la parte del código donde realizo la consulta:

<%@ LANGUAGE = JavaScript %>

<%

Response.Buffer=true;

'Recibo la identificación del usuario:

var fusu = String (Request.Form("usu"));
var fpas = String (Request.Form("pas"));

'abro la conexión.

'Creo el recordSet

if (rsusu.EOF)
{
'Compruebo que el usuario existe, en caso contrario redireciono.
}
else
{
if ('Si el usurio exite y la contraseña es la correcta)
{

var bnom = String (rsusu.fields.item("nom"));
.................................................. .................
var bbio = String (rsusu.fields.item("bio"));
(Este campo también es varchar(2000) y todo bien.)
var bcur = String (rsusu.fields.item("cur"));
var bccc = String (rsusu.fields.item("ccc"));
}
}
%>

Salu2.
  #17 (permalink)  
Antiguo 04/01/2003, 11:50
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
por las dudas el campo que NO se muesta es ntext ?
__________________
On error no hago nada porque deje de fumar...
  #18 (permalink)  
Antiguo 04/01/2003, 13:06
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Efectivamente dieguicho,

En primer lugar, el Campo es ntext..

Y en segundo lugar, me han comentado que es posible parchear ACCESS para administrar remotamente una base de datos SQL SERVER. Ahora, con el proyecto ACCESS puedo acceder a la base de datos SQL SERVER del servidor, pero no puedo añadir tablas, ni modificar las existentes ....

(vaya cruce...)

Salu2.

Última edición por evoarte; 04/01/2003 a las 16:41
  #19 (permalink)  
Antiguo 05/01/2003, 17:45
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
Hola de nuevo,

Sabiendo que ntext es un campo SQL SERVER de valores Unicode de longitud variable, que la entrada en la columna es un puntero a la posición de los datos, y que el dato se almacena de manera a los datos de la tabla.

¿ Cómo se recupera ?.

Otra cosa sería estudiar si son convenientes este tipo de datos.

Salu2.
  #20 (permalink)  
Antiguo 07/01/2003, 15:45
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 22 años, 9 meses
Puntos: 2
SOLUCIÓN

Hola Amigos,

Bueno, después de dar "algunas vueltas" con este tema, en mi último mensaje planteaba dos problemas:

1. Campos ntext.
2. Access y SqlServer2000

Para la primera , leyendo la documentación que ya existe en los foros, y tras las pruebas que yo mismo he ido realizando, se puede concluir que este tipo de campos ntext son dificiles de tratar, en concreto, en mi tabla exiten (existían) 2 campos de este tipo, el segundo de ellos por nombre (se llaman (llamaban)eautobio y eautocur )no había forma de mostrarlo. Y os aseguro que he realizado algunas pruebas. Por lo tanto, mejor no utilizarlo , al menos con lo que yo conozco.

Para la segunda , utilizando ACCESS 2000 y teniendo todas las actualizaciones (página office.update de microsoft) podéis trabajar bien utilizando un proyecto access (páginas adp). Se pueden modificar las tablas ya existentes en el servidor. Interesante opción, bajo mi punto de vista, ya que el problema que tuve era que inicialmente cree en local una base de datos access, y luego cree el proyecto y subí al servidor, pero no tenía acceso al diseño de la tabla por lo que desconocía el tipo de campos que tenía.

Salu2.
  #21 (permalink)  
Antiguo 16/01/2003, 09:44
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años, 5 meses
Puntos: 1
sorry me colgue con este foro
a mi me paso lo mismo no podia mostrar campos ntext
entonces para que ande..
suponiendo que el campo ntext es mensaje hacemos..

select idmensaje,nombre,mensaje FROM mensajes

y listo... solo imprimes rs("mensaje") y funciona

el / los campos ntext deben ir x ultimo

suerte!
__________________
On error no hago nada porque deje de fumar...
  #22 (permalink)  
Antiguo 01/02/2003, 16:29
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 24 años, 10 meses
Puntos: 0
Pues si que esta raro este asunto con el campo tipo ntext, porque a mi tambien me paso que no podia mostrar los datos de unos campos ntext de una base de datos, y mientras leia este foro, tambien me encontre en microsoft con una solucion que probe y funciono sin necesidad de dejar los campor ntext al final del select.

Lo que sugieren es que se defina el tipo de cursor de la consulta que se esta haciendo, como del lado del cliente, no del server y listo.

Aqui nos funciono, espero les sea de utilidad este tip.
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.