C.Andrä: Löschen von Kontakten

Beitrag lesen

Guten Morgen alle mit einander.

Mein Thema löschen von Kontakten in Outlook per Script.

Es ist ja klar was der Programmierer hier macht. was aber ist es ist sehr lang langsam und das löschen von 6000 Kontakten aus Outlook dauert Stunden. weil er jeden Kontakt einzelne löscht.

ob man nicht alle Kontakte mit einem mal löschen kann??

z.B
oRst.Fields.Delete // würde das gehen? weil wenn ich das Test läuft es aufm Server und ich habe keine Lust irgendwas zu zerschießen mit meinem Script

'Von Dirk eingefügte Löschprozedur ...
     Set oRec = CreateObject("ADODB.Record")
    Set oRst = CreateObject("ADODB.Recordset")
    oRec.Mode = adModeReadWrite
    oRec.Open strURL_Full

'WScript.echo
 if (day(DayNow)\7 = NumberOfWeekDelete AND weekday(DayNow) = DayOfWeekDelete)  then
  call Message(1,0,"AditoExchange","FullDelete Exchange","")
     sSQL="select * from """&strURL_Full&""""
     sSQL=sSQL & " WHERE "
     sSQL=sSQL & "(""http://schemas.microsoft.com/exchange/outlookmessageclass"" != 'IPM.Microsoft.FolderDesign.FormsDescription')"

'strSqlSource = strSqlSource
 else
  call Message(1,0,"AditoExchange","PartDelete Exchange","")
     sSQL="select * from """&strURL_Full&""""
     sSQL=sSQL & " WHERE "
     sSQL=sSQL & "(""http://schemas.microsoft.com/exchange/outlookmessageclass"" != 'IPM.Microsoft.FolderDesign.FormsDescription')"
     sSQL=sSQL & " AND ( "
     sSQL=sSQL & WHEREAID
     sSQL=sSQL & " ) "
     'strSqlSource = strSqlSource & " AND ( ( FDatumEdit between DATEADD(day, -32, getdate()) and  getdate() ) OR ( ADatumEdit between DATEADD(day, -32, getdate()) and  getdate() ) OR ( MDatumEdit between DATEADD(day, -32, getdate()) and  getdate() ) OR ( FDatumNeu between DATEADD(day, -32, getdate()) and  getdate() ) OR ( ADatumNeu between DATEADD(day, -32, getdate()) and  getdate() ) )"
 end if

oRst.Open sSQL,oRec.ActiveConnection

ZZZ=0

'For intCnt = 0 To oRst.Fields.Count - 1
 '    WScript.echo oRst.Fields(intCnt).Name&":"&oRst.Fields(intCnt).value
 'Next

Do While Not oRst.EOF
 ' if oRst.Fields("http://schemas.microsoft.com/exchange/outlookmessageclass").Value <> "IPM.Microsoft.FolderDesign.FormsDescription" THEN oRst.Delete
  ZZZ=ZZZ+1
  if  ((ZZZ+250) mod 250) = 0 then
   'WScript.echo "AditoExchange: Delete ("&ZZZ&":"&oRst.Fields("urn:schemas:contacts:customerid").Value&"). "& ZeitStart & " -> " & Time
   call Message(1,1,"AditoExchange","Delete ("&ZZZ&")","")
  end if
  oRst.Delete
  oRst.MoveNext

Loop
 oRst.close