No puedo recuperar datos de VFP con ASP

29/10/2004 - 16:03 por Jason Boris Rivas Otaiza | Informe spam
buenas tengo un problema qeu la verdad me esta volviendo loco, necesito
cambiar la base de datos de mi web de acces a VFP, utilizando ODBC y ADO,
cree una pagina de prueba para ver como hacer la coneccion con VFP y logre
realizar la coneccion con la cual puedo insertar, actualizar y eliminar
registros sin problemas pero por alguna razon que no entiendo no puedo
recuperar los datos de la tabla no cual es el problema si puedo
pranticamente modificar la tabla a mi antojo por que el Recodset no puede
recuperar registros de la tabla.

este es el codigo asp que utilizo

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
Server.mapPath("../BaseDatos/")&
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
'cn.execute "insert into marcas(marca_nombre) values('prueba')"
'cn.execute "Select Prueba.prueba From Prueba"

sqlstr="Select * From categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open sqlstr,cn
registros=rs.RecordCount
%>
Registros :<%=registros%>
<%'="prueba : "+rs("cat_nombre")%>
<%cn.close%>
</body>
</html>

su puesta mente deveria de darme el numero de registros obtenidos pero
sale -1 y si trato de mostrar el contenido de algun campo sale este error

HTTP 500.100. Error interno del servidor: error de ASP
Servicios de Internet Information Server
Información técnica (para personal de soporte técnico)
a.. Tipo de error:
(0x80020009)
Ocurrió una excepción.
/LimaGuns/paginas/pruebaBD.asp, línea 25


b.. Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

c.. Página:
GET /LimaGuns/paginas/pruebaBD.asp

d.. Hora:
viernes, 29 de octubre de 2004, 8:53:19


e.. Más información:
Soporte técnico de Microsoft
la verdad me parece ilogico que no pueda mostrar los registros de la tabla
probe con una tabla mas simple con un solo campo y con un solo campo de
texto y ygual no funciona podrian decirme cual es el problem apor favor que
esto me esta desquisiando necesito poder actualizar mi web con VFP y no
puedo hacerlo a causa de este problema les agradeso la atencion prestada

Preguntas similare

Leer las respuestas

#6 Jason Boris Rivas Otaiza
03/11/2004 - 21:07 | Informe spam
Te agradesco sisnseramente la intecion que tuviste en ayudarme, aplique el
codigo que me diste y este fue el resultado

Registros :0
Estado :1
No parece haber registros Estado : 0

muchas gracias por todo la verdad me rindo ya me canse de romperme la cabeza
con esto muchas gracias por tu ayuda y agradeso tu intencion es muy
gratificando encontrar gente buena que se interesa por ayudar a otros por
esto muchisimas gracias


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
Server.mapPath("../BaseDatos/")&
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
'cn.execute "insert into marcas(marca_nombre) values('prueba')"
'cn.execute "Select Prueba.prueba From Prueba"


sqlstr="Select * From categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
'rs.open sqlstr,cn
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

</body>
</html>



"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Veamos... una prueba más
reemplaza todo lo que tienes entre el rs.open y </body> por lo
siguiente... (y por favor!!! nunca dejes de cerrar y setear a Nothing tus
objetos)

estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
Muchisimas gracias por tu pronta respuesta es verdad todo lo que me
indicas, pero sigo sin poder mostrar los registros de mi tabla obiamente
que esta tabla tiene registros y forma parte de una base de datos, elegi
esta tabla para las prueba por que es la mas pequña y simple solo tiene 8
registros y tiene esta estructura

Campo Nombre de campo Tipo Ancho Índice
1 CAT_ORDEN Entero 4 Sí
2 CAT_COD Carácter 6 Sí
3 CAT_NOMBRE Carácter 50 Sí
4 CAT_FOTO Carácter 100 Sí
5 CAT_DESCRIPCion Carácter 250 Sí
6 CAT_TIPO Carácter 1 Sí
7 CAT_ESTADO Carácter 1 Sí
8 CAT_SISTEMA Carácter 50 Sí

Como ves tiene una estructura simple y sus campos la mayoria son texto no
se que es lo que estoy haciendo mal este es el codigo que tengo despues
de aplicar las correciones que me indicaste

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
rs.movenext
loop
%>
Estado : <%=estado%>
prueba : <%=rs("cat_nombre")%>

</body>
</html>
No se que mas se puede configurar para poder mostrar los registros con
este codigo como esta me sale el eror que indicas del Eof() acausa de que
el RecordCount esta en 0 o mas claramente dicho que el recordset no pudo
mostrar ningun registro, por favo no se que mas aser ayuda me a resolver
esto mi cuenta de correo es jasonrivas310@ hotmail . com tambien
me conecto al messenger con esa cuenta si tienes messenger y puedes
conectarte para podre hablar de esto te lo agradeceria muchisimo, tedoy
muchas gracias por la ayuda que ya me as brindado espero poder devolverte
el favor algun dia

"Sashka" escribió en el mensaje
news:
-
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
Aca hay varias cosas...
1. do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

No haces un rs.movenext... ese loop será infinito!!!!! ponle rs.movenext
encima del loop

2. Estas tratando de pintar el campo después de cerrar la conexión.
al hacerlo estas cerrando implícitamente el recordset... aunque deberías
hacerlo explícitamente y además setearlo a nothing (tanto el
recordset como la conexión).

3. Aun cuando cerraras la conexión despues de tratar de pintar el
campo te daría error porque el EOF sería true

4. La variable estado no se actualizará automáticamente te seguirá
devolviendo 1 (recordset abierto) aun cuando hayas cerrado la
conexión

5. Si recordcount es cero, y tratas de pintar un campo te dará error de
BOF o EOF o registro borrado.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
muchas gracias por tu colavoracion pero al aplicar el archivo ADOVBS.INC
y configurar el recordset de esta forma

rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText

Logre que el RecordCount lla no me devolviera -1 ahora me devuelve 0 su
pongo que esto quiere decir que no devolvio ningun registro, este es el
codigo que utiliso

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")

sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

<%cn.close%>
Estado :<%=estado%>
prueba :<%=rs("cat_nombre")%>
</body>
</html>

y sige saliendo un erro al tratar de mostrar algun registro en la linea
del codigo << prueba :<%=rs("cat_nombre")%> >>

a.. Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el
nombre o el ordinal pedido.
/Limaguns/paginas/pruebaBD.asp, línea 42


b.. Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

c.. Página:
GET /Limaguns/paginas/pruebaBD.asp

d.. Hora:
miércoles, 03 de noviembre de 2004, 9:53:04


e.. Más información:
Soporte técnico de Microsoft
en realidad no me interesa el RecordCount lo unico que quiero es poder
cargar la tabla y mostrar sus registros y eso es lo que no puedo hacer
todo esto utilizando el recordset para poder utilizar las mismas paginas
de mi web que lla estan trabajando con una base de datos pero en acces
lo que necesito es pasarla a vfp por que mi sistema de la empresa esta
en vfp y para poder actualizar la pagina web por medio de vfp todos los
dias por que haciendo lo con la base de datos access es muy lento y
dificil de todos mosods muchas graias por tu interes para queder
ayudarme te lo agradesco muchisimo
"Sashka" escribió en el mensaje
news:uWypd$
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
Para lo del recordcount mira mi respuesta a Sandra y Maria Claudia en
"Re: Numero de registros" y aunque lo del SP no se aplica a tu caso,
entenderás porque te devuelve -1... además te recomiendo mirar el enlace
que pongo al final...
Con respecto a lo de que no puedes "pintar" el contenido de los
campos... no he podido reproducir tu error, pero creo que lo que pasa es
que el interprete no entiende que quieres

<%="prueba : "+rs("cat_nombre")%> ¿? (ni yo!!) (aunque a mi me dá otro
error... Error de Microsoft VBScript en tiempo de ejecución (0x800A000D)

Pruebalo así...
prueba : <%=rs("cat_nombre")%>

Por otro lado... cual es la línea 25?? Porque yo estoy entendiendo que
si te da el -1 en el recordcount es que si se abrio la conexión y si se
abrió el recordset.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
> buenas tengo un problema qeu la verdad me esta volviendo loco,
necesito
> cambiar la base de datos de mi web de acces a VFP, utilizando ODBC y
ADO,
> cree una pagina de prueba para ver como hacer la coneccion con VFP y
logre
> realizar la coneccion con la cual puedo insertar, actualizar y
eliminar
> registros sin problemas pero por alguna razon que no entiendo no
puedo
> recuperar los datos de la tabla no cual es el problema si puedo
> pranticamente modificar la tabla a mi antojo por que el Recodset no
puede
> recuperar registros de la tabla.
>
> este es el codigo asp que utilizo
>
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> <title>Documento sin t&iacute;tulo</title>
> </head>
>
> <body>
> <%
> dim con,sqlstr,cn
> set cn=server.createobject("ADODB.connection")
> 'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
> Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
> Server.mapPath("../BaseDatos/")&
>
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
>
> cn.open "DRIVER={Microsoft Visual FoxPro
> Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
> Server.mapPath("../BaseDatos/limaguns.dbc")
> 'cn.execute "insert into marcas(marca_nombre) values('prueba')"
> 'cn.execute "Select Prueba.prueba From Prueba"
>
> sqlstr="Select * From categorias"
> Set rs=Server.CreateObject("ADODB.Recordset")
> rs.open sqlstr,cn
> registros=rs.RecordCount
> %>
> Registros :<%=registros%>
> <%'="prueba : "+rs("cat_nombre")%>
> <%cn.close%>
> </body>
> </html>
>
> su puesta mente deveria de darme el numero de registros obtenidos
pero
> sale -1 y si trato de mostrar el contenido de algun campo sale este
error
>
> HTTP 500.100. Error interno del servidor: error de ASP
> Servicios de Internet Information Server
> Información técnica (para personal de soporte técnico)
> a.. Tipo de error:
> (0x80020009)
> Ocurrió una excepción.
> /LimaGuns/paginas/pruebaBD.asp, línea 25
>
>
> b.. Tipo de explorador:
> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>
> c.. Página:
> GET /LimaGuns/paginas/pruebaBD.asp
>
> d.. Hora:
> viernes, 29 de octubre de 2004, 8:53:19
>
>
> e.. Más información:
> Soporte técnico de Microsoft
> la verdad me parece ilogico que no pueda mostrar los registros de la
tabla
> probe con una tabla mas simple con un solo campo y con un solo campo
de
> texto y ygual no funciona podrian decirme cual es el problem apor
favor que
> esto me esta desquisiando necesito poder actualizar mi web con VFP y
no
> puedo hacerlo a causa de este problema les agradeso la atencion
prestada
>
>









Respuesta Responder a este mensaje
#7 Sashka
04/11/2004 - 01:10 | Informe spam
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
:(( Que pena... pero una última cosa
En el correo donde me explicas como es tu tabla... me dices... como ves sólo
tiene 8 registros y lo que yo veo es que tiene 8 campos. estás
seguro que tiene registros???
Intentaste abrir la tabla con fox o vincularla a access????

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:%
Te agradesco sisnseramente la intecion que tuviste en ayudarme, aplique el
codigo que me diste y este fue el resultado

Registros :0
Estado :1
No parece haber registros Estado : 0

muchas gracias por todo la verdad me rindo ya me canse de romperme la
cabeza con esto muchas gracias por tu ayuda y agradeso tu intencion es muy
gratificando encontrar gente buena que se interesa por ayudar a otros por
esto muchisimas gracias


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
Server.mapPath("../BaseDatos/")&
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
'cn.execute "insert into marcas(marca_nombre) values('prueba')"
'cn.execute "Select Prueba.prueba From Prueba"


sqlstr="Select * From categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
'rs.open sqlstr,cn
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

</body>
</html>



"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
Veamos... una prueba más
reemplaza todo lo que tienes entre el rs.open y </body> por lo
siguiente... (y por favor!!! nunca dejes de cerrar y setear a Nothing tus
objetos)

estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
Muchisimas gracias por tu pronta respuesta es verdad todo lo que me
indicas, pero sigo sin poder mostrar los registros de mi tabla obiamente
que esta tabla tiene registros y forma parte de una base de datos, elegi
esta tabla para las prueba por que es la mas pequña y simple solo tiene
8 registros y tiene esta estructura

Campo Nombre de campo Tipo Ancho Índice
1 CAT_ORDEN Entero 4 Sí
2 CAT_COD Carácter 6 Sí
3 CAT_NOMBRE Carácter 50 Sí
4 CAT_FOTO Carácter 100 Sí
5 CAT_DESCRIPCion Carácter 250 Sí
6 CAT_TIPO Carácter 1 Sí
7 CAT_ESTADO Carácter 1 Sí
8 CAT_SISTEMA Carácter 50 Sí

Como ves tiene una estructura simple y sus campos la mayoria son texto
no se que es lo que estoy haciendo mal este es el codigo que tengo
despues de aplicar las correciones que me indicaste

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
rs.movenext
loop
%>
Estado : <%=estado%>
prueba : <%=rs("cat_nombre")%>

</body>
</html>
No se que mas se puede configurar para poder mostrar los registros con
este codigo como esta me sale el eror que indicas del Eof() acausa de
que el RecordCount esta en 0 o mas claramente dicho que el recordset no
pudo mostrar ningun registro, por favo no se que mas aser ayuda me a
resolver esto mi cuenta de correo es jasonrivas310@ hotmail . com
tambien me conecto al messenger con esa cuenta si tienes messenger y
puedes conectarte para podre hablar de esto te lo agradeceria muchisimo,
tedoy muchas gracias por la ayuda que ya me as brindado espero poder
devolverte el favor algun dia

"Sashka" escribió en el mensaje
news:
-
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
Aca hay varias cosas...
1. do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

No haces un rs.movenext... ese loop será infinito!!!!! ponle
rs.movenext encima del loop

2. Estas tratando de pintar el campo después de cerrar la conexión.
al hacerlo estas cerrando implícitamente el recordset... aunque
deberías hacerlo explícitamente y además setearlo a nothing (tanto
el recordset como la conexión).

3. Aun cuando cerraras la conexión despues de tratar de pintar el
campo te daría error porque el EOF sería true

4. La variable estado no se actualizará automáticamente te seguirá
devolviendo 1 (recordset abierto) aun cuando hayas cerrado la
conexión

5. Si recordcount es cero, y tratas de pintar un campo te dará error
de BOF o EOF o registro borrado.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
muchas gracias por tu colavoracion pero al aplicar el archivo
ADOVBS.INC y configurar el recordset de esta forma

rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText

Logre que el RecordCount lla no me devolviera -1 ahora me devuelve 0 su
pongo que esto quiere decir que no devolvio ningun registro, este es el
codigo que utiliso

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")

sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

<%cn.close%>
Estado :<%=estado%>
prueba :<%=rs("cat_nombre")%>
</body>
</html>

y sige saliendo un erro al tratar de mostrar algun registro en la linea
del codigo << prueba :<%=rs("cat_nombre")%> >>

a.. Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el
nombre o el ordinal pedido.
/Limaguns/paginas/pruebaBD.asp, línea 42


b.. Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

c.. Página:
GET /Limaguns/paginas/pruebaBD.asp

d.. Hora:
miércoles, 03 de noviembre de 2004, 9:53:04


e.. Más información:
Soporte técnico de Microsoft
en realidad no me interesa el RecordCount lo unico que quiero es poder
cargar la tabla y mostrar sus registros y eso es lo que no puedo hacer
todo esto utilizando el recordset para poder utilizar las mismas
paginas de mi web que lla estan trabajando con una base de datos pero
en acces lo que necesito es pasarla a vfp por que mi sistema de la
empresa esta en vfp y para poder actualizar la pagina web por medio de
vfp todos los dias por que haciendo lo con la base de datos access es
muy lento y dificil de todos mosods muchas graias por tu interes para
queder ayudarme te lo agradesco muchisimo
"Sashka" escribió en el mensaje
news:uWypd$
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos
si te
sirvió o no la respuesta dada. Muchas gracias
Para lo del recordcount mira mi respuesta a Sandra y Maria Claudia en
"Re: Numero de registros" y aunque lo del SP no se aplica a tu caso,
entenderás porque te devuelve -1... además te recomiendo mirar el
enlace que pongo al final...
Con respecto a lo de que no puedes "pintar" el contenido de los
campos... no he podido reproducir tu error, pero creo que lo que pasa
es que el interprete no entiende que quieres

<%="prueba : "+rs("cat_nombre")%> ¿? (ni yo!!) (aunque a mi me dá otro
error... Error de Microsoft VBScript en tiempo de ejecución
(0x800A000D)

Pruebalo así...
prueba : <%=rs("cat_nombre")%>

Por otro lado... cual es la línea 25?? Porque yo estoy entendiendo que
si te da el -1 en el recordcount es que si se abrio la conexión y si se
abrió el recordset.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
> buenas tengo un problema qeu la verdad me esta volviendo loco,
necesito
> cambiar la base de datos de mi web de acces a VFP, utilizando ODBC y
ADO,
> cree una pagina de prueba para ver como hacer la coneccion con VFP y
logre
> realizar la coneccion con la cual puedo insertar, actualizar y
eliminar
> registros sin problemas pero por alguna razon que no entiendo no
puedo
> recuperar los datos de la tabla no cual es el problema si puedo
> pranticamente modificar la tabla a mi antojo por que el Recodset no
puede
> recuperar registros de la tabla.
>
> este es el codigo asp que utilizo
>
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> <title>Documento sin t&iacute;tulo</title>
> </head>
>
> <body>
> <%
> dim con,sqlstr,cn
> set cn=server.createobject("ADODB.connection")
> 'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
> Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
> Server.mapPath("../BaseDatos/")&
>
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
>
> cn.open "DRIVER={Microsoft Visual FoxPro
> Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
> Server.mapPath("../BaseDatos/limaguns.dbc")
> 'cn.execute "insert into marcas(marca_nombre) values('prueba')"
> 'cn.execute "Select Prueba.prueba From Prueba"
>
> sqlstr="Select * From categorias"
> Set rs=Server.CreateObject("ADODB.Recordset")
> rs.open sqlstr,cn
> registros=rs.RecordCount
> %>
> Registros :<%=registros%>
> <%'="prueba : "+rs("cat_nombre")%>
> <%cn.close%>
> </body>
> </html>
>
> su puesta mente deveria de darme el numero de registros obtenidos
pero
> sale -1 y si trato de mostrar el contenido de algun campo sale este
error
>
> HTTP 500.100. Error interno del servidor: error de ASP
> Servicios de Internet Information Server
> Información técnica (para personal de soporte técnico)
> a.. Tipo de error:
> (0x80020009)
> Ocurrió una excepción.
> /LimaGuns/paginas/pruebaBD.asp, línea 25
>
>
> b.. Tipo de explorador:
> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>
> c.. Página:
> GET /LimaGuns/paginas/pruebaBD.asp
>
> d.. Hora:
> viernes, 29 de octubre de 2004, 8:53:19
>
>
> e.. Más información:
> Soporte técnico de Microsoft
> la verdad me parece ilogico que no pueda mostrar los registros de la
tabla
> probe con una tabla mas simple con un solo campo y con un solo campo
de
> texto y ygual no funciona podrian decirme cual es el problem apor
favor que
> esto me esta desquisiando necesito poder actualizar mi web con VFP y
no
> puedo hacerlo a causa de este problema les agradeso la atencion
prestada
>
>













Respuesta Responder a este mensaje
#8 Jason Boris Rivas Otaiza
04/11/2004 - 14:15 | Informe spam
Por supuesto que la tabla tiene registro es lo primero que verifique en mas
de una ves es mas como te indico puedo insertar y actualiza los registro a
mi antojo y sin problemas eso es lo peor de todo no me explico como es que
he podido insertar unos 10 registros, y no puedo realizar un simple select
pero bueno o estoy loco o algo le pasa a mi maquina

"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
:(( Que pena... pero una última cosa
En el correo donde me explicas como es tu tabla... me dices... como ves
sólo tiene 8 registros y lo que yo veo es que tiene 8 campos.
estás seguro que tiene registros???
Intentaste abrir la tabla con fox o vincularla a access????

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:%
Te agradesco sisnseramente la intecion que tuviste en ayudarme, aplique
el codigo que me diste y este fue el resultado

Registros :0
Estado :1
No parece haber registros Estado : 0

muchas gracias por todo la verdad me rindo ya me canse de romperme la
cabeza con esto muchas gracias por tu ayuda y agradeso tu intencion es
muy gratificando encontrar gente buena que se interesa por ayudar a otros
por esto muchisimas gracias


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
Server.mapPath("../BaseDatos/")&
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
'cn.execute "insert into marcas(marca_nombre) values('prueba')"
'cn.execute "Select Prueba.prueba From Prueba"


sqlstr="Select * From categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
'rs.open sqlstr,cn
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

</body>
</html>



"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
Veamos... una prueba más
reemplaza todo lo que tienes entre el rs.open y </body> por lo
siguiente... (y por favor!!! nunca dejes de cerrar y setear a Nothing
tus objetos)

estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
Muchisimas gracias por tu pronta respuesta es verdad todo lo que me
indicas, pero sigo sin poder mostrar los registros de mi tabla
obiamente que esta tabla tiene registros y forma parte de una base de
datos, elegi esta tabla para las prueba por que es la mas pequña y
simple solo tiene 8 registros y tiene esta estructura

Campo Nombre de campo Tipo Ancho Índice
1 CAT_ORDEN Entero 4 Sí
2 CAT_COD Carácter 6 Sí
3 CAT_NOMBRE Carácter 50 Sí
4 CAT_FOTO Carácter 100 Sí
5 CAT_DESCRIPCion Carácter 250 Sí
6 CAT_TIPO Carácter 1 Sí
7 CAT_ESTADO Carácter 1 Sí
8 CAT_SISTEMA Carácter 50 Sí

Como ves tiene una estructura simple y sus campos la mayoria son texto
no se que es lo que estoy haciendo mal este es el codigo que tengo
despues de aplicar las correciones que me indicaste

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
rs.movenext
loop
%>
Estado : <%=estado%>
prueba : <%=rs("cat_nombre")%>

</body>
</html>
No se que mas se puede configurar para poder mostrar los registros con
este codigo como esta me sale el eror que indicas del Eof() acausa de
que el RecordCount esta en 0 o mas claramente dicho que el recordset no
pudo mostrar ningun registro, por favo no se que mas aser ayuda me a
resolver esto mi cuenta de correo es jasonrivas310@ hotmail . com
tambien me conecto al messenger con esa cuenta si tienes messenger y
puedes conectarte para podre hablar de esto te lo agradeceria
muchisimo, tedoy muchas gracias por la ayuda que ya me as brindado
espero poder devolverte el favor algun dia

"Sashka" escribió en el mensaje
news:
-
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos
si te
sirvió o no la respuesta dada. Muchas gracias
Aca hay varias cosas...
1. do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

No haces un rs.movenext... ese loop será infinito!!!!! ponle
rs.movenext encima del loop

2. Estas tratando de pintar el campo después de cerrar la
conexión. al hacerlo estas cerrando implícitamente el recordset...
aunque deberías hacerlo explícitamente y además setearlo a nothing
(tanto el recordset como la conexión).

3. Aun cuando cerraras la conexión despues de tratar de pintar el
campo te daría error porque el EOF sería true

4. La variable estado no se actualizará automáticamente te seguirá
devolviendo 1 (recordset abierto) aun cuando hayas cerrado la
conexión

5. Si recordcount es cero, y tratas de pintar un campo te dará error
de BOF o EOF o registro borrado.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
muchas gracias por tu colavoracion pero al aplicar el archivo
ADOVBS.INC y configurar el recordset de esta forma

rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText

Logre que el RecordCount lla no me devolviera -1 ahora me devuelve 0
su pongo que esto quiere decir que no devolvio ningun registro, este
es el codigo que utiliso

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")

sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

<%cn.close%>
Estado :<%=estado%>
prueba :<%=rs("cat_nombre")%>
</body>
</html>

y sige saliendo un erro al tratar de mostrar algun registro en la
linea del codigo << prueba :<%=rs("cat_nombre")%> >>

a.. Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el
nombre o el ordinal pedido.
/Limaguns/paginas/pruebaBD.asp, línea 42


b.. Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

c.. Página:
GET /Limaguns/paginas/pruebaBD.asp

d.. Hora:
miércoles, 03 de noviembre de 2004, 9:53:04


e.. Más información:
Soporte técnico de Microsoft
en realidad no me interesa el RecordCount lo unico que quiero es poder
cargar la tabla y mostrar sus registros y eso es lo que no puedo hacer
todo esto utilizando el recordset para poder utilizar las mismas
paginas de mi web que lla estan trabajando con una base de datos pero
en acces lo que necesito es pasarla a vfp por que mi sistema de la
empresa esta en vfp y para poder actualizar la pagina web por medio de
vfp todos los dias por que haciendo lo con la base de datos access es
muy lento y dificil de todos mosods muchas graias por tu interes para
queder ayudarme te lo agradesco muchisimo
"Sashka" escribió en el mensaje
news:uWypd$
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos
si te
sirvió o no la respuesta dada. Muchas gracias
Para lo del recordcount mira mi respuesta a Sandra y Maria Claudia en
"Re: Numero de registros" y aunque lo del SP no se aplica a tu caso,
entenderás porque te devuelve -1... además te recomiendo mirar el
enlace que pongo al final...
Con respecto a lo de que no puedes "pintar" el contenido de los
campos... no he podido reproducir tu error, pero creo que lo que pasa
es que el interprete no entiende que quieres

<%="prueba : "+rs("cat_nombre")%> ¿? (ni yo!!) (aunque a mi me dá
otro error... Error de Microsoft VBScript en tiempo de ejecución
(0x800A000D)

Pruebalo así...
prueba : <%=rs("cat_nombre")%>

Por otro lado... cual es la línea 25?? Porque yo estoy entendiendo
que si te da el -1 en el recordcount es que si se abrio la conexión y
si se abrió el recordset.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
> buenas tengo un problema qeu la verdad me esta volviendo loco,
necesito
> cambiar la base de datos de mi web de acces a VFP, utilizando ODBC
y ADO,
> cree una pagina de prueba para ver como hacer la coneccion con VFP
y logre
> realizar la coneccion con la cual puedo insertar, actualizar y
eliminar
> registros sin problemas pero por alguna razon que no entiendo no
puedo
> recuperar los datos de la tabla no cual es el problema si puedo
> pranticamente modificar la tabla a mi antojo por que el Recodset no
puede
> recuperar registros de la tabla.
>
> este es el codigo asp que utilizo
>
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> <title>Documento sin t&iacute;tulo</title>
> </head>
>
> <body>
> <%
> dim con,sqlstr,cn
> set cn=server.createobject("ADODB.connection")
> 'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
> Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
> Server.mapPath("../BaseDatos/")&
>
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
>
> cn.open "DRIVER={Microsoft Visual FoxPro
> Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
> Server.mapPath("../BaseDatos/limaguns.dbc")
> 'cn.execute "insert into marcas(marca_nombre) values('prueba')"
> 'cn.execute "Select Prueba.prueba From Prueba"
>
> sqlstr="Select * From categorias"
> Set rs=Server.CreateObject("ADODB.Recordset")
> rs.open sqlstr,cn
> registros=rs.RecordCount
> %>
> Registros :<%=registros%>
> <%'="prueba : "+rs("cat_nombre")%>
> <%cn.close%>
> </body>
> </html>
>
> su puesta mente deveria de darme el numero de registros obtenidos
pero
> sale -1 y si trato de mostrar el contenido de algun campo sale este
error
>
> HTTP 500.100. Error interno del servidor: error de ASP
> Servicios de Internet Information Server
> Información técnica (para personal de soporte técnico)
> a.. Tipo de error:
> (0x80020009)
> Ocurrió una excepción.
> /LimaGuns/paginas/pruebaBD.asp, línea 25
>
>
> b.. Tipo de explorador:
> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>
> c.. Página:
> GET /LimaGuns/paginas/pruebaBD.asp
>
> d.. Hora:
> viernes, 29 de octubre de 2004, 8:53:19
>
>
> e.. Más información:
> Soporte técnico de Microsoft
> la verdad me parece ilogico que no pueda mostrar los registros de
la tabla
> probe con una tabla mas simple con un solo campo y con un solo
campo de
> texto y ygual no funciona podrian decirme cual es el problem apor
favor que
> esto me esta desquisiando necesito poder actualizar mi web con VFP
y no
> puedo hacerlo a causa de este problema les agradeso la atencion
prestada
>
>

















Respuesta Responder a este mensaje
#9 Sashka
04/11/2004 - 15:07 | Informe spam
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Muy raro... yo en tu lugar probaría con otra base de datos(otro dbc)

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
Por supuesto que la tabla tiene registro es lo primero que verifique en
mas de una ves es mas como te indico puedo insertar y actualiza los
registro a mi antojo y sin problemas eso es lo peor de todo no me explico
como es que he podido insertar unos 10 registros, y no puedo realizar un
simple select pero bueno o estoy loco o algo le pasa a mi maquina

"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
:(( Que pena... pero una última cosa
En el correo donde me explicas como es tu tabla... me dices... como ves
sólo tiene 8 registros y lo que yo veo es que tiene 8 campos.
estás seguro que tiene registros???
Intentaste abrir la tabla con fox o vincularla a access????

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:%
Te agradesco sisnseramente la intecion que tuviste en ayudarme, aplique
el codigo que me diste y este fue el resultado

Registros :0
Estado :1
No parece haber registros Estado : 0

muchas gracias por todo la verdad me rindo ya me canse de romperme la
cabeza con esto muchas gracias por tu ayuda y agradeso tu intencion es
muy gratificando encontrar gente buena que se interesa por ayudar a
otros por esto muchisimas gracias


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB="&
Server.mapPath("../BaseDatos/")&
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
'cn.execute "insert into marcas(marca_nombre) values('prueba')"
'cn.execute "Select Prueba.prueba From Prueba"


sqlstr="Select * From categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
'rs.open sqlstr,cn
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

</body>
</html>



"Sashka" escribió en el mensaje
news:
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos si
te
sirvió o no la respuesta dada. Muchas gracias
Veamos... una prueba más
reemplaza todo lo que tienes entre el rs.open y </body> por lo
siguiente... (y por favor!!! nunca dejes de cerrar y setear a Nothing
tus objetos)

estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
if not rs.eof and not rs.bof then
acum=0
do until rs.eof
acum=acum+1
%>
prueba : <%=rs("bookid")%>
<br>
registro <%=acum%><br>
<%
rs.movenext
loop
else
response.write "No parece haber registros"
end if
rs.close
cn.close
estado = rs.state
set rs = Nothing
set cn= Nothing
%>
Estado : <%=estado%>

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
Muchisimas gracias por tu pronta respuesta es verdad todo lo que me
indicas, pero sigo sin poder mostrar los registros de mi tabla
obiamente que esta tabla tiene registros y forma parte de una base de
datos, elegi esta tabla para las prueba por que es la mas pequña y
simple solo tiene 8 registros y tiene esta estructura

Campo Nombre de campo Tipo Ancho Índice
1 CAT_ORDEN Entero 4 Sí
2 CAT_COD Carácter 6 Sí
3 CAT_NOMBRE Carácter 50 Sí
4 CAT_FOTO Carácter 100 Sí
5 CAT_DESCRIPCion Carácter 250 Sí
6 CAT_TIPO Carácter 1 Sí
7 CAT_ESTADO Carácter 1 Sí
8 CAT_SISTEMA Carácter 50 Sí

Como ves tiene una estructura simple y sus campos la mayoria son texto
no se que es lo que estoy haciendo mal este es el codigo que tengo
despues de aplicar las correciones que me indicaste

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")
sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
rs.movenext
loop
%>
Estado : <%=estado%>
prueba : <%=rs("cat_nombre")%>

</body>
</html>
No se que mas se puede configurar para poder mostrar los registros con
este codigo como esta me sale el eror que indicas del Eof() acausa de
que el RecordCount esta en 0 o mas claramente dicho que el recordset
no pudo mostrar ningun registro, por favo no se que mas aser ayuda me
a resolver esto mi cuenta de correo es jasonrivas310@ hotmail .
com tambien me conecto al messenger con esa cuenta si tienes messenger
y puedes conectarte para podre hablar de esto te lo agradeceria
muchisimo, tedoy muchas gracias por la ayuda que ya me as brindado
espero poder devolverte el favor algun dia

"Sashka" escribió en el mensaje
news:
-
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos
si te
sirvió o no la respuesta dada. Muchas gracias
Aca hay varias cosas...
1. do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

No haces un rs.movenext... ese loop será infinito!!!!! ponle
rs.movenext encima del loop

2. Estas tratando de pintar el campo después de cerrar la
conexión. al hacerlo estas cerrando implícitamente el
recordset... aunque deberías hacerlo explícitamente y además setearlo
a nothing (tanto el recordset como la conexión).

3. Aun cuando cerraras la conexión despues de tratar de pintar el
campo te daría error porque el EOF sería true

4. La variable estado no se actualizará automáticamente te
seguirá devolviendo 1 (recordset abierto) aun cuando hayas cerrado la
conexión

5. Si recordcount es cero, y tratas de pintar un campo te dará error
de BOF o EOF o registro borrado.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en el
mensaje news:
muchas gracias por tu colavoracion pero al aplicar el archivo
ADOVBS.INC y configurar el recordset de esta forma

rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText

Logre que el RecordCount lla no me devolviera -1 ahora me devuelve 0
su pongo que esto quiere decir que no devolvio ningun registro, este
es el codigo que utiliso

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "../includes/ADOVBS.INC"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<%
dim con,sqlstr,cn
set cn=server.createobject("ADODB.connection")
cn.open "DRIVER={Microsoft Visual FoxPro
Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
Server.mapPath("../BaseDatos/limaguns.dbc")

sqlstr="Select * From Categorias"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sqlstr,cn, adOpenStatic, adLockReadOnly, adCmdText
estado=rs.state
registros=rs.RecordCount
%>
Registros :<%=registros%><br>
Estado :<%=estado%><br>
<%
acum=0
do until rs.eof
acum=acum+1
%>
registro <%=acum%><br>
<%
loop
%>

<%cn.close%>
Estado :<%=estado%>
prueba :<%=rs("cat_nombre")%>
</body>
</html>

y sige saliendo un erro al tratar de mostrar algun registro en la
linea del codigo << prueba :<%=rs("cat_nombre")%> >>

a.. Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el
nombre o el ordinal pedido.
/Limaguns/paginas/pruebaBD.asp, línea 42


b.. Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

c.. Página:
GET /Limaguns/paginas/pruebaBD.asp

d.. Hora:
miércoles, 03 de noviembre de 2004, 9:53:04


e.. Más información:
Soporte técnico de Microsoft
en realidad no me interesa el RecordCount lo unico que quiero es
poder cargar la tabla y mostrar sus registros y eso es lo que no
puedo hacer todo esto utilizando el recordset para poder utilizar las
mismas paginas de mi web que lla estan trabajando con una base de
datos pero en acces lo que necesito es pasarla a vfp por que mi
sistema de la empresa esta en vfp y para poder actualizar la pagina
web por medio de vfp todos los dias por que haciendo lo con la base
de datos access es muy lento y dificil de todos mosods muchas graias
por tu interes para queder ayudarme te lo agradesco muchisimo
"Sashka" escribió en el mensaje
news:uWypd$
¡Importante!: Colabora con el grupo. Contesta a este mensaje y dinos
si te
sirvió o no la respuesta dada. Muchas gracias
Para lo del recordcount mira mi respuesta a Sandra y Maria Claudia
en "Re: Numero de registros" y aunque lo del SP no se aplica a tu
caso, entenderás porque te devuelve -1... además te recomiendo mirar
el enlace que pongo al final...
Con respecto a lo de que no puedes "pintar" el contenido de los
campos... no he podido reproducir tu error, pero creo que lo que pasa
es que el interprete no entiende que quieres

<%="prueba : "+rs("cat_nombre")%> ¿? (ni yo!!) (aunque a mi me dá
otro error... Error de Microsoft VBScript en tiempo de ejecución
(0x800A000D)

Pruebalo así...
prueba : <%=rs("cat_nombre")%>

Por otro lado... cual es la línea 25?? Porque yo estoy entendiendo
que si te da el -1 en el recordcount es que si se abrio la conexión y
si se abrió el recordset.

Sashka
MS MVP Access
MCP ASP.Net

"Jason Boris Rivas Otaiza" escribió en
el mensaje news:
> buenas tengo un problema qeu la verdad me esta volviendo loco,
necesito
> cambiar la base de datos de mi web de acces a VFP, utilizando ODBC
y ADO,
> cree una pagina de prueba para ver como hacer la coneccion con VFP
y logre
> realizar la coneccion con la cual puedo insertar, actualizar y
eliminar
> registros sin problemas pero por alguna razon que no entiendo no
puedo
> recuperar los datos de la tabla no cual es el problema si puedo
> pranticamente modificar la tabla a mi antojo por que el Recodset
no puede
> recuperar registros de la tabla.
>
> este es el codigo asp que utilizo
>
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> <title>Documento sin t&iacute;tulo</title>
> </head>
>
> <body>
> <%
> dim con,sqlstr,cn
> set cn=server.createobject("ADODB.connection")
> 'cn.open "Provider=MSDASQL.1;Persist SecurityInfo=False;Extended
> Properties=Driver={Microsoft Visual FoxPro
Driver};UID=;SourceDB="&
> Server.mapPath("../BaseDatos/")&
>
";SourceTypeÛF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
>
> cn.open "DRIVER={Microsoft Visual FoxPro
> Driver};SourceTypeÛC;Exclusive=no;SourceDb="&
> Server.mapPath("../BaseDatos/limaguns.dbc")
> 'cn.execute "insert into marcas(marca_nombre) values('prueba')"
> 'cn.execute "Select Prueba.prueba From Prueba"
>
> sqlstr="Select * From categorias"
> Set rs=Server.CreateObject("ADODB.Recordset")
> rs.open sqlstr,cn
> registros=rs.RecordCount
> %>
> Registros :<%=registros%>
> <%'="prueba : "+rs("cat_nombre")%>
> <%cn.close%>
> </body>
> </html>
>
> su puesta mente deveria de darme el numero de registros obtenidos
pero
> sale -1 y si trato de mostrar el contenido de algun campo sale
este error
>
> HTTP 500.100. Error interno del servidor: error de ASP
> Servicios de Internet Information Server
> Información técnica (para personal de soporte técnico)
> a.. Tipo de error:
> (0x80020009)
> Ocurrió una excepción.
> /LimaGuns/paginas/pruebaBD.asp, línea 25
>
>
> b.. Tipo de explorador:
> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
>
> c.. Página:
> GET /LimaGuns/paginas/pruebaBD.asp
>
> d.. Hora:
> viernes, 29 de octubre de 2004, 8:53:19
>
>
> e.. Más información:
> Soporte técnico de Microsoft
> la verdad me parece ilogico que no pueda mostrar los registros de
la tabla
> probe con una tabla mas simple con un solo campo y con un solo
campo de
> texto y ygual no funciona podrian decirme cual es el problem apor
favor que
> esto me esta desquisiando necesito poder actualizar mi web con VFP
y no
> puedo hacerlo a causa de este problema les agradeso la atencion
prestada
>
>





















email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida