Ver Mensaje Individual
  #19 (permalink)  
Antiguo 29/06/2005, 13:27
Avatar de Neuron_376
Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola!

Si, creo que a todo lo que me preguntaste es un si.

1.

Código PHP:
Set adoCon Server.CreateObject("ADODB.Connection"
adoCon.Open "DSN=BDSistema;"

'Esta línea no la necesitarias
'
Set rs Server.CreateObject("ADODB.Recordset")    

'por si pongo nuevos registros pongo lo siguiente
Const adOpenKeyset = 1
Const adLockOptimistic = 3

    SQLValidaIdUsuario = "SELECT * FROM usuarios WHERE IdUsuario="&IdUsuario&""


             '
Aquien lugar de openes el set.
    
'rs.Open SQLValidaIdUsuario, adoCon    

             set rs = adoCon.Execute(SQLValidaIdUsuario)

    if not rs.eof  then
        '
si exite registro has esto
    end 
if 
Y ya, en medio de todo eso puedes poner la seguridad de prevenir errores de bases de datos, como en la estructura que puse arriba.

2.

Código PHP:
if conn.Errors.Count 0 then
  
if not rs.eof then
    rs
.Close
  
else

  
'en este caso no debo de cerrar el rs?
  '
Haz una prueba donde si pruebas cerrarloclaro no debes tener ningun on error resume next para ver el errores posible que no te marque errorpero no es algo necesario si estas usando set en lugar de open

  end 
if

end if 
Por cierto, revisando mis scripts, yo hago esto para un select con recordset, de hecho, siempre lo uso para select solamente, cosas de paginacion

rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly, adCmdText

if not rs.eof

//todo
rs.close()

else

//no cierro el recordset

end if

No tengo ningun problema con memoria, fugas, seguridad, etc., es decir, esa estructura no me da problemas con el rs.close, lo cual me hace pensar que quizas no sea necesario poner el close si no obtuviste ningun resultados, pero eso no lo puedo asegurar.

Aun asi, en este caso actual Saruman, prefiero por mucho el set, es lo mejor para este caso. Bueno, viendo solamente el codigo que tienes y en lo que lo estas aplicando.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com