<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Versione 7.0.2: 2 GB di memoria, Windows 7
Ho un ciclo for (che esegue il ciclo due volte per ora). All'interno del ciclo for apro una connessione al database e interrogo una tabella restituita. La tabella restituita è di circa 10 colonne, 1,7 milioni di righe. Salvo quindi il tavolo e lo chiudo, quindi sul tavolo successivo. Il problema è che la memoria non viene mai rilasciata dalla prima tabella, quindi quando recupera i record dalla query di loop successivi, ottengo un'eccezione di memoria. C'è un modo per chiudere definitivamente la tabella e la sua memoria all'interno del ciclo for? Grazie Chris.
Si prega di vedere lo snippet di codice qui sotto:
la mia lista = parole ( Munger ( p [ "wafer" ] , z , "" , "" )) ; // inserisce i numeri di wafer in una lista
N = N articoli ( la mia lista ) ; // conta il numero di wafer nell'elenco
per ( io = 1 , io <= N , io ++,
waf_id = la mia lista [ io ] ;
waf_table = la mia lista [ io ] ;
Se ( lunghezza ( waf_id ) > 0 , waf_id = "( '" || waf_id || "')" ) ;
ls_sql = "SELEZIONA *" ;
ls_sql = ls_sql || "DA WDBP.dbo.SF_QST" ;
ls_sql = ls_sql || "DOVE WAFER_ID IN" || waf_id ;
mostrare ( ls_sql ) ; // mostra l'istruzione SQL nel registro
OpenDatabase ( "DSN = WDBP; UID = WDFREP; PWD = wdfrep;" , ls_sql , waf_table ) ; // interroga il database
dt = tabella dati ( waf_table ) ;
nome del file = waf_table || ".jmp";
mostrare (nome del file);
vicino (dt, save (nomefile));
) ;
OK. Il problema viene risolto inserendo un comando "wait (5)" dopo "close (dt, save (filename))" alla fine del ciclo. JMP non aveva completato il filesave, prima che lo script procedesse per ulteriori elaborazioni.
Ho trovato questo facendo alcuni test, e stupida fortuna ..