MEMORIA DI SISTEMA INSUFFICENTE

mercoledì 09 novembre 2005 - 11.32

Gho5t Profilo | Junior Member

ciao a tutti....
ho un problema... ed è anche bello grosso....
ho fatto un programma che preleva le email e i relativi nomi da un database Access (mdb) e che li inserisce sui contatti di Outlook...

il mio problema è che quando le email sono più di 100 si verifica l'errore della memoria di sistema insufficente...

per inserire i contatti su outlook uso questo piccolo script che ho creato...

'creazione di un'applicazione di outlook
Dim olApp As Microsoft.Office.Interop.Outlook.Application
olApp = CreateObject("Outlook.Application")

Dim x As Integer
For x = 0 To i
'creazione di un contatto di outlook
Dim c As Microsoft.Office.Interop.Outlook.ContactItem
c = olApp.CreateItem(OlItemType.olContactItem)

'inserisco i dati del contatto dal database mdb sul contatto appena creato
c.Email1Address = email(x)
c.FullName = nome(x)

'salvataggio del contatto su Outlook
c.Save()

'chiusura del contatto
c.Close(OlInspectorClose.olDiscard)
Next
'chiusura dell'applicazione Outlook
olApp.Quit()


dove email e nome sono due array contenenti i risultati della query che ho fatto su Access

Ho un paio di domande:
1 - come faccio a far diminuire le risorse di sistema che questo programma preleva?
2 - se ogni volta creo e chiudo il contatto mi spreca risorse di sistema?
3 - è possibile creare un array di contatti di outlook e poi salvarli tutti in un momento?
4 - se la risposta alla domanda precedente è positiva, vorrei sapere si sprecano più risorse in questo modo oppure no?
5 - conoscete un programma visuale per windows xp che monitorizza le risose di sistema?


Grazie mille a tutti....

Brainkiller Profilo | Guru

>5 - conoscete un programma visuale per windows xp che monitorizza
> le risose di sistema?

Il task manager di Windows XP è un ottimo strumento per monitorare il sistema non solo memoria e CPU ma anche altri valori nella linguetta Performance. Se la selezioni e vai sul menù "Visualizza"->"Seleziona Colonne" vedrai che potrai aggiungere ulteriori valori.

Un altro strumento utile è il Performance Monitor (da start->esegui digita perfmon e premi Ok).

Evidentemente durante l'operazione di creazione e inserimento contatti rimane qualcosa in memoria che non viene liberato.

Quello che ti consiglio è monitorare l'uso della memoria durante il funzionamento dal Task Manager. In seconda istanza, nello script visto che immagino usi un ciclo, apri l'istanza di Outlook prima del ciclo e chiudila dopo la fine del ciclo in modo che la parte centrale del ciclo sia solo creazione e aggiunta dei contatti.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Gho5t Profilo | Junior Member

grazie mille....

ce l'ho fatta... ho seguito il tuo consiglio...

UN UOMO NON MUORE PER QUALCOSA IN CUI NON CREDE
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5