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

Fehler Update: "kann nicht speichern" beim Versuch, ein ADO-Recordset in einer Datei speichern

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie versuchen, ein ADO-Recordset in einer Datei zu speichern, die von einem anderen Benutzer des Systems erstellt wurde, erhalten Sie folgende Fehlermeldung:
Laufzeitfehler '-2147286781 (80030103) ':
Kann nicht gespeichert werden.
Erhalten Sie diese Fehlermeldung, wenn diese Anwendung in einem schreibgeschützten Ordner ist selbst wenn die Recordset-Datei in einem Ordner ist, Berechtigungen für beide Benutzer Schreibzugriff hat.

Ursache

Wenn Sie versuchen, das Recordset in einer Datei, die bereits vorhanden ist, das Recordset -Objekt zu speichern, erstellt eine temporäre Datei im Ordner der Anwendung. Dieser Ordner ist ein schreibgeschützter Ordner. Daher kann nicht der zweite Benutzer die Quelldatei überschrieben.

Lösung

Dieses Problem wird in Microsoft Data Access Components (MDAC) 2.8 behoben. In MDAC 2.8, die ADODB Recordset erstellt die temporäre Datei in demselben Ordner wie die Ziel-Datei, speichern Sie das Recordset verwendet wurde.

Um Microsoft Data Access Components (MDAC) 2.8 herunterzuladen, die folgende Microsoft-Website:
Hinweis: Microsoft empfiehlt, Ihre Anwendung mit MDAC 2.8 in einer Testumgebung zunächst testen um sicherzustellen, dass Sie etwaige Kompatibilitätsprobleme erkennen, bevor Sie mit (oder aktualisieren) MDAC 2.8 Version.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel Microsoft-Produkten handelt. Dieser Bug wurde in MDAC 2.8 behoben.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie Microsoft Visual Basic 6.0.
  2. Klicken Sie im Menü Datei auf Neues Projekt . Klicken Sie im Dialogfeld Neues Projekt auf Standard Exe . Standardmäßig wird jetzt Form1 erstellt.
  3. Klicken Sie im Menü Projekt auf Verweise . Klicken Sie auf Microsoft ActiveX Data Objects 2.7 Library , und klicken Sie dann auf OK .
  4. zwei Befehlsschaltflächen dem Formular hinzufügen.
  5. Right-click Form1, click View Code, and then add the following code:
    Option Explicit
    
    Private Sub Command1_Click()
       Dim cn As New Connection
       Dim rs As New Recordset
    
       On Error GoTo ErrHandler
       cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=YourSQLServer"
       cn.Open
          
       ' Open the RecordSet
       rs.Open "SELECT * FROM CUSTOMERS", cn, adOpenDynamic, adLockPessimistic
       
       ' Persist the RecordSet
       rs.Save "C:\Documents and Settings\NonAdminUserName\My Documents\Customer.dat"
       
       Exit Sub
       
    ErrHandler:
       MsgBox "Error : " & Err.Description
    End Sub
    
    Private Sub Command2_Click()
       Dim rs As New ADODB.Recordset
       
       On Error GoTo ErrHandler:
       
       ' Read the Persisted RecordSet
       rs.Open "C:\Documents and Settings\NonAdminUserName\My Documents\Customer.dat"
       
       ' Save the RecordSet
       rs.Save "C:\Documents and Settings\NonAdminUserName\My Documents\Customer.dat"
       
       Exit Sub
    
    ErrHandler:
       MsgBox "Error Number: " & Err.Number
       MsgBox "Error Description: " & Err.Description
    End Sub
    
    Private Sub Form_Load()
       Command1.Caption = "Persist RecordSet"
       Command2.Caption = "Reload Data"
    End Sub
    
  6. Ersetzen Sie "YourSQLServer" in der Verbindungszeichenfolge durch den Namen Ihres SQL Servers.
  7. Speichern Sie das Projekt im Ordner C:\Programme\Microsoft Files\Test .
  8. Klicken Sie im Menü Ausführen auf Starten .
  9. Klicken Sie auf RecordSet beibehalten , und Klicken Sie dann auf erneut . Kein Fehler auftritt.
  10. Der Computer als Benutzer ohne Administratorrechte anmelden (standardmäßig nicht Administratoren haben keinen Schreibzugriff Zugriff zu C:\Programme\Microsoft Dateien\ Ordner).
  11. Führen Sie das Projekt erneut aus. Sie erhalten die Fehlermeldung in den Abschnitt "Problembeschreibung" beschriebene.

Informationsquellen

Weitere Informationen zu Microsoft Data Access Technologies, besuchen Sie die folgende Website:
http://www.microsoft.com/data (http://www.microsoft.com/data)

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft Data Access Components
Keywords: 
kbmt kbprogramming kbdataobject kbfix KB818518 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: 818518  (http://support.microsoft.com/kb/818518/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