
20/11/2003, 10:51
|
 | | | 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
%>
Última edición por lexus; 21/11/2003 a las 10:51 |