C.A: Löschen

Hallo mal eine dumme Frage,
kann man den Inhalt eines Recordset ganz löschen ohne dass man jeden Datensatz extra löschen muss bis die Enterkennung(EOF)kommt

ich mach das garde so

Do While Not oRst.EOF
 oRst.Delete
 oRst.MoveNext
Loop
oRst.close

aber bei über 6000 Datensätzen dauert das unheimlich lange.

habt ihr eine Idee???

Danke!

Gruß

Corinna

  1. Hi,

    Do While Not oRst.EOF
    oRst.Delete
    oRst.MoveNext
    Loop
    oRst.close

    aber bei über 6000 Datensätzen dauert das unheimlich lange.

    sieht ganz gut aus, aber im Hintergrund wird eine Unmenge an SQL-Traffic generiert, darum die Langsamkeit.

    habt ihr eine Idee???

    Du bindest doch vermutlich den Recordset an ein SQL-Statement. Du kannst doch mit einer "SQL-Execute"-Methode ein trockenes DELETE in Auftrag geben. Du musst halt nur Deinen Recordset und die Datenbasis ein wenig verstehen.

    BTW - wie lautet das SQL-Statement zum Fuellen des Recordsets?

    Gruss,
    Ludger

    1. sieht ganz gut aus, aber im Hintergrund wird eine Unmenge an SQL-Traffic generiert, darum die Langsamkeit.

      Das mit der Traffic habe ich mir auch gedacht aber sicher war ich mir nicht.

      habt ihr eine Idee???

      Du bindest doch vermutlich den Recordset an ein SQL-Statement. Du kannst doch mit einer "SQL-Execute"-Methode ein trockenes DELETE in Auftrag geben. Du musst halt nur Deinen Recordset und die Datenbasis ein wenig verstehen.

      BTW - wie lautet das SQL-Statement zum Fuellen des Recordsets?

      Das zum erstellen

      SELECT *
      FROM VIEW_EXCHANGE
      WHERE (FADeaktiv = 'FF'
      AND FDatumEdit > '"&s(0)&"'
      OR ADatumEdit > '"&s(0)&"'
      OR MDatumEdit > '"&s(0)&"'
      OR FDatumNeu > '"&s(0)&"'
      OR ADatumNeu > '"&s(0)&"'"

      s(0) = ist die Variable wo drinnen steht wann das Skript zu letzten mal gestarrte wurde! Alles was drüber ist wird hochbeladen ist eine Monat vergangen wir ein Vollupdate gefahren

      das ist zumm löschen
      If Monat <> Month(Loeschen) Then
       'Volllöschung 20.12.2004
       sSQL="select * from """&strURL_Full&""""
       sSQL=sSQL & " WHERE "
       sSQL=sSQL & "(""http://schemas.microsoft.com/exchange/outlookmessageclass"" != 'IPM.Microsoft.FolderDesign.FormsDescription')"
       WScript.StdOut.WriteLine("Abfrage für die Volllöschung!")
      Else
       'Teillöschung 20.12.2004
       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 & " ) "

      WScript.StdOut.WriteLine("Abfrage für die Teillöschung!")
      End If

      Gruß

      Corinna

      1. Hi,

        BTW - wie lautet das SQL-Statement zum Fuellen des Recordsets?
        Das zum erstellen

        SELECT *
        FROM VIEW_EXCHANGE
        WHERE (FADeaktiv = 'FF'
        AND FDatumEdit > '"&s(0)&"'
        OR ADatumEdit > '"&s(0)&"'
        OR MDatumEdit > '"&s(0)&"'
        OR FDatumNeu > '"&s(0)&"'
        OR ADatumNeu > '"&s(0)&"'"

        das ist zumm löschen
        sSQL="select * from """&strURL_Full&""""
        sSQL=sSQL & " WHERE "
        sSQL=sSQL

        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 & " ) "

        Moment, der Recordset wird mit Datensaetzen der Sicht 'VIEW_EXCHANGE' gefuellt, die Loeschungen erfolgen aber in '&strURL_Full' ? Lasse Dir doch mal sSQL ausgeben und versuche dann das SELECT durch ein DELETE zu ersetzen. (Aber Vorsicht mit dem Loeschen!)

        Gruss,
        Ludger

        1. Moment, der Recordset wird mit Datensaetzen der Sicht 'VIEW_EXCHANGE' gefuellt, die Loeschungen erfolgen aber in '&strURL_Full' ? Lasse Dir doch mal sSQL ausgeben und versuche dann das SELECT durch ein DELETE zu ersetzen. (Aber Vorsicht mit dem Loeschen!)

          Genau ich möchte einfach die Daten vom Exchange Server löschen und die Datenbank soll außen vor bleiben.

          Das mit dem löschen ist sonne Sache ich habe keine Lust die Datenbank abzuschießen.

          Daran habe ich auch gedacht aber ich bin mir immer nicht sicher bin ich jetzt auf der Datenbank oder doch aufen Exchange Server.

          Aber wenn ich einen Test Datensatz hochlade und den denn durch das Delete lösche weiß ich ja ob es klappt

          1. Hi,

            du musst doch aber wissen zu welcher Resource du die Verbindung hergestellt hast, die du gerade verwendest?

            Ciao, Frank

            1. Hi,

              du musst doch aber wissen zu welcher Resource du die Verbindung hergestellt hast, die du gerade verwendest?

              Na das weiß ich schon wie was und wo. Es ist für mich nur schwer andere Programmierer  zu verstehen was sie mir mit dem Quellcode sagen wollten.

              Gruß
              Corinna

              1. Hi,

                Na das weiß ich schon wie was und wo. Es ist für mich nur schwer andere Programmierer  zu verstehen was sie mir mit dem Quellcode sagen wollten.

                Du kannst Dich ja revanchieren.   ;-)

                Gruss,
                Ludger