Artikel-ID: 818521 - Geändert am: Donnerstag, 17. Mai 2007 - Version: 1.2

Update: Anwendung beendet bei der Tiefe des SHAPE Command untergeordnete Recordset ist groß

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie die Tiefe des untergeordneten Recordsets in einem Befehl SHAPE-Objekt, erhöhen indem große Anzahl von Recordsets, wird die Anwendung möglicherweise unerwartet beendet.

Ursache

Die Anwendung unerwartet, da die Beziehung zwischen dem Recordset eingerichteten rekursiv und Rekursionstiefe wird nicht gesteuert wird. Bei den unkontrollierten Rekursion Stapelüberläufe beendet die Anwendung.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel Microsoft-Produkten handelt.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie Visual Basic 6.0. Klicken Sie im Menü Datei auf Neues Projekt . Klicken Sie im Dialogfeld Neues Projekt auf Standard Exe . Standardmäßig wird jetzt Form1 erstellt.
  2. Klicken Sie im Menü Projekt auf Verweise . Klicken Sie auf Microsoft ActiveX Data Objects 2.7 Library , und klicken Sie dann auf OK .
  3. Doppelklicken Sie auf Form1 , um die Codeansicht für Form_Load zu öffnen. Add the following code to the Form1_Load event.
    Private Sub Form_Load()
       Dim cn As New Connection
       Dim rs As New Recordset
       Dim str As String
       Dim shapestr1  As String
       Dim i As Integer
    
       cn.Open "Provider=MSDataShape;Data Provider=SQLOLEDB;User ID=sa;Persist Security Info=False;Initial Catalog=Northwind;Data source=10.150.144.131"
       
       On Error Resume Next
       
       cn.Execute ("DROP TABLE F1")
       cn.Execute ("CREATE TABLE F1 (id INT PRIMARY KEY, name VARCHAR (255))")
       cn.Execute ("INSERT INTO F1 (id, name) VALUES (1, '11111111111')")
       cn.Execute ("INSERT INTO F1 (id, name) VALUES (2, '22222222222')")
       cn.Execute ("INSERT INTO F1 (id, name) VALUES (3, '33333333333')")
       cn.Execute ("INSERT INTO F1 (id, name) VALUES (4, '44444444444')")
       cn.Execute ("INSERT INTO F1 (id, name) VALUES (5, '55555555555')")
       
       cn.Execute ("DROP TABLE F2")
       cn.Execute ("CREATE TABLE F2 (idx INT PRIMARY KEY, title VARCHAR (255))")
       cn.Execute ("INSERT INTO F2 (idx, title) VALUES (1, '11111111111')")
       cn.Execute ("INSERT INTO F2 (idx, title) VALUES (2, '22222222222')")
       cn.Execute ("INSERT INTO F2 (idx, title) VALUES (3, '33333333333')")
       cn.Execute ("INSERT INTO F2 (idx, title) VALUES (4, '44444444444')")
       cn.Execute ("INSERT INTO F2 (idx, title) VALUES (5, '55555555555')")
       
       On Error GoTo ErrHandler
          
       Dim hapestr1 As String, shapestr2 As String
          
       
       ' Construct SHAPE command
       shapestr1 = "SHAPE {select * from F1} APPEND ("
       shapestr2 = "RELATE id TO id) "
       For i = 2 To 11000
          shapestr1 = shapestr1 + "(SHAPE {select * from F1} APPEND ("
          shapestr2 = "RELATE id TO id)) " + shapestr2
       Next
       shapestr1 = shapestr1 + "{select * from F1} "
       
       shapestr1 = shapestr1 + shapestr2
       
       ' Try to open the recordset
       rs.Open shapestr1, cn, adOpenDynamic, adLockBatchOptimistic, -1
       rs.Close
       
       Exit Sub
       
    ErrHandler:
       MsgBox "Error Number: " & Err.Number
       MsgBox "Error Description: " & Err.Description
       
    End Sub
    
  4. Klicken Sie im Menü Ausführen auf Starten .
Die Anwendung reagiert nicht mehr und die Visual Basic-Instanz wird automatisch beendet.

Informationsquellen

Weitere Informationen zu Datenzugriffstechnologien der folgenden Microsoft-Website:
Datenzugriffstechnologien
http://msdn2.microsoft.com/en-us/data/aa937730.aspx (http://msdn2.microsoft.com/en-us/data/aa937730.aspx)


Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Data Access Components
  • Microsoft ActiveX Data Objects 2.7
Keywords: 
kbmt kbfix kbdatabase kbsqlprog kbdataobject kbbug KB818521 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 818521  (http://support.microsoft.com/kb/818521/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Retired KB ArticleDisclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
 

SPRACHE AUSWÄHLEN