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

problema con If..

Estas en el tema de problema con If.. en el foro de ASP Clásico en Foros del Web. Tengo este codigo: <% buscar=Request.Form("artista_") set conn=Server.CreateObject("ADODB.Connection&qu ot;) conn.Open "musica" sSQL="Select * From artista WHERE 'Ucase([nombre])='"&Ucase(Request("buscar")) & "" set hd=conn.execute(sSQL) 'Set con = Nothing SQL="Insert ...
  #1 (permalink)  
Antiguo 31/03/2002, 01:43
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 24 años
Puntos: 20
problema con If..

Tengo este codigo:
<%
buscar=Request.Form("artista_")

set conn=Server.CreateObject("ADODB.Connection&qu ot;)
conn.Open "musica"


sSQL="Select * From artista WHERE 'Ucase([nombre])='"&Ucase(Request("buscar")) & ""
set hd=conn.execute(sSQL)

'Set con = Nothing
SQL="Insert into artista (artista) values ('"&artista&"')"


If sSQL=false then

set rs=Conn.Execute(SQL)
Response.Write "El Artista ha sido Agregado a la lista"

Else
Response.Write "El Artista ya esta En La Base de Datos"


End If

conn.close

%>

Lo que trato hacer, es que se ralice una busqueda en la tabla artista, en el campo nombre
para ver si el nombre almacenado en la variable buscar que viene del formulario, ya se encuentra en la BD.

El problema que se me presenta es que al parecer algo esta mal en el If, pues cuando digito el nombre que voy a instertar, siempre me dice que "El Artista ya esta En La Base de Datos", asi no lo este, lo que creo es que se esta llendo de una a ejecutar el else, y no toma en cuenta la conexion anterior, ya intente poniendo la SQL dentro del If, pero da igual.

Que pasa???

Gracias de Antemano

  #2 (permalink)  
Antiguo 31/03/2002, 02:10
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: problema con If..

Primero de todo que estas evaluando sSQL y es una variable string, no booleana, cuanto mucho podria ser hd, pero como es una consulta que devuelve filas, te envia un objeto recordset y no filas afectadas.

Pero mejor proba con este codigo :

<%

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "musica"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.CursorType = adOpenStatic
RS.CursorLocation = adUseClient

sql = " Select * From Artista WHERE Ucase(nombre)=' " & Ucase(buscar) & " ' "
RS.Open sql, conn

regs = RS.RecordCount

RS.Close

If regs=0 then
Set RS = Conn.Execute(" INSERT INTO Artista (artista) VALUES ( ' " & artista & " ' ) "
Response.Write "El Artista ha sido Agregado a la lista"
Else
Response.Write "El Artista ya esta En La Base de Datos"
End If
RS.Close
conn.close
%>

chau!
  #3 (permalink)  
Antiguo 31/03/2002, 17:42
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 24 años
Puntos: 20
Re: problema con If..

Ya probe con este codigo, pero me da el siguiente error:

ADODB.Recordset error '800a0bb9'

La aplicación está usando argumentos incorrectos, o están fuera del intervalo permitido, o entran en conflicto con otros.

/musica/artista.asp, line 18

<%

buscar=Request.Form("artista_")



Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "musica"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.CursorType = adOpenStatic
RS.CursorLocation = adUseClient

sql = " Select * From Artista WHERE Ucase(nombre)=' " & Ucase(buscar) & " ' "
RS.Open sql, conn

regs = RS.RecordCount

RS.Close

If regs=0 then
Set RS = Conn.Execute(" INSERT INTO artista (nombre) VALUES ( ' " & buscar & " ' ) ")
Response.Write "El Artista ha sido Agregado a la lista"
Else
Response.Write "El Artista ya esta En La Base de Datos"
End If
RS.Close
conn.close
%>
  #4 (permalink)  
Antiguo 31/03/2002, 19:17
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: problema con If..

Proba con este codigo corregido:

<%
' buscar = Request.Form("artista_")
buscar = "Queen"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "musica"

Set RS = Server.CreateObject("ADODB.Recordset")
RS.CursorType = 3
RS.CursorLocation = 3
sql = " Select * From Artista WHERE UCase(nombre)=' " & UCase(buscar) & " ' "
RS.Open sql, conn
regs = RS.RecordCount
RS.Close
If regs=0 then
Set RS = Conn.Execute(" INSERT INTO Artista (Nombre) VALUES ( ' " & buscar & " ' ) ")
Response.Write "El Artista ha sido Agregado a la lista"
Else
Response.Write "El Artista ya esta En La Base de Datos"
End If

RS.Close
conn.Close

%>
Obvio si anda va a INSERTAR la 1ra vez, luego dira que ya existe, pero proba con otros nombres.
Si anda bien sacale la comilla simple a la primera linea y elimina la 2da.
Tenes realmente un input en el form con nombre artista_ ? con guion bajo ?

Contame si anduvo
  #5 (permalink)  
Antiguo 31/03/2002, 19:21
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: problema con If..

ah, tambien elimina el RS.Close despues del regs = RS.RecordCount
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 04:25.