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

Insertar registros

Estas en el tema de Insertar registros en el foro de ASP Clásico en Foros del Web. Hola, ¿qué diferencia hay entre insertar datos de las 2 maneras siguientes? FORMA 1: 'Instanciamos y abrimos nuestro objeto conexion Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ...
  #1 (permalink)  
Antiguo 23/02/2005, 06:11
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 22 años, 5 meses
Puntos: 0
Insertar registros

Hola, ¿qué diferencia hay entre insertar datos de las 2 maneras siguientes?

FORMA 1:
'Instanciamos y abrimos nuestro objeto conexion Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Mibase"

'Ahora creamos la sentencia SQL
sSQL="Insert Into Clientes (nombre,telefono) values ('" & nombre & "','" & telefono & "')"

'Ejecutamos la orden
set RS = Conn.Execute(sSQL)

FORMA 2:
Dim rspedidos
Set rspedidos=Server.CreateObject("ADODB.Recordset")
With rspedidos
.open "Pedidos" ,adOpenDynamic, AdLockOptimistic,adCmdTableDirect
.AddNew
.Fields("idcliente")=16
.Fields("cargo")=500
.Fields("destinatario")="pepe"
.update
MiID= .Fields("IdPedido")
End With
  #2 (permalink)  
Antiguo 23/02/2005, 06:29
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
la primera se cae si es que el dato a ingresar lleva una comilla simple, la segunda no.
la primera es mas propensa al sql injection, la segunda no.
la primera es una fomra de ejecutar directamente cualquier tipo de sentencia SQL, la segunda no.
Cuando trabajo con BD ,utilizo la primera. la segunda no.

por que? por que se me da la gana.


es cosa de gustos.

  #3 (permalink)  
Antiguo 23/02/2005, 10:57
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Jeje
Agregaría que con la primera no es necesario instanciar un objeto recordset. La línea que tenés para ejecutar el insert (set RS = Conn.Execute(sSQL)) la podés reemplazar por esta Conn.Execute(sSQL)
__________________
...___...
  #4 (permalink)  
Antiguo 23/02/2005, 11:19
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Y agregaria que con la primera no podras mover el recordset a tu antojo, solo hacia adelante

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 22:37.