Salve a tutti prendendo seguito da una mia precedente discussione più generale io esporto i dati su un foglio di Excel che poi salvo su una cartella sul server.
Però al momento di importare i dati mi restituisce il seguente errore:
External table is not in the expected format.
Se io invece salvo in file in locale, lo apro con Excel, lo ricarico sul server e reimporto i dati non mi da errore.
Questo è lo script per l'esportazione e salvataggio:
codice:
'ESPORTAZIONE TABELLA LOGIN
dim fsLogin,fnameLogin, filename
set fsLogin=Server.CreateObject("Scripting.FileSystemObject")
set fnameLogin=fsLogin.CreateTextFile("e:\wwwData\vhosts\infotrading.it\httpdocs\gestionale\sincro\xxx.xls",true)
Dim Conn
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("databaseGest/scadenzeDomini.mdb")
set rsLogin = server.createobject("ADODB.recordset")
sqlLogin = "SELECT * FROM login ORDER BY id_login ASC"
set rsLogin = server.createobject("ADODB.recordset")
rsLogin.open sqlLogin, conn
if rsLogin.EOF then
response.write("<b>NESSUN DATO IN ARCHIVIO</b>")
else
fnameLogin.writeLine "<table>"
fnameLogin.write "<tr>"
fnameLogin.write "<td align=""left"">id_login</td>"
fnameLogin.write "<td align=""left"">nomeCognome</td>"
fnameLogin.write "<td align=""left"">username</td>"
fnameLogin.write "<td align=""left"">password</td>"
fnameLogin.write "<td align=""left"">mail</td>"
fnameLogin.write "<td align=""left"">livelloAccesso</td>"
fnameLogin.write "<td align=""left"">attivo</td>"
fnameLogin.write "<td align=""left"">menuSuperiore</td>"
fnameLogin.write "<td align=""left"">magazzino</td>"
fnameLogin.write "<td align=""left"">fatturazione</td>"
fnameLogin.write "<td align=""left"">schedeClienti</td>"
fnameLogin.write "<td align=""left"">ddt</td>"
fnameLogin.write "<td align=""left"">promemoria</td>"
fnameLogin.write "<td align=""left"">assenze</td>"
fnameLogin.write "<td align=""left"">messaggiPrivati</td>"
fnameLogin.write "</tr>"
do while not rsLogin.EOF
fnameLogin.write "<tr>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("id_login")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("nomeCognome")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("username")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("password")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("mail")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("livelloAccesso")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("attivo")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("menuSuperiore")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("magazzino")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("fatturazione")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("schedeClienti")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("ddt")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("promemoria")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("assenze")
fnameLogin.write "</td>"
fnameLogin.write "<td align=""left"">"
fnameLogin.write rsLogin("messaggiPrivati")
fnameLogin.write "</td>"
fnameLogin.write "</tr>"
rsLogin.movenext
loop
fnameLogin.write "</table>"
end if
'fname.WriteLine("Hello World!")
rsLogin.close
set rsLogin = nothing
fnameLogin.Close
set fnameLogin=nothing
set fsLogin=nothing
Questo invece è quello per l'importazione:
codice:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DBQ=" & Server.MapPath("sincro/xxx.xls") & ";" & "DRIVER={Microsoft Excel Driver (*.xls)};"
Set rs = Server.CreateObject("ADODB.recordset")
sql = "SELECT * FROM [xxxx$]"
set rs = server.createobject("ADODB.recordset")
rs.open sql, conn
if rs.EOF then
response.write("NESSUN DATO IN ARCHIVIO")
else
'Response.Write("Carica i dati")
Set ConnDown=Server.CreateObject("ADODB.Connection")
ConnDown.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("xxx/xxxx_test.mdb")
Dim sqlInsert, RECDownInsert, sqlDelete, RECDownDelete
sqlDelete = "DELETE * FROM login"
'response.Write(sqlDelete)
set RECDownDelete = connDown.execute(sqlDelete)
do while not rs.EOF
sqlInsert = "INSERT INTO login (id_login, nomeCognome, username, password, mail, livelloAccesso, attivo, menuSuperiore, magazzino, fatturazione, schedeClienti, ddt, promemoria, assenze, messaggiPrivati) VALUES ("& rs("id_login") &", '"& rs("nomeCognome") &"', '"& rs("username") &"', '"& rs("password") &"', '"& rs("mail") &"', '"& rs("livelloAccesso") &"', "& rs("attivo") &", "& rs("menuSuperiore") &", "& rs("magazzino") &", "& rs("fatturazione") &", "& rs("schedeClienti") &", "& rs("ddt") &", "& rs("promemoria") &", "& rs("assenze") &", "& rs("messaggiPrivati") &")"
'response.Write(sqlInsert)
set RECDownInsert = connDown.execute(sqlInsert)
rs.MoveNext
loop
rs.close
end if
%>
Da cosa può dipendere?
Grazie a tutti in anticipo.