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

Estoy en la sala de Urgencias........ esto lo necesito ¡¡¡

Estas en el tema de Estoy en la sala de Urgencias........ esto lo necesito ¡¡¡ en el foro de ASP Clásico en Foros del Web. Hola a todos: Vamos a ver si alguien me puede solucionar un problema que tengo con el siguiente código: Resulta que siempre me da error ...
  #1 (permalink)  
Antiguo 18/05/2004, 13:19
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
Estoy en la sala de Urgencias........ esto lo necesito ¡¡¡

Hola a todos:

Vamos a ver si alguien me puede solucionar un problema que tengo con el siguiente código: Resulta que siempre me da error de que existe el archivo, y necesito urgente solucionarlo.
Si alguien conoce otro metodo para que no incluya repetidos, que haga el favor de postearlo. Gracias por anticipado.
Código:
list]

 	Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("novedades.mdb")
 	Set Tabla = Server.CreateObject("adodb.recordset")
	Tabla.Open "Tabla1", Connect, 2, 3
	
 If Tabla.BOF And Tabla.EOF Then  
    Tabla.AddNew 
    Tabla("pal") = filename
    Tabla("size") = fileSizeTranslated 
    Tabla("tipo") = tipoInput 
    Tabla("nick") = nameInput 
    Tabla("url") = urlInput 
    Tabla.Update
%> 
<font face="Tahoma" size="2"><b><i>Ingreso a la Base de Datos completado</i></b></font></p> 
<%
 Else
   Response.Write "<font color=""red"">El archivo no se pudo subir a la Base de Datos ... porque existe"       
 End If 
 Tabla.Close 
 ' fin bd 
 %>[/list]
  #2 (permalink)  
Antiguo 18/05/2004, 13:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 42
Antigüedad: 21 años, 6 meses
Puntos: 0
pregunta

que se condicion pretendes poner con el if??
"If Tabla.BOF And Tabla.EOF Then" creo que ese es el problema, que nunca entra al ciclo
__________________
RAL
-----
http://www.raldesign.cl
  #3 (permalink)  
Antiguo 18/05/2004, 14:01
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola, pretendo que si esta el nombre ya en la BD, que no lo duplique
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #4 (permalink)  
Antiguo 18/05/2004, 14:10
 
Fecha de Ingreso: octubre-2003
Mensajes: 42
Antigüedad: 21 años, 6 meses
Puntos: 0
mmm

en realidad esta enredado o yo no entiendo aun la idea...

No deberias rescatar el nombre del archivo antes del if, hacer un selec preguntando si existe y luego hacer el if??
Algo asi:

if not tabla.EOF then
Response.Write ("<font color=red>El archivo no se pudo subir a la Base de datos ... porque existe")

Else

Tabla.AddNew
Tabla("pal") = filename
Tabla("size") = fileSizeTranslated
Tabla("tipo") = tipoInput
Tabla("nick") = nameInput
Tabla("url") = urlInput
Tabla.Update

End If
Tabla.Close
' fin bd
__________________
RAL
-----
http://www.raldesign.cl
  #5 (permalink)  
Antiguo 18/05/2004, 14:14
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Parece que el problema es que abres la tabla e inmediatamente preguntas si esta vacia.
¿No deberias abrir una consulta en lugar de "Tabla"?

Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("novedades.mdb")
SQL = "select * from tabla where campo='"&request("algo")&"'"
Set Tabla = Server.CreateObject("adodb.recordset")
Tabla.Open SQL, Connect, 2, 3

If Tabla.BOF And Tabla.EOF Then
Tabla.AddNew
...
Else
Response.Write "<font color=""red"">El archivo no se pudo subir a la Base de Datos ... porque existe"
End If
  #6 (permalink)  
Antiguo 18/05/2004, 14:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
De lo contrario solo preguntas ¿La tabla esta vacia?, y como ya tiene registros, pues siempre se va por el false.

Debes preguntar por el registro específico que vas a agregar.
  #7 (permalink)  
Antiguo 18/05/2004, 14:31
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
bien,,, antes lo intenté asi , pero como loo que sube es un archivo, pues no fui capaz de sacarle el nombre.

aqui es donde lleva el nombre:

UCase(pal)='" & UCase(Request("userfile"))

Como saco el nobre del archivo si eso es un .jpg ??

<%

Dim Conexion,Tabla
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla = Server.CreateObject("ADODB.Recordset")

Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("/mdb-database/novedades.mdb")

Dim Temp

Temp="Select * From Tabla1 Where UCase(pal)='" & UCase(Request("userfile"))
& "' And UCase(size)='" & UCase(Request("Dato2")) & "' And UCase(nick)='" & UCase(Request("Dato3")) & "' And UCase(tipo)='" & UCase(Request("Dato4")) & "' And UCase(url)='" & UCase(Request("Dato5")) &"'"
Tabla.Open Temp,Conexion,2,3,1

If Tabla.BOF And Tabla.EOF Then
Tabla.AddNew
Tabla("pal") = Request("userfile")
Tabla("size") = Request("Dato2")
Tabla("nick") = Request("Dato3")
Tabla("tipo") = Request("Dato4")
Tabla("url") = Request("Dato5")
Tabla.Update

%>

<font face="Tahoma" size="2"><b><i>Ingreso de archivos completado</i></b></font></p>
<%

Else
Response.Write "El registro ya existe"
End If

Tabla.Close
Conexion.Close
%>
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com

Última edición por eeeee; 18/05/2004 a las 14:35
  #8 (permalink)  
Antiguo 18/05/2004, 14:36
 
Fecha de Ingreso: octubre-2003
Mensajes: 42
Antigüedad: 21 años, 6 meses
Puntos: 0
Haber haber

nombre_archivo = replace(UCase(pal),".jpg","")

o bien grabalo en la bd con extencion y todo.
__________________
RAL
-----
http://www.raldesign.cl
  #9 (permalink)  
Antiguo 18/05/2004, 14:42
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
y despues para guardarlo en la bd es asi
'
Tabla("pal") = Request("nombre_archivo")
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #10 (permalink)  
Antiguo 18/05/2004, 14:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 42
Antigüedad: 21 años, 6 meses
Puntos: 0
mmm

o oh...

Tabla("pal") = nombre_archivo
__________________
RAL
-----
http://www.raldesign.cl
  #11 (permalink)  
Antiguo 18/05/2004, 14:49
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
vale le probaré, y ya de paso los demas form que son texto, se sacan igual?

nombre_archivo1 = replace(UCase(Dato2))
.....
Tabla("size") = nombre_archivo1
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #12 (permalink)  
Antiguo 18/05/2004, 14:52
 
Fecha de Ingreso: octubre-2003
Mensajes: 42
Antigüedad: 21 años, 6 meses
Puntos: 0
no oh
nombre_archivo1 = replace(UCase(dato2),".txt","")
__________________
RAL
-----
http://www.raldesign.cl
  #13 (permalink)  
Antiguo 18/05/2004, 14:54
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
venga, gracias......
ya lo pruebo mñn que ahora voy a cenar y despues a descansar
por aqui tengo un post que nadie le mete mano.

un saludo:

http://www.forosdelweb.com/s/msg200997.html

http://www.forosdelweb.com/s/msg200915.html
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com

Última edición por eeeee; 18/05/2004 a las 14:57
  #14 (permalink)  
Antiguo 19/05/2004, 02:21
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
He probado y me da este error

Request object error 'ASP 0208 : 80004005'

Cannot use generic Request collection

/public/subeybaja/subir.asp, line 127

Cannot use the generic Request collection after calling BinaryRead.
la linea 127 es esta

SQL = "select * from tabla where campo='"&request("algo")&"'"

yo creo que el problema viene porque esto es un upload y antes recojo los datos, hay que seguir con el primer ejemplo.
si veis que es conveniente posteo el codigo completo
un saludo....
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
  #15 (permalink)  
Antiguo 19/05/2004, 06:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 42
Antigüedad: 21 años, 6 meses
Puntos: 0
Prueba esto haber:
Temp="Select * From Tabla1 Where campo= '" & TuVariableNombreFile & "'
__________________
RAL
-----
http://www.raldesign.cl
  #16 (permalink)  
Antiguo 19/05/2004, 08:49
Avatar de eeeee  
Fecha de Ingreso: febrero-2004
Ubicación: Almería
Mensajes: 397
Antigüedad: 21 años, 2 meses
Puntos: 0
Nada..... da error 500 creo que es error de asp
he probado de mil maneras y tantas veces que es capaz de romperse el disco duro de tanto sobreescribir el archivo.

Voy a postear el codigo completo a ver si alguien da con la tecla.
El tema está en que el codigo funciona bien, sube la portada y guarda la informacion en la base de datos, pero al querer que no duplique, al insertar estas lineas, siempre dice que existe el archivo aunque no exista.

.............
If Tabla.BOF And Tabla.EOF Then
.............
Else
Response.Write "<font color=""red"">El archivo no se pudo subir a la Base de Datos ... porque existe"
End If
Tabla.Close
...................... Sin estas lineas, funciona perfecto, pero duplica.

Código completo __________________________________________________ _

<% ' Upload Alicun.asp %>
<!--#include file="loader.asp"-->

<%
Response.Buffer = True
Dim load
Set load = new Loader
load.initialize
Dim fileData
fileData = load.getFileData("file")
Dim fileName
fileName = LCase(load.getFileName("file"))
fileName = replace(fileName," ","_")
fileName = replace(fileName,"___","_")
fileName = replace(fileName,"__","_")
Dim filePath
filePath = load.getFilePath("file")
Dim filePathComplete
filePathComplete = load.getFilePathComplete("file")
Dim fileSize
fileSize = load.getFileSize("file")
Dim fileSizeTranslated
fileSizeTranslated = load.getFileSizeTranslated("file")
Dim contentType
contentType = load.getContentType("file")
Dim countElements
countElements = load.Count
Dim nameInput
nameInput = load.getValue("name")
Dim tipoInput
tipoInput = load.getValue("tipo")
Dim urlInput
urlInput = load.getValue("url")
Dim pathToFile
pathToFile = Server.mapPath("uploaded/") & "\" & fileName
Dim fileUploaded
fileUploaded = load.saveToFile ("file", pathToFile)
Set load = Nothing
%>
<html>
<head>
<title>Subir portadas</title>
<style>
body, input, td { font-family:verdana,arial; font-size:8pt; }
</style>
</head>

</TD><TD VALIGN="top" ALIGN="center" BGCOLOR="#333333" BACKGROUND="/fondos/mainBg.gif">
<IMG SRC="/fondos/shim.gif" WIDTH="645" HEIGHT="1"><BR>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="630">
<TR><TD><IMG SRC="/fondos/modulemenu.gif" WIDTH="630" HEIGHT="20" BORDER="0"></TD></TR>
<TR><TD BACKGROUND="/fondos/moduleBg.gif" ALIGN="center">
<TABLE WIDTH="98%"><TR><TD>
<p align="center">
<font color="#FFFFFF">
<b>Upload de archivos</b></font><br>
<a href="show.asp">Para ver las novedades pulsa aqui</a>
</p>
<div align="center">
<table width="600" border="1" bgcolor="#729DF0">
<tr>
<td>Nombre</td><td><%= fileName %></td>
</tr><tr>
<td>Ruta</td><td><%= filePath %></td>
</tr><tr>
<td>Tamaño</td><td><%= fileSizeTranslated %></td>
</tr><tr>
<td>Contenido</td><td><%= contentType %></td>
</tr><tr>
<td>Nick</td><td><%= nameInput %></td>
</tr>
</table>
</div>
<br>
<p align="center"><font color="#ffffff">
<%
If fileUploaded = True Then
Response.Write fileName & " subido correcto..."
Else
Response.Write "<font color=""red"">Error al subir el fichero (Comprueba el nombre y tamaño) ..."
Response.Write "</font>"
Response.Write "<br>Por favor, selecciona un archivo antes de "
Response.Write " pulsar el botón 'Subir'."
End If
%>
</p>
<div align="center">
<table border="0">
<tr>
<form action="subir.asp" method="post" enctype="multipart/form-data">
<td><font color="#729DF0">Archivo :</font></td>
<td style="padding: 0" colspan="2"><input type="file" name="file" size="38"></td></tr>
<td><font color="#729DF0">Nick :</font></td>
<td><input type="text" name="name" size="35" value="<%= nameInput %>"></td>
<td><p align="right"><select name="tipo">
<option value="Audio">Audio</option>
<option value="Vhs">Vhs</option>
<option value="Dvd">Dvd</option>
<option value="Divx">Divx</option>
<option value="Carteles">Carteles</option>
<option value="Ps1">Ps1</option>
<option value="Ps2">Ps2</option>
<option value="Xbox">Xbox</option>
<option value="Dreamcast">Dreamcast</option>
<option value="Gamecube">Gamecube</option>
<option value="Juegos Pc">Juegos Pc</option>
<option value="Software">Software</option>
<option selected value="-Tipo-"> - Tipo -</option>
</select></p></td></tr>
<input type="hidden" name="url" value="/public/novedades/">
<td> </td><td colspan="2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<p align="center">
<input type="submit" value="Enviar" name="B1">
<input type="reset" value="Restablecer" name="B2">
</form> </p>
</tr>
</table>
</div>
<%
' empieza bd
Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("novedades.mdb")
Set Tabla = Server.CreateObject("adodb.recordset")
Tabla.Open "Tabla1", Connect, 2, 3

If Tabla.BOF And Tabla.EOF Then
Tabla.AddNew
Tabla("pal") = filename
Tabla("size") = fileSizeTranslated
Tabla("tipo") = tipoInput
Tabla("nick") = nameInput
Tabla("url") = urlInput
Tabla.Update
%>
<font face="Tahoma" size="2"><b><i>Ingreso a la Base de Datos completado</i></b></font></p>
<%
Else
Response.Write "<font color=""red"">El archivo no se pudo subir a la Base de Datos ... porque existe"
End If
Tabla.Close
' fin bd
%>
<p align="center"><font face="Tahoma" size="2">Upload 2004 Alicún.com</font></p>

</TD></TR></TABLE>
__________________________________________________ _
No creo que haga falta el loader.asp pero si hace falta lo posteo entero.
__________________
Eusol .............
aprendiendo de ustedes
________________________

http://www.alicun.com
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:06.