Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Problemi nel trasferire record da access a mysql

    Ciao.

    Periodicamente devo trasferire dei dati contenuti in una tbl access ad una identica tbl contenuta invece in mysql.

    Lo script ASP mi va in errore:

    codice:
    Response object error 'ASP 0251 : 80004005' 
    Response Buffer Limit Exceeded 
    /s_conn.asp, line 0 
    Execution of the ASP page caused the Response Buffer to exceed its configured l
    I campi delle due tabelle sono indicizzati.

    Presumo per la mole di dati contenuti nella tbl access più di un milione di record... lo script è questo, cosa posso fare?


    codice:
       Set cn = Server.CreateObject("ADODB.Connection")
       cn.Open "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=db_mysql;USER=root;PASSWORD=XXXXXX;OPTION=3;"   
    
       Set conn = Server.CreateObject("ADODB.Connection")
       OpenStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Inetpub\wwwroot\mdb-database\DB_ACCESS.mdb;Persist Security Info=False"
       conn.Open openStr
    
       SQL = " SELECT * FROM "
       SQL = SQL & " tbl_access "
       SQL = SQL & " WHERE "
       SQL = SQL & " ( "
       SQL = SQL & " EST LIKE '%DI%' "
       SQL = SQL & " OR "
       SQL = SQL & " EST LIKE '%DM%' "
       SQL = SQL & " OR "
       SQL = SQL & " EST LIKE '%DS%' "
       SQL = SQL & " ) "   
       response.write SQL & "
    "
       Set objRs = Server.CreateObject("ADODB.Recordset")
       objRs.Open SQL, conn, 3, 3
       
       if not objRs.eof then    
       do while not objRS.eof
         
       query_select = "SELECT * FROM "
       query_select = query_select & " tbl_mysql "
       query_select = query_select & " WHERE "
       query_select = query_select & " COD = '" & objRs("Cod") & "' " 
       response.write query_select & "
    "
    
       set Rs = Server.CreateObject("ADODB.Recordset")
       Rs.Open query_select, cn
       
       if Not Rs.eof then   
          response.write Rs("COD") & "
    "    
       end if
    
       Rs.Close()
       Set Rs = Nothing   
       
       objRS.movenext()
       Loop
    
       end if
    
       objRs.Close()
       Set objRs = Nothing   
    
       conn.Close()
       Set conn = Nothing
    
       cn.Close()
       Set cn = Nothing
    "Sono sempre più convinto che la religione sia soltanto un mucchio di idiozie. Mi sembra qualcosa che alcuni hanno inventato per far sì che tutti gli altri si comportassero in un certo modo.".

  2. #2
    metti un response.flush dopo response.write

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da optime
    metti un response.flush dopo response.write
    Grazie!
    "Sono sempre più convinto che la religione sia soltanto un mucchio di idiozie. Mi sembra qualcosa che alcuni hanno inventato per far sì che tutti gli altri si comportassero in un certo modo.".

  4. #4
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Cmq rimane il fatto che quando parte questo script il server rallenta da paura per la mole di dati da processare.... qualche suggerimento per velocizzare ed alleggerire l'esecuzione di questo script?
    "Sono sempre più convinto che la religione sia soltanto un mucchio di idiozie. Mi sembra qualcosa che alcuni hanno inventato per far sì che tutti gli altri si comportassero in un certo modo.".

  5. #5
    Di sicuro asp non è il mezzo migliore per questo tipo di operazioni.
    Potresti provare con un linked server su mysql (se li supporta) o con una tabella collegata su access, magari vai più veloce.

    xxx

  6. #6
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Alethesnake
    Di sicuro asp non è il mezzo migliore per questo tipo di operazioni.
    Potresti provare con un linked server su mysql (se li supporta) o con una tabella collegata su access, magari vai più veloce.

    Grazie, ma non ho capito... puoi spiegarti meglio?
    "Sono sempre più convinto che la religione sia soltanto un mucchio di idiozie. Mi sembra qualcosa che alcuni hanno inventato per far sì che tutti gli altri si comportassero in un certo modo.".

  7. #7
    Cio' che intendo è che puoi creare un linked server (se è possibile, devi cercare su mysql.com. Inoltre devi vedere se ne hai i privilegi) da mysql verso access e far girare uno script su mysql di:

    INSERT INTO..
    SELECT FROM..

    Oppure puoi provare a creare su access una tabella collegata a quella di mysql, e lanciare la insert/select su access.
    xxx

  8. #8
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Alethesnake
    Cio' che intendo è che puoi creare un linked server (se è possibile, devi cercare su mysql.com. Inoltre devi vedere se ne hai i privilegi) da mysql verso access e far girare uno script su mysql di:

    INSERT INTO..
    SELECT FROM..

    Oppure puoi provare a creare su access una tabella collegata a quella di mysql, e lanciare la insert/select su access.
    OK ho verificato che mysql supporta il linked server.

    Ho già fatto una prova ad esportare in mysql la tabella access da cui deve avvenire l'aggiornamento e funziona correttamente ... e adesso?
    "Sono sempre più convinto che la religione sia soltanto un mucchio di idiozie. Mi sembra qualcosa che alcuni hanno inventato per far sì che tutti gli altri si comportassero in un certo modo.".

  9. #9
    Originariamente inviato da Mizushi

    ... e adesso?
    Beh, adesso dovresti dirlo tu cosa devi fare

    Che codice hai usato fino ad oggi per effettuare il trasferimento?

    Quali sono le tabelle sorgente e target?
    xxx

  10. #10
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Si è vero...

    Il nuovo codice ASp è questo, in cui tbl_access è la tabella da cui si deve aggiornare la tbl_mysql, ma lanciato dal web è la solita infinita operazione....:

    codice:
       Set cn = Server.CreateObject("ADODB.Connection")
       cn.Open "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=db_mysql;USER=root;PASSWORD=XXXXXX;OPTION=3;"   
    
       SQL = " SELECT * FROM "
       SQL = SQL & " tbl_access "
       SQL = SQL & " WHERE "
       SQL = SQL & " ( "
       SQL = SQL & " EST LIKE '%DI%' "
       SQL = SQL & " OR "
       SQL = SQL & " EST LIKE '%DM%' "
       SQL = SQL & " OR "
       SQL = SQL & " EST LIKE '%DS%' "
       SQL = SQL & " ) "   
       response.write SQL & "
    "
       response.flush()
    
       Set objRs = Server.CreateObject("ADODB.Recordset")
       objRs.Open SQL, cn
       
       if not objRs.eof then    
       do while not objRS.eof
         
       query_select = "SELECT * FROM "
       query_select = query_select & " tbl_mysql "
       query_select = query_select & " WHERE "
       query_select = query_select & " COD = '" & objRs("Cod") & "' " 
       response.write query_select & "
    "
       response.flush()
    
       set Rs = Server.CreateObject("ADODB.Recordset")
       Rs.Open query_select, cn
       
       if Not Rs.eof then   
          SQL="INSERT INTO tbl_mysql .... "    
       end if
    
       Rs.Close()
       Set Rs = Nothing   
       
       objRS.movenext()
       Loop
    
       end if
    
       objRs.Close()
       Set objRs = Nothing   
    
       cn.Close()
       Set cn = Nothing
    "Sono sempre più convinto che la religione sia soltanto un mucchio di idiozie. Mi sembra qualcosa che alcuni hanno inventato per far sì che tutti gli altri si comportassero in un certo modo.".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.