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

Duda sobre cursores

Estas en el tema de Duda sobre cursores en el foro de ASP Clásico en Foros del Web. hola, otra vez con preguntas muy basicas podemos ejecutar directamente una sentencia con o sin abrir un recorset Código PHP: set rs  =  oConn . Execute ...
  #1 (permalink)  
Antiguo 28/07/2008, 05:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años
Puntos: 1012
Duda sobre cursores

hola, otra vez con preguntas muy basicas

podemos ejecutar directamente una sentencia con o sin abrir un recorset

Código PHP:
set rs oConn.Execute(SQL)
oConn.Execute(SQL
ahora mi pregunta es ¿es necesario o aconsejable usar cursores en alguno de estos dos tipos?

Código PHP:
set rs oConn.Execute(SQL,1.2)
oConn.Execute(SQL,1,2
se que cuando ejecutamos las sentencias a traves de ADO es necesario

Código PHP:
rs.open OconnSQL1,
tambien he encontrado esto otro

Código PHP:
set rs oConn.Execute(SQL,, adCmdText adExecuteNoRecords
Código:
El parámetro opcional adCmdText especifica el tipo de comando e indica que el proveedor debe evaluar la instrucción de consulta (en este caso, una consulta SQL) como una definición textual de un comando. El parámetro adExecuteNoRecords indica a ADO que no debe crear un conjunto de registros de datos si no se devuelven resultados a la aplicación. Este parámetro sólo funciona con los tipos de comandos definidos como texto, como las consultas SQL, o con procedimientos almacenados de bases de datos. Aunque los parámetros adCmdText y adExecuteNoRecords son opcionales, debe especificarlos al utilizar el método Execute para mejorar así el rendimiento de la aplicación de datos.
esto ultimo me ha llevado a declarar una bliblioteca de tipos

Código PHP:
<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
 
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
o
<!-- METADATA TYPE="typelib" FILE="c:program filescommon filessystemadomsado15.dll"--> 
¿cual de las dos maneras es mas conveniente con la UUID o con la ruta fisica?
¿donde defino las constantes

Código:
Const adCmdText
Const adExecuteNoRecords
Const adOpenForwardOnly = 0
etc ...
en el archivo que contenga el METADATA?

gracias
  #2 (permalink)  
Antiguo 28/07/2008, 09:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Duda sobre cursores

Cita:
Iniciado por IsaBelM Ver Mensaje
hola, otra vez con preguntas muy basicas

ahora mi pregunta es ¿es necesario o aconsejable usar cursores en alguno de estos dos tipos?
Siempre es mejor declarar todo explícitamente, salvo ciertas configuraciones, el dejar el cursor y cerrojo por default, puede ocasionar errores de ADO, mejor asegurarte que tu aplicación se comportará de la misma manera en distintos ambientes.

Cita:
Iniciado por IsaBelM Ver Mensaje
esto ultimo me ha llevado a declarar una bliblioteca de tipos

Código PHP:
<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
 
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->
o
<!-- METADATA TYPE="typelib" FILE="c:program filescommon filessystemadomsado15.dll"--> 
¿cual de las dos maneras es mas conveniente con la UUID o con la ruta fisica?
¿donde defino las constantes

en el archivo que contenga el METADATA?
Es lo mismo, aunque de la primera manera no tienes que depender de la ruta física de este archivo, como dependes en la segunda.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 28/07/2008, 12:27
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años
Puntos: 1012
Respuesta: Duda sobre cursores

hola , despues de leer tu respuesta solo me queda una duda ¿seria correcto y no entraria en conflicto con nada si lo hiciera asi?

Código PHP:
Call CreaRS (rs1fconnSQL10
el sub

Código:
Sub CreaRS (id, cxn, Csql, cur, cerr)

set id = cxn.Execute(Csql, cur, cerr)
'set rs1 = fconn.Execute(SQL, 1, 0)

End Sub
¿que os parece?

gracias por vuestra paciencia
  #4 (permalink)  
Antiguo 28/07/2008, 12:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Duda sobre cursores

Tanto como eso no se, ya es a gusto del programador, todo depende de que controles bien todo lo que entra y salga a y de tu subrutina, yo prefiero por ejemplo hacer un método específico y no depender mucho de argumentos.

Código:
Sub Crear()
   set conexion = Server...
   sql = "INSERT..."
   conexion.Execute sql
   set conexion = nothing
End Sub
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 30/07/2008, 11:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años
Puntos: 1012
Respuesta: Duda sobre cursores

hey, gracias por responder

una ultima pregunta. ¿esto seria correcto?

Cita:
Sub Crear()
set conexion = Server...
sql = "INSERT..."
conexion.Execute sql, 1,2
set conexion = nothing
End Sub
gracias
  #6 (permalink)  
Antiguo 30/07/2008, 12:12
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Duda sobre cursores

No recuerdo muy bien, seguramente alguien podría clarificar, pero es un execute a la conexión con lo cuál no creo que necesites definir cursor y cerrojo, máxime que no estás recuperando ningún recordset, si lo estuvieras haciendo me parece que asigna por defecto estos valores, así que no, me parece que no es correcto.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 31/07/2008, 07:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años
Puntos: 1012
Respuesta: Duda sobre cursores

ok gracias . me ha quedado claro. de todas formas esperemos a ver que dicen otros
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 11:55.