Ver Mensaje Individual
  #15 (permalink)  
Antiguo 20/11/2003, 10:51
Avatar de lexus
lexus
 
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
hola,

lo hice como me dices y tampoco me funciona
no me saca error pero tampoco hace lo que necesito, (necesito qeu solo me agrege una ves el dato.si encuentra un dato igual en la base de datos no lo agrega)

lo que me sale es: cuando hay datos repetidos me salen 78 veces el mensaje "esta repetido" y si le cambio algo al archivo de texto no pasa nada tambien me sale el mensaje de "esta repetido" 78 veces

cuando cambio la primera o la ultima linea del archivo de texto alli me sale el otro mensaje pero tambien 78 veces, "se agrego dato nuevo" y me lo agrega 78 veces y lo deberia agregar solo 1.
que puedo estar hciendo mal?

en negrita esta lo nuevo que le hice..

ojala me puedan ayudar, llevo mucho tiempo con este problema sin poder solucionarlo..gracias por todo.

Código:
<%
Dim FSO, oFichero, Archivo, sql2, dato, fecha, dia, mes, ano
Dim sDate, sTime, sExt, sCO, sDialNumber, sDuration
rs.open "hyperterminal", con, 3, 3
set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set rs2 = Server.CreateObject("ADODB.Recordset")
set oFichero = FSO.OpenTextFile(Server.MapPath("REPORTES.txt"))

On error resume next
Archivo = oFichero.ReadAll

If Err.Number <> 0 then
'no se hace nada y se informa de que el archivo está vacío
response.write "<br>El archivo REPORTES.TXT no tiene datos nuevos.<br>"
Err.clear

else

'quito la linea vacía:
Archivo = Replace(Archivo, vbcrlf & vbcrlf, vbcrlf)

' quito los encabezados:
Archivo = Replace(Archivo,"  Date     Time    Ext CO          Dial Number           Duration  Acc code  CD " & vbcrlf, "")

' quito los "-"
Archivo = Replace(Archivo,"--------------------------------------------------------------------------------" & vbcrlf, "")

' convierto el string en una matriz por el salto de linea
Archivo = Split(Archivo, vbcrlf)

' por cada elemento del array, detecto "campos" y los guardo en variables "volátiles"
For i = 0 to UBound(Archivo)
sDate = Trim(Left(Archivo(i), 8))
sTime = Trim(Mid(Archivo(i), 10, 7))
sExt = Trim(Mid(Archivo(i), 20, 3))
sCO = Trim(Mid(Archivo(i), 24, 2))
sDialNumber = Trim(Mid(Archivo(i), 27, 31))
sDuration = Trim(Mid(Archivo(i), 58, 8))
'convierto la fecha d/m/a al formato separado
'-----------------------------------
mes = Left(sDate, 2)
dia = Mid(sDate, 4, 2)
ano = "20" & Right(sDate, 2)
fecha=  mes & "/" & dia & "/" & ano
'---------------------------------
'cambio el formato de duracion
sDuration = Replace(sDuration, "'", ":")
'---------------------------------
' consulta para verificar si hay datos repetidos en la bd
' todos los campos son de texto
sql2 = "SELECT * FROM hyperterminal WHERE fecha like '%" & fecha & "%' AND hora = '" & sTime & "' AND co = '" & sCo & "'"
rs2.Open sql2, con, 3, 3

if rs2.eof then
'Los datos no existen
response.write "se agrego dato nuevo <br>"

rs.AddNew
rs("dia") = dia
rs("mes") = mes
rs("ano") = ano
rs("fecha") = fecha
rs("hora") = sTime
rs("ext") = sExt
rs("co") = sCO
rs("llamada_saliente") = sDialNumber
rs("duracion") = sDuration
rs.Update
else
'los datos existen
response.write "esta repetido <br>"
end if
set rs2 = nothing
'------------------------- 
Next
'para agregar solo datos nuevos a la base de datos, sobreescribe el archivo txt
Set CrearNuevoEnBlanco = FSO.CreateTextFile(Server.MapPath("REPORTES.txt"), TRUE)


oFichero.Close
Set oFichero = nothing
set FSO = nothing
Set CrearNuevoEnBlanco = Nothing
end if

set rs = nothing

set con = nothing
%>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com

Última edición por lexus; 21/11/2003 a las 10:51