Dovendo importare una tabella di un file mdb in una tabella - già esistente - di mysql accodando i nuovi dati ho tirato giù, da apprendista stregone quale sono, il seguente script:
<% @Language=VBScript %>
<!--#include file="const.asp"-->
<%'funzione GetRSmdb (sql, database)
'Genera recordset disconnesso
function GetRSmdb (sequel, database)
' Connection string to the access db
Set cconn = CreateObject("ADODB.Connection")
cconn.Provider = "Microsoft.Jet.OLEDB.4.0"
cconn.Open database
'crea recordset
set Rs=Server.CreateObject("ADODB.recordset")
Rs.CursorLocation=adUseClient
' Execute the sql
Rs.Open sequel, cconn , adOpenStatic, adLockPessimistic
'chiudi connessione al recordset
set Rs.ActiveConnection=Nothing
'genera oRS
set GetRSmdb = Rs
' close the objects
cconn.Close
Set cconn = Nothing
set Rs = Nothing
end function
%>
<%
'Sub ExecSQLmdb (sql, database)
'Esegue comandi sql
sub ExecSQLmdb (sql, database)
'crea oggetto e connessione
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open database
'esegue l'istruzione sql
conn.Execute sql, recaffected
'fa pulizia
conn.close
set conn=Nothing
end sub
%>
<%
sql = "SELECT num, data, oggetto, proponente, organo, repertorio, anno FROM atti;"
mdb = server.MapPath(request.querystring ("mdb") & ".mdb")
if mdb <> "" then
set mdbRs = GetRSmdb (sequel,mdb)
do until mdbRs.eof
ins = ins + 1
rovData = year(mdbRs ("data")) & "-" & month(mdbRs ("data")) & "-" & day(mdbRs ("data"))
'inserisce in MYSQL
sqli="INSERT INTO atti "
sqli = sqli & "(num, data, oggetto,"
sqli = sqli & " proponente, organo, repertorio, anno) "
sqli = sqli & "VALUES ("
sqli = sqli & "" & mdbRs ("num") & " ,"
sqli = sqli & " '" & rovData & "',"
sqli = sqli & " '" & replace (mdbRs ("oggetto"),"'","''") & "',"
sqli = sqli & " '" & replace (mdbRs ("proponente"),"'","''") & "',"
sqli = sqli & " '" & replace (mdbRs ("organo"),"'","''") & "',"
sqli = sqli & " '" & replace (mdbRs ("repertorio"),"'","''") & "',"
sqli = sqli & " " & mdbRs ("anno") & ");"
'esegue e chiude
call ExecSQL (sqli)
mdbRs.MoveNext
Loop
set mdbRs = Nothing
response.write "INSERITI N. " & ins & " RECORD."
end if
%>
Chiamo il seguente url "http://intranet/deliberework/import.asp?mdb=2005" ed ottengo:
ADODB.Recordset (0x800A0BB9)
Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.
/deliberework/import.asp, line 21
Sto spaccandomi la testa su cosa è che genera il conflitto...