Dieses Dokument enthält Informationen zu technischen Aspekten, bekannten Problemen und Einschränkungen von Microsoft® Data Access Components, Version 2.5.
Die Standardinstallation von MDAC für den Weitervertrieb enthält die Kernkomponenten (ADO, OLE DB und ODBC) und zusätzliche OLE DB-Provider und ODBC-Treiber für verschiedene Datenspeicher. Informationen zum MDAC SDK, das Dokumentation, Beispiele, Tools, Header und Bibliotheken enthält, finden Sie im Abschnitt Technische Informationen zu MDAC in dieser Infodatei.
MDAC-Dateiliste in der Versionsinhaltsliste für MDAC verfügbar
Eine vollständige Liste der MDAC-Dateien finden Sie in der Versionsinhaltsliste (Release Manifest) unter folgender Adresse: http://www.microsoft.com/data/download.htm.
So installieren Sie das MDAC 2.5-SDK vom Platform SDK
Sie können das Platform SDK vollständig oder als separate Komponenten von der MSDN Online-Website aus installieren: http://msdn.microsoft.com/developer/sdk/platform.asp. Ein Installations-Assistent führt Sie durch den Installationsvorgang. Da andere Anwendungen Data Access Components gemeinsam nutzen, müssen Sie vor der Installation des Platform SDK alle anderen Anwendungen schließen.
Der Platform SDK-Installations-Assistent ermöglicht die Wahl zwischen der Standardinstallation und einer benutzerdefinierten Installation. Bei der Standardinstallation wird das gesamte SDK gedownloadet, während Sie bei einer benutzerdefinierten Installation spezifische Komponenten auswählen können: Dokumentation, Buildumgebung, Debugger, Tools, Beispiele und Quellcode, weitervertreibbare Komponenten und weiteres Material. Für Data Access Components können Sie beliebige Komponenten des MDAC SDK zur Installation auswählen: APIs, Dokumentation, Beispiele usw. Wenn Sie das MDAC SDK installieren, sollten Sie im Rahmen der Installation auch die Buildumgebung aktualisieren, um die Synchronisierung der Komponenten aufrechtzuerhalten.
HTML-Hilfedateien benötigen unter Windows NT 4.0 eine aktualisierte Version von "Hhctrl.ocx"
Wenn Sie Microsoft® NT 4.0 Service Pack 3 verwenden, ist für MDAC 2.5 eine aktualisierte Version von Hhctrl.ocx erforderlich, um HTML-Hilfedateien ordnungsgemäß anzuzeigen. Installieren Sie die HTML-Hilfe-Aktualisierung von der folgenden Adresse im MSDN Online Web Workshop: http://msdn.microsoft.com/workshop/author/htmlhelp/localize.asp. Wählen Sie die entsprechende Sprache für Ihre Plattform aus.
MDAC-Abhängigkeiten
Neue Funktionen in den OLE DB-Kerndiensten (Oledb32.dll), und damit im MDAC-Stack, hängen von den folgenden weiteren zwei DLLs ab, die in den Internet Explorer-Versionen mitgeliefert werden:
Fehler bei SQL Server
Wenn Sie MDAC 2.5 auf einem Computer installieren, auf dem Anwendungen ausgeführt werden, die über den Microsoft OLE DB-Provider für SQL Server oder den Microsoft SQL Server ODBC-Treiber auf SQL Server 6.5 zugreifen, und wenn die auf diesem Computer mit Microsoft SQL Server 6.5 installierten gespeicherten Katalogprozeduren nicht auf dem aktuellen Stand sind, erzeugt der Provider oder Treiber die folgenden Warnungen:
Wird diese Meldung ignoriert, können Probleme bei der jeweiligen Anwendung auftreten (zum Beispiel der Verlust von Schemainformationen).
So beheben Sie dieses Problem:
- ODER -
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft ADO-Dokumentation.
Technische Informationen zu ADO/RDS
Bekannte Probleme und Einschränkungen bei ADO/RDS
Microsoft Internet Explorer 5.0 und XML
Microsoft® Internet Explorer 5.0 ist zum Öffnen eines Recordset-Objekts aus einer XML-Datei erforderlich.
Änderungen an der Fields-Auflistung von ADO 2.5 seit Windows 2000 Beta 2
Um die Leistung in ADO zu verbessern, werden das Hinzufügen und Löschen für die Fields-Auflistungen des Record-Objekts sowie Änderungen am Wert eines bestehenden Feldes bis zum Aufrufen der Update-Methode zwischengespeichert. Beim Aufruf der Update-Methode werden alle Änderungen als ein Batch vorgenommen.
Jedes Feld weist eine Status-Eigenschaft auf. Sollte bei einer Aktualisierung ein Fehler auftreten, können Sie mithilfe der Status-Eigenschaft feststellen, welche Felder erfolgreich hinzugefügt, gelöscht oder geändert wurden. Für Felder, für die eine Bearbeitung noch aussteht, wird kein Commit ausgeführt, wenn ein Record-Objekt geschlossen wird oder wenn es vor dem Aufruf der Update-Methode den zulässigen Bereich überschreitet.
Zwei Methoden wurden für die Fields-Auflistung hinzugefügt: Resync und CancelUpdate. Ein zusätzlicher Parameter wurde der Append-Methode hinzugefügt, mit dem Sie den Wert eines Feldes angeben können, das Sie anhängen. Die Resync-Methode ruft die aktuellen Werte für Felder vom Server ab und verwendet ResyncEnum als einzigen Parameter (der Standardwert ist adResyncAllValues). Resync hat keine Auswirkung auf gelöschte Felder. Gelöschte Felder sind weiterhin im lokalen Cache sichtbar, bis sie mit einem Update-Aufruf erfolgreich gelöscht werden. Die Fields.Count-Eigenschaft wird beim Löschen eines Feldes ebenfalls erst geändert, nachdem Update aufgerufen und das Feld erfolgreich gelöscht wurde.
Das Field-Objekt des Record-Objekts weist drei neue Eigenschaften auf: Status, OriginalValue und UnderlyingValue. Die Status-Eigenschaft des Field-Objekts zeigt den aktuellen Status des Feldes an, d. h. adFieldPendingUpdate für ein Feld mit einem neuen Wert, für das jedoch Update noch nicht aufgerufen wurde. OriginalValue und UnderlyingValue entsprechen den gleichnamigen Eigenschaften des Field-Objekts für das Recordset-Objekt.
Änderungen an der URL-Bindung von ADO 2.5 seit Windows 2000 Beta 2
Um die URL-Bindung zu vereinfachen, können Sie "URL=" in einer Verbindungszeichenfolge verwenden. Beispiel:
rec.Open "Verzeichnis", "URL=http://Computer/Ordner/", adModeReadWrite
Die folgenden Konstanten werden nicht mehr unterstützt: adOpenURLBind, adCmdURLBind und adOpenStreamFromURL.
Änderung am Setup-Programm: RDS-Option "DataFactory" bei der Installation auf abgesicherten Modus festgelegt
Das Remote Data Service (RDS)-Setup-Programm wurde in MDAC 2.5 geändert. Die RDS-Option DataFactory wird nun für Aktualisierungen und Neuinstallationen von Windows 2000 automatisch auf den abgesicherten Modus festgelegt (MDAC 2.5 wird mit Windows 2000 geliefert). Zuvor änderte das MDAC-Setup-Programm die DataFactory-Einstellungen einer bestehenden RDS-Installation nicht.
Diese Änderung betrifft nur Windows 2000. Wenn Sie MDAC 2.5 auf einem Computer installieren, auf dem Windows NT 4.0, Windows 95 oder Windows 98 ausgeführt wird, gibt es keine Änderung des Installationsverhaltens. Auf diesen Systemen werden bestehende DataFactory-Einstellungen bei der Aktualisierung auf MDAC 2.5 unverändert beibehalten.
Anmerkung Das Setup-Programm für MDAC 2.5 oder höher legt DataFactory nur einmal, bei der ersten Installation, auf den abgesicherten Modus fest. Wenn deshalb für einen Computer, auf dem Windows NT 4.0, Windows 95 oder Windows 98 ausgeführt wird, eine Neuinstallation von MDAC 2.5 oder höher vorgenommen wird (keine früheren MDAC-Versionen wurden installiert) UND DataFactory später für die uneingeschränkte Verwendung konfiguriert wird, bleibt die Konfiguration bei der Aktualisierung des Computers auf Windows 2000 erhalten. Aus dem gleichen Grund wird durch die Aktualisierung des Release Candidate 3 oder höher von Windows 2000 auf eine andere Version oder durch die Aktualisierung auf eine höhere MDAC-Version die Konfiguration für den abgesicherten Modus nicht erneut geändert.
Clientcursormodul und OLE DB 2.5-Schnittstellen
Das Clientcursormodul implementiert die OLE DB 2.5-Schnittstellen nicht. Wenn Sie ein Recordset-Objekt auf einem OLE DB-Provider der Version 2.5 öffnen und adUseClient als CursorLocation angeben, funktionieren deshalb bestimmte Eigenschaften nicht einwandfrei; z. B. gibt RecordCount stets -1 zurück.
"Extended Properties" bei Data Shaping Service und Remoting Provider
Bei Verwendung von Data Shaping Service für OLE DB oder Remoting Provider von OLE DB ist die Extended Properties-Eigenschaft verfügbar, selbst wenn Persist Sensitive Authinfo auf False festgelegt ist. Die Benutzer sollten wissen, dass die Extended Properties-Eigenschaft nicht sicher ist, und sollten es vermeiden, kritische Informationen für erweiterte Eigenschaften anzugeben. Wenn Data Shaping Service über Dienstkomponenten verwendet wird (wie z. B. bei ADO), gibt es zwei Möglichkeiten, die erweiterten Eigenschaften festzulegen:
Anmerkung Bei der PWD-Eigenschaft des Microsoft OLE DB-Providers für ODBC handelt es sich um eine providerspezifische Eigenschaft, die von Data Shaping Service und Remoting Provider nicht unterstützt wird. Dies bedeutet, dass Dienstkomponenten die PWD-Eigenschaft über die Extended Properties-Eigenschaft festlegen und diese deshalb nicht sicher ist. Es wird empfohlen, in der Verbindungszeichenfolge "PASSWORD=" anstelle von "PWD=" zu verwenden.
Öffnen eines Datensatzes über einen URL
Bei der Verwendung eines URLs zum Öffnen eines Record-Objekts müssen Sie Schrägstriche anstelle von umgekehrten Schrägstrichen verwenden. Beispielsweise funktioniert der folgende Code einwandfrei:
Dim r As New Record
r.Open "Verzeichnis", "url=http://Computer/Ordner"
Der folgende Code löst jedoch eine Fehlermeldung aus:
Dim r As New Record
r.Open "Verzeichnis", "url=http:\\Computer\Ordner"
Blockieren von Operationen
Wenn Sie adAsyncFetchNonBlocking als Option angeben, arbeitet die Open-Methode nicht asynchron, sondern wird bis zum Abschluss der Operation blockiert.
Stream-Objekt verarbeitet bestimmte Zeichensätze nicht korrekt
Einige Zeichen haben je nachdem, ob sie sich in einem Satz befinden oder nicht, unterschiedliche Größen. Dies verursacht beim Ermitteln der Länge einer Zeichenfolge Probleme für das Stream-Objekt. Davon betroffen sind die Zeichensätze ISO-2022-JP, ISO-2022-KR, HZ-GB-2312 und UTF-7.
Änderung der Fehlermeldung bezüglich des Herstellens von Verbindungen mit nicht vorhandenen UDL-Dateien
Wenn Sie versuchen, eine Verbindung mithilfe eines Pfades zu einer nicht vorhandenen UDL-Datei herzustellen, wird die Fehlermeldung "Datei nicht gefunden" angezeigt. Dies ist eine Änderung im Vergleich zu früheren ADO-Versionen, bei denen die Fehlermeldung "Provider konnte nicht gefunden werden" ausgegeben wurde.
Öffnen und Schließen eines Record-Objekts erstellt eine leere Datei
Wenn Sie mit dem OLE DB Provider für Internet Publishing eine Datei mithilfe der Open-Methode des Record-Objekts erstellen, wird eine Zwei-Byte-Datei erstellt. Das heißt, wenn Sie das Record-Objekt sofort schließen, erhalten Sie eine Datei mit einer Größe von zwei Byte.
Fehler beim OLE DB-Provider für ODBC
Wenn Sie den OLE DB-Provider für ODBC verwenden und auf eine BLOB-Spalte in einem Recordset-Objekt zugreifen, können Sie nicht unterschiedliche Methoden für den Datenzugriff verwenden. Das heißt, Sie können nicht auf den Wert eines Feldes für einen Teil der Daten mit der GetChunk-Methode zugreifen und dann mit der Value-Eigenschaft die restlichen Daten abrufen. Aus diesem Grund wird im folgenden Beispiel ein Fehler für die zweite Codezeile gemeldet:
v = rs("BlobSpalte").GetChunk(10)
Debug.Print rs("BlobSpalte").Value
Wenn Sie mit GetChunk beginnen, eine BLOB-Spalte einzulesen, müssen Sie diese Methode auch für die restlichen Daten verwenden. Die gleichzeitige Verwendung der GetChunk-Methode und der Value-Eigenschaft verursacht den Fehler -2147217887.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Dokumentation der Microsoft ADO-Erweiterungen für DDL und Sicherheit (Microsoft ADO Extensions for DDL and Security, ADOX).
Technische Informationen zu ADOX
Bekannte Probleme und Einschränkungen bei ADOX
Erforderliche/optionale Eigenschaften von Tabellen, Indizes und Spalten
Ihr Datenprovider unterstützt möglicherweise nicht alle Eigenschaften von Table-, Index- und Column-Objekten. Ein Fehler tritt auf, wenn Sie einen Wert für eine Eigenschaft festgelegt haben, die der Provider nicht unterstützt. Bei neuen Table-, Index- oder Column-Objekten tritt dieser Fehler auf, wenn das Objekt an die Auflistung angehängt wird. Bei vorhandenen Objekten tritt dieser Fehler beim Festlegen der Eigenschaft auf.
Beim Erstellen von Table-, Index- oder Column-Objekten garantiert das Vorhandensein eines entsprechenden Standardwertes für eine optionale Eigenschaft nicht, dass die Eigenschaft von Ihrem Provider unterstützt wird. Weitere Informationen dazu, welche Eigenschaften Ihr Provider unterstützt, finden Sie in der Dokumentation des Providers.
Verwenden von ADOX mit Microsoft OLE DB-Providern
Bestimmte Funktionen von ADOX werden je nach Ihrem OLE DB-Datenprovider nicht unterstützt. ADOX wird vom OLE DB-Provider für Microsoft Jet vollständig unterstützt. Die nicht unterstützten Funktionen beim Microsoft OLE DB-Provider für SQL Server, Microsoft OLE DB-Provider für ODBC bzw. beim Microsoft OLE DB-Provider für Oracle sind im Folgenden aufgeführt. ADOX wird von anderen Microsoft OLE DB-Providern nicht unterstützt.
Derzeit sind keine Probleme oder Einschränkungen bekannt.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft ADO MD-Dokumentation.
Derzeit liegen keine technischen Informationen vor.
Derzeit sind keine Probleme oder Einschränkungen bekannt.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft JRO (Microsoft Jet and Replication Objects)-Dokumentation.
Technische Informationen zu JRO
Bekannte Probleme und Einschränkungen bei JRO
Derzeit liegen keine technischen Informationen vor.
Durch Code replizierbar gestaltete Datenbanken, die nie in Microsoft Access geöffnet wurden, weisen immer lokale Projekte (Formulare, Berichte, Makros, Module) auf, und sie können nicht so geändert werden, dass das Projekt replizierbar wird: Die Systemtabelle, die diese Funktion steuert (mSysAccessObjects), ist nicht vorhanden, wenn die Datenbank nicht in Microsoft Access geöffnet wurde, bevor die Datenbank replizierbar gemacht wurde. Nachdem die Datenbank replizierbar gemacht wurde, kann der Benutzer die Replizierbarkeit des Projekts nicht mehr ändern.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft Datenverknüpfungs-API-Dokumentation.
Technische Informationen zu Microsoft Datenverknüpfung
Bekannte Probleme und Einschränkungen bei Microsoft Datenverknüpfung
Derzeit liegen keine technischen Informationen vor.
Nur eine Instanz von "PromptDataSource" zulässig
Es darf jeweils immer nur eine Instanz des Dialogfeldes Datenverknüpfungseigenschaften geöffnet sein. Der Aufruf von IDBPromptInitialize::PromptDataSource zum Erstellen eines zweiten Objekts, ohne das erste freizugeben, führt zu unvorhersehbaren Ergebnissen.
Erstellen von Remote- oder Out-of-Process-Providern wird nicht unterstützt
Mit Version 2.5 der Datenverknüpfungs-API ist es nicht möglich, Remote- oder Out-of-Process-Provider zu erstellen. Der Aufruf von IDataInitialize::CreateDBInstanceEx und ähnlichen Methoden für andere als In-Process-Provider schlägt fehl.
Share Exclusive-Flag ergibt "Share Deny Read" und "Share Deny Write"
Wenn DB_MODE_SHARE_DENY_READ und DB_MODE_SHARE_DENY_WRITE mit OR verknüpft werden, ergibt sich als Wert das Flag DB_MODE_SHARE_EXCLUSIVE. Bei Angabe von DB_MODE_SHARE_EXCLUSIVE zeigt die Datenverknüpfungs-Benutzeroberfläche Share Deny Read und Share Deny Write als aktiviert, aber Share Exclusive als nicht aktiviert an.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft OLE DB-Dokumentation.
Technische Informationen zu OLE DB
Bekannte Probleme und Einschränkungen bei OLE DB
Ignorieren der 64-Bit-Datentypunterstützung in "Oledb.h"
Ignorieren Sie in der Headerdatei Oledb.h bedingte Präprozessoranweisungen, die Unterstützung für 64-Bit-Datentypen generieren. Diese Anweisungen überprüfen den Wert _WIN64 und richten die Unterstützung für Features ein, die erst in einer zukünftigen Version verfügbar sein werden.
Derzeit sind keine Probleme oder Einschränkungen bekannt.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft OLE DB-Dienstkomponenten-Dokumentation.
Technische Informationen zu den OLE DB-Dienstkomponenten
Bekannte Probleme und Einschränkungen bei den OLE DB-Dienstkomponenten
Sitzungs-Pooling sollte nicht mit SSPROP_ENABLEFASTLOAD verwendet werden
Bei Verwendung des OLE DB-Providers für SQL Server kann mit der providerspezifischen Eigenschaft SSPROP_ENABLEFASTLOAD eine spezielle Form des Session-Objekts von OLE DB abgerufen werden, die die IRowsetFastLoad-Schnittstelle unterstützt. Bei Verwendung dieser Eigenschaft sollte jedoch das Sitzungs-Pooling nicht eingesetzt werden. Bei aktiviertem Sitzungs-Pooling kann das an den Consumer zurückgegebene Session-Objekt aus einem Pool stammen. Da die vorhandene Sitzung möglicherweise nicht mit SSPROP_ENABLEFASTLOAD erstellt wurde, wird die IRowsetFastLoad-Schnittstelle ggf. nicht unterstützt.
Derzeit sind keine Probleme oder Einschränkungen bekannt.
Zurück zum MDAC-Inhaltsverzeichnis
In den Anmerkungen zur Version von OLE DB für OLAP finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Dokumentation zu Microsoft OLE DB für OLAP.
Technische Informationen zu OLE DB für OLAP
Bekannte Probleme und Einschränkungen bei OLE DB für OLAP
Derzeit liegen keine technischen Informationen vor.
Derzeit sind keine Probleme oder Einschränkungen bekannt.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft OLE DB-Provider für ODBC-Dokumentation.
Technische Informationen zum OLE DB-Provider für ODBC
Bekannte Probleme und Einschränkungen beim OLE DB-Provider für ODBC
Derzeit liegen keine technischen Informationen vor.
"dwFlags" in "IAccessor::CreateAccessor"
Dieser Provider ignoriert dwFlags beim Aufruf von IAccessor::CreateAccessor und überprüft oder berücksichtigt die Einstellungen für DBBINDFLAGS_HTML oder andere Flags in diesem Feld nicht. Der Consumer sollte dennoch dwFlags auf 0 festlegen.
Serveroptionen werden zurückgesetzt, wenn Dienstkomponenten aktiviert werden
Das Ressourcenpooling der OLE DB-Dienstkomponenten setzt die Serveroptionen nicht zurück, wenn eine Datenquelle und eine Sitzung an den Pool zurückgegeben werden. Wenn z. B. der Befehl SET QUOTED_IDENTIFIER OFF für eine Sitzung an SQL Server gesendet wird und diese Sitzung an den Pool zurückgegeben wird, erfolgt keine Zurücksetzung der Serveroption. Deshalb wählt der Consumer möglicherweise eine aktive Verbindung im Pool aus, für die bestimmte Serveroptionen anders als beabsichtigt festgelegt sind. Wurden diese Serveroptionen, wie z. B. QUOTED_IDENTIFIER, auf andere Werte als die Standardwerte festgelegt, wird der Status für aktive Verbindungen nicht zurückgesetzt, wenn die Objekte an den Pool zurückgegeben werden. Deshalb muss der Consumer diese Optionen auf die gewünschten Werte zurücksetzen, oder die OLE DB-Dienstkomponenten müssen deaktiviert werden, damit das DBMS diese Serveroptionen steuern kann.
Für neue Verbindungen in einer verteilten Transaktion ist Verbindungs-Pooling erforderlich
Eine neue Verbindung kann innerhalb einer verteilten Transaktion nur erstellt werden, wenn das ODBC-Verbindungs-Pooling verwendet wird. ODBC trägt die Verbindung in die Transaktion ein.
Verbindungsattribute werden nicht zurückgesetzt, wenn die Verbindung beendet oder an einen Pool zurückgegeben werden
Der OLE DB-Provider für ODBC setzt nicht alle Verbindungsattribute zurück, wenn Verbindungen beendet oder an einen Pool zurückgegeben werden. Entwickler sollten die Verbindungsattribute nach dem Erhalt einer Verbindung aus einem Pool überprüfen oder zurücksetzen. Eine Aufstellung der Verbindungsattribute finden Sie in den Themen zu SQLSetConnectAttr in der ODBC Programmer's Reference. Benutzer von Microsoft SQL Server sollten außerdem in der SQL Server-Onlinedokumentation die Auflistung der SQL Server-spezifischen Verbindungsattribute lesen.
Batchaktualisierungen und mehrere Ergebnisse geben nur ein Resultset zurück
Beim Ausgeben von zwei Aktualisierungsanweisungen in einem Batch und Abfragen mehrerer Ergebnisse vom OLE DB-Provider für ODBC wird nur ein Resultset zurückgegeben. Dieser Fehler tritt auf, wenn die Batchanweisung mit SQLPrepare und SQLExecute ausgeführt wird. Wird die Batchaktualisierung mit SQLExecDirect ausgeführt, werden ordnungsgemäß zwei Resultsets zurückgegeben. Beachten Sie, dass der OLE DB-Provider für ODBC Aufrufe von SQLPrepare und SQLExecute verwendet und nur ein Resultset zurückgibt. Eine mögliche Problemumgehung ist der Einsatz des OLE DB-Providers für SQL Server, der SQLExecDirect verwendet und ordnungsgemäß ausgeführt wird.
Batchaktualisierungen verlieren Konfliktinformationen bei mehr als einer Konfliktzeile
Bei einer Batchaktualisierung für SQL Server mit dem OLE DB-Provider für ODBC gehen Konfliktinformationen verloren, wenn mehr als eine Zeile mit einem Konflikt vorhanden ist. Die erste Zeile im Batch mit einem Konflikt wird entsprechend markiert und behält ihren Bearbeitungsstatus bei. Nachfolgende Konfliktzeilen werden jedoch nicht markiert und werden auf den Bearbeitungsmodus adEditNone zurückgesetzt, ohne dass ihre Änderungen auf dem Server wirksam werden. Eine mögliche Problemumgehung ist die Verwendung des OLE DB-Providers für SQL Server (SQLOLEDB).
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft OLE DB-Provider für Oracle-Dokumentation.
Technische Informationen zum OLE DB-Provider für Oracle
Bekannte Probleme und Einschränkungen beim OLE DB Provider für Oracle
Damit der OLE DB-Provider für Oracle mit Oracle8-Clientsoftware fehlerfrei arbeitet, muss die in der Registrierung des Clients unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\* als Standard eingetragene Ociw32.dll zu Oci.dll geändert werden.
Im Folgenden werden die korrekten MTxOCI-Werte für Oracle8- und Oracle8i-Software genannt:
Schlüsselwert | Oracle8i | Oracle8 |
OracleXaLib | Oraclient8.dll | Xa80.dll |
OracleSqlLib | Orasql8.dll | Sqllib80.dll |
OracleOciLib | Oci.dll | Oci.dll |
Für Windows 2000-Systeme
Anmerkung Falls dieser Schlüssel bei der Installation nicht automatisch hinzugefügt wurde, fügen Sie OracleOciLib der Registrierung hinzu.
Für Windows NT 4.0-, Windows 95- oder Windows 98-Systeme
Anmerkung Dieser Schlüssel muss im Registrierungs-Editor manuell hinzugefügt werden. Anweisungen, wie Sie den neuesten Hotfix installieren, der den Registrierungswert OracleOciLib enthält, erhalten Sie von Microsoft Product Support Services.
"dwFlags" in "IAccessor::CreateAccessor"
Dieser Provider ignoriert dwFlags beim Aufruf von IAccessor::CreateAccessor und überprüft oder berücksichtigt die Einstellungen für DBBINDFLAGS_HTML oder andere Flags in diesem Feld nicht. Der Consumer sollte dennoch dwFlags auf 0 festlegen.
Fehler bei der Verwendung von Servern mit Oracle 7.x
Die Verwendung des OLE DB-Providers für Oracle mit einem Server mit Oracle 7.x führt bei einer äußeren Verknüpfung möglicherweise zu einem Fehler. Bei einer äußeren Verknüpfung ist für alle Spalten potenziell NULL zulässig; Oracle 7.x meldet jedoch möglicherweise, dass für eine Spalte in einer äußeren Verknüpfung NULL nicht zulässig ist, und gibt deshalb einen Fehler zurück, wenn eine Ergebnisspalte einen NULL-Wert aufweist. Eine mögliche Problemumgehung ist die Verwendung von Servern mit Oracle 8.x.
Transaktionen für SELECT-Anweisungen bei Oracle 8.x-Datenbanken erforderlich
Beim Zugriff auf eine Oracle 8.x-Datenbank mithilfe der Anweisung "SELECT...FOR UPDATE" müssen Sie zunächst eine Transaktion starten; andernfalls wird ein Fehler (ORA-01002) zurückgegeben, der besagt, dass eine nicht ordnungsgemäße Abrufreihenfolge vorliegt.
Oracle-Server konvertiert leere Zeichenfolgen in NULL-Werte
Beachten Sie beim Aktualisieren einer Oracle-Datenbank mit dem ODBC-Treiber für Oracle oder dem OLE DB-Provider für Oracle, dass Oracle leere Zeichenfolgen in NULL konvertiert. Wenn Sie die Update-Methode von ADO verwenden, wird möglicherweise die Fehlermeldung "Die zum Aktualisieren angegebene Zeile wurde nicht gefunden: Einige Werte wurden seit dem letzten Lesen ggf. geändert" (80040e38) angezeigt. Der Grund hierfür ist, dass der Oracle-Server die leere Zeichenfolge in NULL konvertiert, das ADO-Recordset-Objekt aber die leere Zeichenfolge speichert.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Dokumentation zu Microsoft OLE DB-Provider für SQL Server.
Technische Informationen zum OLE DB-Provider für SQL Server
Bekannte Probleme und Einschränkungen beim OLE DB-Provider für SQL Server
Derzeit liegen keine technischen Informationen vor.
Serveroptionen werden zurückgesetzt, wenn Dienstkomponenten aktiviert werden
Das Ressourcenpooling der OLE DB-Dienstkomponenten setzt die Serveroptionen nicht zurück, wenn eine Datenquelle und eine Sitzung an den Pool zurückgegeben werden. Wenn z. B. der Befehl SET QUOTED_IDENTIFIER OFF für eine Sitzung an SQL Server gesendet wird und diese Sitzung an den Pool zurückgegeben wird, erfolgt keine Zurücksetzung der Serveroption. Deshalb wählt der Consumer möglicherweise eine aktive Verbindung im Pool aus, für die bestimmte Serveroptionen anders als beabsichtigt festgelegt sind. Wurden diese Serveroptionen, wie z. B. QUOTED_IDENTIFIER, auf andere Werte als die Standardwerte festgelegt, wird der Status aktiver Verbindungen nicht zurückgesetzt, wenn die Objekte an den Pool zurückgegeben werden. Deshalb muss der Consumer diese Optionen auf die gewünschten Werte zurücksetzen, oder die OLE DB-Dienstkomponenten müssen deaktiviert werden, damit das DBMS diese Serveroptionen steuern kann.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Dokumentation zu OLE DB-Provider für Microsoft Jet.
Technische Informationen zum OLE DB-Provider für Microsoft Jet
Bekannte Probleme und Einschränkungen beim OLE DB-Provider für Microsoft Jet
Das Microsoft® Jet 4.0-Datenbankmodul umfasst die Aktivierung aller Schnittstellen für Unicode. Die Daten liegen nun im Unicode-Format (international) statt im ANSI-Format vor.
Die Installation des Jet 4.0-Providers verhindert die Verwendung des Jet 3.51-Providers
Durch die Installation des OLE DB-Providers für Microsoft Jet 4.0 werden mehrere Dateien ersetzt, wodurch die Verwendung des OLE DB-Providers für Microsoft Jet 3.51 verhindert wird. Beim Zugriff auf ältere MDB-Dateien können Leistungseinbußen auftreten, es sei denn, Sie konvertieren diese Dateien mithilfe von Microsoft Access 2000 in das neue Microsoft Jet 4.0-Format.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Dokumentation zu Microsoft Data Shaping Service für OLE DB.
Technische Informationen zu Data Shaping Service für OLE DB
Bekannte Probleme und Einschränkungen bei Data Shaping Service für OLE DB
Derzeit liegen keine technischen Informationen vor.
Nicht in der Dokumentation: Von Data Shaping Service unterstützte Datentypen
Es folgt eine Aufstellung der OLE DB-Datentypen, die Data Shaping Service für OLE DB in der NEW-Klausel verwenden kann. Hinweise zu den ADO-Entsprechungen finden Sie in der ADO-Dokumentation unter "DataTypeEnum".
DBTYPE_BOOL | DBTYPE_I2 |
DBTYPE_BSTR | DBTYPE_I4 |
DBTYPE_BYTES | DBTYPE_I8 |
DBTYPE_CY | DBTYPE_NUMERIC |
DBTYPE_DATE | DBTYPE_R4 |
DBTYPE_DBDATE | DBTYPE_R8 |
DBTYPE_DBTIME | DBTYPE_STR |
DBTYPE_DBTIMESTAMP | DBTYPE_UI1 |
DBTYPE_DECIMAL | DBTYPE_UI2 |
DBTYPE_ERROR | DBTYPE_UI4 |
DBTYPE_FILETIME | DBTYPE_UI8 |
DBTYPE_GUID | DBTYPE_VARNUMERIC |
DBTYPE_I1 | DBTYPE_WSTR |
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft ODBC-Dokumentation.
Technische Informationen zu ODBC
Bekannte Probleme und Einschränkungen bei ODBC
32-Bit-ODBC-Clients und -Treiber empfohlen
16-Bit-ODBC-Clients können keine Unicode-ODBC-Treiber hinzufügen, konfigurieren oder entfernen, es sei denn, der Treiber legt CONFIGDSN offen, das ANSI-Äquivalent von CONFIGDSNW. Eine mögliche Problemumgehung ist die Verwendung von 32-Bit-APIs mit Unicode-Unterstützung. Microsoft, MERANT, Simba Technologies und andere Hersteller bieten für alle wichtigen Datenbanken 32-Bit-Treiber an.
Microsoft Transaction Server-Transaktionen
Informationen zur Teilnahme oder Eintragung für eine Microsoft Transaction Server-Transaktion finden Sie in der Microsoft Transaction Server-Dokumentation. Dort finden Sie Informationen für Treiberentwickler und Anwendungsprogrammierer.
Automatische Transaktionseintragung erfordert Verbindungs-Pooling
Automatische Transaktionseintragung für ODBC ist nur bei aktiviertem Verbindungs-Pooling möglich.
Gesperrte Systeme verhindern das Erstellen von ODBC-DSNs
Bei einem gesperrten System, wie z. B. Zero Administration Windows, Windows 2000 oder Windows Terminal Server, hat der Benutzer keine Berechtigungen, in die HKLM-Registrierungsstruktur zu schreiben. Deshalb schlagen Anwendungen, die ODBC-DSNs erstellen, einschließlich Verbindungen ohne DSN, die den ODBC-Treiber für Microsoft Jet verwenden, fehl. Eine mögliche Problemumgehung ist das Erstellen der DSNs als Windows-Administrator.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft ODBC-Treiber für Oracle-Dokumentation.
Technische Informationen zum ODBC-Treiber für Oracle
Bekannte Probleme und Einschränkungen beim ODBC-Treiber für Oracle
Damit der ODBC-Treiber für Oracle mit Oracle8-Software fehlerfrei arbeitet, muss die als Standard in der Registrierung eingetragene Ociw32.dll zu Oci.dll geändert werden.
Für Windows 2000-Systeme
Anmerkung Dieser Schlüssel wird bei der Installation automatisch hinzugefügt.
Für Windows NT 4.0-, Windows 95- oder Windows 98-Systeme
Anmerkung Dieser Schlüssel muss im Registrierungs-Editor manuell hinzugefügt werden. Anweisungen, wie Sie den neuesten Hotfix installieren, der den Registrierungswert OracleOciLib enthält, erhalten Sie von Microsoft Product Support Services.
Treiber meldet Fehler oder abgeschnittene Daten
Der Treiber meldet Fehler oder abgeschnittene Daten, wenn der Installations-Assistent nicht veranlasst wird, die Spaltendefinition zu ermitteln. Der Standardwert für den ODBC 2.2-Treiber ist 0.
Zugriffsverletzung beim Aktualisieren einer statischen Tabelle
Beim Löschen einer Zeile in einer Resultsetklausel durch den ODBC-Treiber für Oracle kann eine Zugriffsverletzung auftreten. Die Ursache hierfür ist ein Fehler, der Aktualisierungen an einer statischen Tabelle zulässt.
Keine Unterstützung von Datentypen von ODBC 3.0 und höher
Der ODBC-Treiber für Oracle meldet "[Microsoft][ODBC-Treiber für Oracle]SQL-Datentyp außerhalb des zulässigen Bereichs", wenn Datentypen von ODBC 3.0 und höher über SQLGetTypeInfo abgerufen werden. Der ODBC-Treiber für Oracle unterstützt nur ODBC 2.5-Datentypen.
Clientcursormodul kann Datenbanken nicht über OLE DB-Provider für ODBC mit dem ODBC-Treiber für Oracle aktualisieren
Bei Verwendung des OLE DB-Providers für ODBC (MSDASQL) mit dem ODBC-Treiber für Oracle gibt es in dem von der IColumnsRowset-Schnittstelle zurückgegebenen Columns MetaData-Rowset nicht ausreichend Informationen, mit deren Hilfe das Clientcursormodul Aktualisierungen (UpdateBatch-Methode in ADO) ausführen kann. Eine mögliche Problemumgehung ist die Verwendung des OLE DB-Providers für Oracle (MSDAORA).
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft ODBC-Datenquellen-Administrator-Dokumentation.
Technische Informationen zum ODBC-Datenquellen-Administrator
Bekannte Probleme und Einschränkungen beim ODBC-Datenquellen-Administrator
Derzeit liegen keine technischen Informationen vor.
Schaltfläche "Visual Studio Analyzer starten"
Durch Klicken auf die Schaltfläche Visual Studio Analyzer starten auf der Registerkarte Ablaufverfolgung des ODBC-Datenquellen-Administrators wird die folgende Fehlermeldung angezeigt, falls Visual Studio Analyzer nicht installiert ist: "Die Registrierung von ODBC als eine Ereignisquelle von Visual Studio Analyzer schlug fehl."
Hilfe
Wenn Sie mit der rechten Maustaste auf statische Bezeichnungen in Dialogfeldern klicken, die über den ODBC-Datenquellen-Administrator aufgerufen werden, wird die kontextbezogene Hilfe für diese Steuerelemente nicht geöffnet. Um die kontextbezogene Hilfe für diese Steuerelemente aufzurufen, müssen Sie auf das Fragezeichen oben rechts im Dialogfeld und dann auf das betreffende Steuerelement klicken. Die Hilfe über die rechte Maustaste ist für alle Schaltflächen, Optionsschaltflächen und Kontrollkästchen aktiviert.
Zurück zum MDAC-Inhaltsverzeichnis
In diesem Abschnitt finden Sie neuste Informationen oder sonstige Informationen als Ergänzung zur Microsoft ODBC Desktop Database Drivers-Dokumentation.
Technische Informationen zu ODBC Desktop Database Drivers
Bekannte Probleme und Einschränkungen bei ODBC Desktop Database Drivers
CREATE_DB bezieht sich auf Jet 4.0-Datenbanken
Der ODBC-Treiber für Jet interpretiert CREATE_DB nun auf Jet 4.0-Datenbanken und nicht mehr auf Jet 3.x-Datenbanken bezogen. Anwendungen, die zuvor Jet 3.x-Datenbanken erstellt haben, wie z. B. Microsoft Project 98, erstellen mit diesem Schlüsselwort nun Jet 4.0-Datenbanken. Jet 4.0-Datenbanken können mit MDAC 2.1 oder höher und Microsoft Access 2000 oder höher gelesen werden. Das CREATE_DBV4-Schlüsselwort wurde hinzugefügt, um es Anwendungen zu ermöglichen, das Erstellen von Jet 4.0-Datenbanken anzugeben.
Parameter
Wegen einer Änderung im Jet 4.0-Modul werden Parameter aus Unterabfragen vor Parametern auf der obersten Ebene der Anweisung eingefügt. Die ODBC-Spezifikation besagt, dass Parameter in der Reihenfolge gebunden werden, in der sie in der SQL-Anweisung auftreten, in die sie eingefügt werden sollen. Beim Ausführen der Anweisung werden sie in dieser Reihenfolge ausgeführt. Dies war bei Jet 3.51 der Fall, aber in Jet 4.0 wurde diese Verhaltensweise geändert.
Derzeit sind keine Probleme oder Einschränkungen bekannt.
Zurück zum MDAC-Inhaltsverzeichnis
Häufige Probleme: Installieren von Instcat.sql auf dem Server
OLE DB-Provider für SQL Server
MDAC enthält Microsoft SQL Server-Clientkonnektivitätskomponenten, die ADO-, OLE DB- und ODBC-Clients den Zugriff auf SQL Server-Daten ermöglichen.
MDAC weist die folgenden SQL Server-Komponenten auf:
Die folgenden Abschnitte dieser Infodatei beschreiben die Verwendung spezifischer SQL Server-Komponenten in dieser Version von MDAC für verschiedene Versionen von SQL Server.
Probleme, die sowohl beim OLE DB-Provider für SQL Server als auch beim SQL Server ODBC-Treiber auftreten, werden in diesem Abschnitt behandelt.
Der OLE DB-Provider für SQL Server und der SQL Server ODBC-Treiber verwenden eine Reihe von gespeicherten Systemprozeduren, so genannten gespeicherten Katalogprozeduren, um Informationen vom SQL Server-Systemkatalog abzurufen. Jede Version des OLE DB-Providers für SQL Server und des ODBC-Treibers wurde für eine bestimmte Version der gespeicherten Katalogprozeduren entwickelt.
Die Datei Instcat.sql, die im Lieferumfang des OLE DB-Providers für SQL Server, Version 07.01.0690, und des SQL Server ODBC-Treibers, Version 3.70.0690, enthalten ist, enthält kleinere Aktualisierungen für die gespeicherten Katalogprozeduren, mit denen die Prozeduren auf die Versionen aktualisiert werden, die vom OLE DB-Provider für SQL Server, Version 07.01.0690, und vom SQL Server ODBC-Treiber, Version 3.70.0690, verwendet werden. Die Datei Instcat.sql, die mit dem OLE DB-Provider für SQL Server, Version 07.01.0690, und dem SQL Server ODBC-Treiber, Version 3.70.0690, geliefert wird, ist mit der im Lieferumfang von SQL Server 7.0 enthaltenen Datei Instcat.sql identisch. SQL Server 7.0-Standorte müssen die Datei Instcat.sql nicht ausführen.
Der SQL Server-Systemadministrator muss das Skript Instcat.sql zur Aktualisierung der gespeicherten Katalogprozeduren verwenden, um den einwandfreien Betrieb des Treibers sicherzustellen. Die Aktualisierung der gespeicherten Katalogprozeduren hat keine Auswirkung auf ältere SQL Server-Clients. Dies ist für alle SQL Server-Versionen von Version 4.21a bis Version 6.5 erforderlich. Für SQL Server 7.0 ist diese Aktualisierung nicht erforderlich.
Um die gespeicherten Katalogprozeduren von SQL Server 4.21a, 6.0 oder 6.5 zu aktualisieren, muss der Systemadministrator das Skript Instcat.sql mithilfe des Dienstprogramms isql ausführen (siehe folgende Anweisungen).
Bevor Änderungen an der master-Datenbank vorgenommen werden, sollte der Systemadministrator eine Sicherungskopie dieser Datenbank anfertigen. Um isql auszuführen, muss der Computer als Clientarbeitsstation für SQL Server installiert sein.
Führen Sie an der Eingabeaufforderung mithilfe des Dienstprogramms isql das Skript Instcat.sqls aus. Beispiel:
C:>ISQL /Usa /Psa_Kennwort /SServername
/iSpeicherort\Instcat.Sql
Dabei gilt Folgendes:
sa_Kennwort
ist das Kennwort des Systemadministrators.
Servername
ist der Name des Servers, auf dem SQL Server installiert ist.
Speicherort
ist der vollständige Pfad des Speicherorts von Instcat.Sql.
Das Skript Instcat.sql erzeugt viele Meldungen. Die meisten Meldungen weisen darauf hin, wie viele Zeilen von den vom Skript ausgegebenen Transact-SQL-Anweisungen betroffen waren. Die meisten Meldungen können Sie ignorieren. Sie sollten jedoch auf Meldungen achten, die auf Ausführungsfehler hinweisen. Wenn Sie Instcat.sql unter SQL Server, Version 6.0, ausführen, können Sie die Meldung ignorieren, die besagt, dass das Objekt sp_MS_upd_sysobj_category nicht vorhanden ist. Die letzte Meldung sollte darauf hinweisen, dass Instcat.sql erfolgreich ausgeführt wurde. Das Skript Instcat.sql schlägt fehl, wenn in der master-Datenbank nicht ausreichend Speicherplatz vorhanden ist, um die gespeicherten Katalogprozeduren zu speichern oder die Änderungen an den vorhandenen Prozeduren zu protokollieren.
Zurück zu Data Access Components für SQL Server-Clients
Der OLE DB-Provider für SQL Server, Version 07.01.0690, kann für den Zugriff auf SQL Server, Version 7.0 und 6.5, verwendet werden.
Da der OLE DB-Provider für SQL Server, Version 07.01.0690, im Lieferumfang von SQL Server 7.0 enthalten ist, sollten Benutzer von SQL Server 7.0 anstelle dieser Infodatei die Informationen zu diesem Treiber in der SQL Server 7.0-Dokumentation lesen. Die Onlinedokumentation für SQL Server 7.0 finden Sie im MSDN und auch auf Technet-CDs.
Benutzer von SQL Server, Version 6.5, können die MDAC SDK-Dokumentation für OLE DB-Provider für SQL Server 7.0 lesen.
Zurück zu Data Access Components für SQL Server-Clients
Dieser Abschnitt behandelt die Verwendung des SQL Server ODBC-Treibers, Version 3.70.0690, mit SQL Server 6.5 oder früher.
Da der SQL Server ODBC-Treiber, Version 3.70.0690, im Lieferumfang von SQL Server 7.0 enthalten ist, sollten Benutzer von SQL Server 7.0 anstelle dieser Infodatei die Informationen zu diesem Treiber in der SQL Server 7.0-Dokumentation lesen. Die Onlinedokumentation für SQL Server 7.0 finden Sie im MSDN und auch auf Technet-CDs.
Der SQL Server ODBC-Treiber, Version 3.70.0690, ist ein Win32 ODBC 3.51-Treiber. Er kann mit Anwendungen verwendet werden, die für ODBC 2.X- oder ODBC 3.X-APIs erstellt wurden. Dieser Treiber ist mit SQL Server, Version 4.21a oder höher, einsetzbar. Der Treiber läuft unter Windows 95, Windows 98 und Windows NT 4.0.
Ein Win32 SQL Server 7.0-Clientkonfigurationsprogramm (cliconfg.exe) wird mit dem SQL Server ODBC-Treiber, Version 3.70.0690, ebenfalls installiert. Dieses SQL Server-Clientkonfigurationsprogramm ist mit SQL Server, Version 4.21a oder höher, einsetzbar.
Da der SQL Server ODBC-Treiber, Version 3.70.0690, im Lieferumfang von SQL Server 7.0 enthalten ist, sollten Benutzer von SQL Server 7.0 anstelle dieser Infodatei die Informationen zu diesem Treiber in der SQL Server 7.0-Dokumentation lesen. Die Onlinedokumentation für SQL Server 7.0 finden Sie im MSDN und auch auf Technet-CDs.
Wenn der SQL Server ODBC-Treiber, Version 3.70.0690, mit SQL Server (Version 4.21a, 6.0 oder 6.5) verwendet wird, verhält sich der Treiber wie die älteren Treiber. Sie können die treiberspezifischen Informationen, die mit dieser Version von SQL Server geliefert werden, heranziehen. Dazu gehört Folgendes:
Die Datei Sqlsodbc.hlp, die mit dem SQL Server ODBC-Treiber, Version 3.70.0690, geliefert wird, enthält nur kontextbezogene Hilfe für den SQL Server-DSN-Konfigurations-Assistenten. Die Datei Drvssrvr.hlp aus früheren Versionen des SQL Server ODBC-Treibers enthielt treiberspezifische Informationen für ältere Versionen dieses Treibers. Die Informationen in älteren Versionen von Drvssrvr.hlp finden Sie auch im SQL Server 6.5-Handbuch Programming ODBC for Microsoft SQL Server.
Der SQL Server ODBC-Treiber verwendet treiberspezifische Parameter für verschiedene ODBC-Funktionsaufrufe. Definitionen für diese treiberspezifischen Parameter und treiberspezifische C- und C++-Programmierungsstrukturen finden Sie in der Includedatei Odbcss.h.
Der SQL Server ODBC-Treiber, Version 3.70.0690, funktioniert mit der Datei Odbcss.h, die Sie in folgenden Komponenten finden:
Das MDAC SDK ist Bestandteil der Microsoft Developer Network Professional Edition. Das SDK kann auch von der Microsoft-Website unter http://www.microsoft.com/data gedownloadet werden. Das SDK erhalten Sie zudem von Microsoft Press in Microsoft ODBC 3.0 Software Development Kit and Programmer's Reference.
Da der ODBC-Treiber, Version 3.70.0690, im Lieferumfang von SQL Server 7.0 enthalten ist, sollten Benutzer von SQL Server 7.0 die ODBC-Informationen in der SQL Server 7.0-Dokumentation lesen. Die in diesem Abschnitt dokumentierten Kompatibilitätsprobleme treten nur auf, wenn dieser Treiber mit früheren Versionen von SQL Server (4.21a, 6.0 und 6.5) ausgeführt wird.
Der SQL Server ODBC-Treiber, Version 3.70.0690, öffnet einen neuen Assistenten, wenn Datenquellen im ODBC-Administrator hinzugefügt oder konfiguriert werden oder wenn eine Anwendung SQLConfigDataSource aufruft und den Treiber auffordert, Informationen vom Benutzer anzufordern. Klicken Sie im Assistenten auf die Hilfeschaltfläche, um die Dokumentation zum Assistenten aufzurufen.
Beim SQL Server ODBC-Treiber, Version 2.65, der mit SQL Server 6.5 geliefert wurde, arbeitete SQL_COPT_SS_PERF_QUERY_INTERVAL in Sekunden und nicht wie dokumentiert in Millisekunden (siehe Knowledge Base-Artikel Q157753). Beim SQL Server ODBC-Treiber, Version 3.70.0690, arbeitet SQL_COPT_SS_PERF_QUERY_INTERVAL nun wie dokumentiert in Millisekunden.
Die folgenden Änderungen betreffen nur Anwendungen, die unter Verwendung der ODBC 3.X-API geschrieben wurden. Anwendungen, die unter Verwendung der ODBC 2.X-API geschrieben wurden, sind davon nicht betroffen. Diese Änderungen sollten in den meisten ODBC-Anwendungen keine Auswirkung auf die Resultset-Verarbeitung haben.
In früheren Versionen des SQL Server ODBC-Treibers geben benachbarte PRINT- oder RAISERROR-Anweisungen in einem Batch oder in einer gespeicherten Prozedur Meldungen gemeinsam in einem einzigen Resultset zurück. Beim SQL Server ODBC-Treiber, Version 3.70.0690, werden die Meldungen für jede SQL-Anweisung als getrennte Resultsets zurückgegeben. Sie müssen SQLMoreResults vor jeder Meldung aufrufen, die in die Meldung für die nächste SQL-Anweisung aufgenommen werden soll. Die Meldungen von einer einzigen SQL-Anweisung, wie z. B. einer DBCC-Anweisung, werden in einem einzigen Resultset zurückgegeben, und es ist nicht erforderlich, SQLMoreResults zwischen jeder Meldung aufzurufen.
In früheren Versionen des SQL Server ODBC-Treibers bewirkt ein Laufzeitfehler oder ein RAISERROR mit dem Schweregrad 11 oder höher in einem Batch oder einer gespeicherten Prozedur, dass SQLExecute, SQLExecDirect oder SQLParamData SQL_ERROR zurückgeben. Beim SQL Server ODBC-Treiber, Version 3.70.0690, gibt SQLExecute, SQLExecDirect oder SQLParamData nur SQL_ERROR zurück, wenn nach der ersten Anweisung keine weiteren Anweisungen ausgeführt werden. Werden nach der ersten Anweisung weitere Anweisungen ausgeführt (sogar eine einfache RETURN-Anweisung ohne Rückgabewert), gibt SQLExecute oder SQLExecDirect SQL_SUCCESS_WITH_INFO zurück. Nach der Verarbeitung der SQL_SUCCESS_WITH_INFO-Meldungen mithilfe von SQLGetDiagRec rufen Sie für die Positionierung im nächsten Resultset SQLMoreResults auf.
Wenn bei früheren Versionen des Treibers ein Fehler in der ersten Anweisung eines Batches oder einer gespeicherten Prozedur auftrat, war das Anweisungshandle für die Verwendung mit einer anderen SQL-Anweisung verfügbar, nachdem SQLExecute oder SQLExecDirect SQL_ERROR zurückgegeben hatten. Wenn der Treiber mit der Version 3.7 SQL_SUCCESS_WITH_INFO zurückgibt, kann die Anweisung erst eine andere SQL-Anweisung verarbeiten, wenn SQLMoreResults SQL_NO_DATA zurückgibt oder wenn alle Resultsets nach dem RAISERROR geschlossen wurden. Folgt auf die Fehlermeldung kein Resultset, ist der Aufruf von SQLCloseCursor nicht möglich. SQLFreeStmt(SQL_CLOSE) oder SQLMoreResults muss aufgerufen werden, um eine weitere SQL-Anweisung zu verarbeiten:
CREATE PROCEDURE TestPrc @Parm1 as
IF (@Parm1 IS NULL)
BEGIN
RAISERROR ('Parm1 darf nicht NULL sein', 11, 1)
RETURN
END
SELECT * FROM sysusers WHERE suid = @Parm1
GO
Führen Sie Folgendes aus:
SQLExecDirect(hstmt, "{ call TestPrc (NULL) }", SQL_NTS);
Wenn Sie eine ältere Version des SQL Server ODBC-Treibers verwenden oder wenn die Anwendung die ODBC 2.X-API verwendet, gibt SQLExecDirect SQL_ERROR zurück. Wenn SQLGetDiagRec SQL_NO_DATA oder wenn SQLError SQL_NO_DATA_FOUND zurückgegeben hat, ist das Anweisungshandle für eine weitere SQL-Anweisung verfügbar.
Wenn Sie den SQL Server ODBC-Treiber, Version 3.70.0690, in einer für die ODBC 3.X-API geschriebenen Anwendung verwenden, gibt SQLExecDirect SQL_SUCCESS_WITH_INFO zurück. Wenn SQLGetDiagRec SQL_NO_DATA zurückgegeben hat, kann das Anweisungshandle erst wieder für die Verarbeitung einer weiteren SQL-Anweisung eingesetzt werden, wenn SQLMoreResults SQL_NO_DATA zurückgibt oder SQLFreeStmt(SQL_CLOSE) aufgerufen wird.
In früheren Versionen des SQL Server ODBC-Treibers gibt SQLExecute, SQLExecDirect oder SQLParamData SQL_SUCCESS zurück, wenn eine Anwendung eine UPDATE- oder DELETE-Anweisung ausführt, die sich auf keine Zeilen auswirkt. In dieser Situation gibt der Treiber mit der Version 3.7 weiterhin SQL_SUCCESS an Anwendungen zurück, die mit der ODBC 2.X-API erstellt wurden; an Anwendungen, die mit der ODBC 3.X-API erstellt wurden, gibt er jedoch SQL_NO_DATA zurück. Wenn die ODBC 2.X-Anwendung, die SQL_SUCCESS empfängt, oder die ODBC 3.X-Anwendung, die SQL_NO_DATA empfängt, anschließend SQLRowCount aufruft, gibt SQLRowCount eine Anzahl von Null zurück.
ODBC 3.X definiert die Art und Weise, wie Ergebnisse zurückgegeben werden, deutlicher als ODBC 2.X. Frühere Versionen des SQL Server ODBC-Treibers gaben die Werte von Ausgabeparametern und Rückgabecodes zurück, wenn die ODBC 2.X-Funktionen SQLFetch oder SQLExtendedFetch für das letzte von einer gespeicherten Prozedur zurückgegebene Resultset SQL_NO_DATA meldeten. Der SQL Server ODBC-Treiber, Version 3.70.0690, zeigt beim Aufruf durch ODBC 2.X-Anwendungen weiterhin diese Verhaltensweise. Wenn der SQL Server ODBC-Treiber, Version 3.70.0690, jedoch von ODBC 3.X-Anwendungen aufgerufen wird, gibt der Treiber erst Ausgabeparameter oder Rückgabecodes zurück, wenn SQLMoreResults SQL_NO_DATA meldet.
Zurück zu Data Access Components für SQL Server-Clients
Der OLE DB-Provider für SQL Server und der SQL Server ODBC-Treiber verwenden die SQL Server-Clientnetzwerkbibliotheken für die Kommunikation mit dem Server.
Im Rahmen der Installation installiert MDAC alle neueren Netzwerkbibliotheken, so dass der OLE DB-Provider für SQL Server und der SQL Server ODBC-Treiber mit den Netzwerkbibliotheken synchronisiert sind.
Die von MDAC installierte Version des SQL Server-Clientkonfigurationsprogramms wird vom SQL Server ODBC-Treiber, Version 3.70.0690, zum Erstellen von Datenquellen verwendet.
Zurück zu Data Access Components für SQL Server-Clients
Zurück zum MDAC-Inhaltsverzeichnis
In den folgenden Abschnitten wird die Verwendung des Microsoft Visual FoxPro-ODBC-Treibers, Version 6.0a, behandelt.
Für die Installation des Visual FoxPro-ODBC-Treibers benötigen Sie Folgendes:
Wichtig Den Visual FoxPro-ODBC-Treiber gibt es nur als 32-Bit-Treiber. Windows 3.1 und Windows für Workgroups werden nicht unterstützt.
Das Betriebssystem Windows 2000 installiert nur die englische Version des Visual FoxPro-ODBC-Treibers. Ältere deutsche, französische und spanische Treiberversionen werden durch die englische Version überschrieben.
Die ursprüngliche Einstellung für SET REPROCESS wird auf 5 geändert; Visual FoxPro unternimmt damit eine begrenzte Anzahl von Versuchen, einen Datensatz zu sperren. Schlägt der Sperrversuch fehl, gibt Visual FoxPro einen Fehler zurück.
Die Visual FoxPro-Einstellungen für DELETED und NULL können nun im Dialogfeld für die Treiberkonfiguration oder über die Verbindungszeichenfolge festgelegt werden. Dabei gilt folgende Syntax:
Führen Sie zur Installation des Visual FoxPro-ODBC-Treibers Setup.exe aus.
Anmerkung Die Visual FoxPro-ODBC-Treiberinstallation aktualisiert die ODBC-Komponenten gegebenenfalls auf ODBC 3.51-Kompatibilität. Weitere Informationen zu Erweiterungen oder zur Funktionalität von ODBC 3.51 finden Sie in der Datei Odreadme.txt im Verzeichnis Msdask.
Definieren Sie nach der Installation eine Datenquelle:
Der Visual FoxPro-ODBC-Treiber wird mit zwei Hilfedateien geliefert, die sich im Verzeichnis System von Windows 95 oder Windows 98 bzw. im Verzeichnis System32 von Windows NT/Windows 2000 befinden:
Weitere Informationen zum Visual FoxPro-ODBC-Treiber finden Sie im Microsoft Data Access Components (MDAC)-SDK, das unter msdn.microsoft.com verfügbar ist. (Öffnen Sie MSDN Library Online und dann das Platform SDK, um nach dem MDAC SDK zu suchen; dieses weist einen Abschnitt für ODBC-Treiber auf.) Der Abschnitt zum Visual FoxPro-ODBC-Treiber des MDAC SDK enthält folgende Informationen:
Der Visual FoxPro-ODBC-Treiber benennt Spalten auf der Grundlage von Ausdrücken. Sie führen z. B. die folgende Anweisung aus:
SELECT MIN (customer_id) FROM customers
In diesem Fall gibt der Visual FoxPro-ODBC-Treiber min_customerid als den Namen der Spalte im Resultset zurück. Wenn Sie diesen Feldnamen selbst festlegen möchten, verwenden Sie die AS-Klausel wie im folgenden Beispiel:
SELECT MIN(customer_id) AS minimum_custid FROM customers
Zurück zum Visual FoxPro-ODBC-Treiber
Im folgenden Abschnitt werden Bereiche behandelt, die vom Visual FoxPro-ODBC-Treiber besonders unterstützt werden.
Unterstützte Versionen von FoxBase+®- und FoxPro-Tabellen. Der Visual FoxPro-ODBC-Treiber ermöglicht den Zugriff auf Tabellen im Format von Microsoft® FoxBase+®, FoxPro 1.x, FoxPro 2.x und Visual FoxPro. Außerdem können Sie mit dem Visual FoxPro-ODBC-Treiber auf Tabellen zugreifen, die sich in einem Visual FoxPro-Datenbankcontainer (DBC-Datei) befinden.
Anmerkung Der Visual FoxPro-ODBC-Treiber lässt Transaktionen nur in Tabellen innerhalb einer Visual FoxPro-Datenbank (DBC-Datei) zu, jedoch nicht in freien Tabellen.
Der Visual FoxPro-ODBC-Treiber ist ODBC Level 1-API-kompatibel und implementiert darüber hinaus mehrere Level 2-APIs. Alle unterstützten APIs wurden implementiert. Bitte melden Sie uns etwaige API-Probleme. Die MDAC SDK-Hilfedatei dokumentiert die unterstützten Funktionen und die gültigen Eingabeparameter. Visual FoxPro-SQL erweitert die SQL-Funktionen des Treibers. Weitere Informationen zur Syntax finden Sie in der Visual FoxPro-Sprachreferenz.
Unterstützung der referenziellen Integrität
Der Visual FoxPro-ODBC-Treiber unterstützt Regeln, Trigger und Standardwerte von Visual FoxPro, vorausgesetzt, sie enthalten Funktionen, die der Treiber unterstützt. Weitere Informationen dazu, welche Visual FoxPro-Sprachelemente unterstützt werden, finden Sie in der MDAC SDK-Hilfedatei.
Der Visual FoxPro-ODBC-Treiber kann Abfragen im Hintergrund verarbeiten. Sie sollten jedoch die Verwendung des Verbindungs-Poolings im Zusammenhang mit dem Visual FoxPro-ODBC-Treiber vermeiden. Deaktivieren Sie diese Funktion, wenn der Treiber von einer Multithreadanwendung aufgerufen wird. Legen Sie dazu BackGroundFetch=No in der Verbindungszeichenfolge fest, oder deaktivieren Sie das Kontrollkästchen Daten im Hintergrund abrufen im Setup-Dialogfeld. Weitere Informationen finden Sie im Hilfethema "Dialogfeld ODBC Visual FoxPro-Setup" in der Datei Drvvfp.chm oder in der MDAC SDK-Hilfedatei.
Remotesichten und parametrisierte Sichten
Bei jedem Aufruf von SQLTables( ) sind Remote- und parametrisierte Sichten aus der Liste ausgeschlossen. Lokale Sichten auf der Grundlage von parametrisierten Sichten sind nicht ausgeschlossen, führen jedoch zu Fehlermeldungen, falls sie verwendet werden. Wenn Sie allerdings SQLTables( ) mit einem eindeutigen Tabellennamen aufrufen, werden Sichten angezeigt (falls vorhanden), damit Sie überprüfen können, ob Namenskonflikte vorliegen.
Unterstützte Versionen von dBASE® IV-Tabellen
Der Visual FoxPro-ODBC-Treiber ermöglicht den Zugriff auf dBASE 4- und frühere Tabellen. Die dBASE-Dateien werden folgendermaßen unterstützt:
Vorsicht Wenn eine dBASE® v4.x- oder eine dBASE 5.x-Datei Indexdateien aufweist (MDX, NDX), aktualisiert der Visual FoxPro-ODBC-Treiber die Datei nicht ordnungsgemäß, und die Indizes sind deshalb beschädigt. Auf diese Dateien sollten Sie nur mit Schreibschutz zugreifen.
Der Treiber ist DBCS-kompatibel.
Sie können nun die Sortierreihenfolge für die Indexsortierung festlegen. Eine Aufstellung der unterstützten Sortierreihenfolgen finden Sie in der Beschreibung von SET COLLATE im Visual FoxPro-Sprachreferenzabschnitt des MDAC SDK.
Die Standardsortierreihenfolge ist Machine. Die Sortierreihenfolge ändern Sie, indem Sie entweder SET COLLATE TO Sprache mit einem Aufruf von SQLExecDirect( ) der ODBC-C-API ausführen oder SQLPrepare( ) und SQLExec( ) aufrufen (siehe ODBC-SDK-Referenzhandbuch) oder aber indem Sie unter den Treiberoptionen im Dialogfeld Datenquellenname-Setup eine andere Sortierreihenfolge auswählen.
Anmerkung Die Datei Foxpro.int wird im Systemverzeichnis installiert. Wenn Sie diese Datei löschen, funktionieren die Sortierreihenfolgen auf Computern mit der osteuropäischen Codepage nicht.
Zurück zum Visual FoxPro-ODBC-Treiber
Die Bildschirmaktualisierung wird für Regeln und Trigger nicht unterstützt.
Der Abschnitt zum Visual FoxPro-ODBC-Treiber in der MDAC SDK-Hilfedatei enthält eine Beschreibung der unterstützten Befehle und Funktionen sowie eine aktualisierte Aufstellung der nicht unterstützten Befehle und Funktionen. Alle Befehle oder Funktionen, die in dieser Hilfedatei nicht aufgeführt sind, werden nicht unterstützt.
Parametrisierte Sichten funktionieren in einem Trigger nur, wenn dem Parameter vor dem Öffnen der Sicht ein Wert zugewiesen wurde. Die interaktive Eingabe eines Parameters ist in ODBC nicht zulässig.
Der Visual FoxPro-ODBC-Treiber unterstützt Remotesichten für andere ODBC-Datenquellen nicht; lokale Sichten (nicht parametrisiert) werden jedoch vollständig unterstützt.
Wenn Sie eine Visual FoxPro-Tabelle mithilfe des Visual FoxPro-ODBC-Treibers einfügen, löschen oder aktualisieren, wird möglicherweise die Fehlermeldung "Trigger-Befehl/-Ereignis fehlgeschlagen" angezeigt. Suchen Sie nach nicht unterstützten Befehlen im Trigger.
INDEX ON wird in dieser Version nicht unterstützt.
Wenn eine Tabelle exklusiv geöffnet wird und ein anderer Benutzer mit SET EXCLUSIVE OFF auf die gleiche Tabelle zugreift, gibt der Visual FoxPro-ODBC-Treiber die Fehlermeldung "Optionswert geändert" anstelle von "Datei wird von einer anderen Person benutzt" zurück.
MSQuery meldet den Fehler "Datei kann nicht geöffnet werden", wenn eine Tabelle mit einem Feldnamen erstellt wird, der mit einer Zahl beginnt. Beispielsweise ist der Feldname "1995 Verkauf" nicht zulässig. In Visual FoxPro sind – im Gegensatz zu MSQuery – Feldnamen, die mit einer Zahl beginnen, nicht zulässig.
Probleme mit leerem Datumswert ("Empty Date Value")
Im Visual FoxPro-ODBC-Treiber ist 0 (deaktiviert) der strikte Standardwert für Empty Date Value. Der Treiber konvertiert eine ungültige Datumsangabe in den leeren Datumswert " / / ". ODBC-Clients interpretieren den leeren Datumswert des Visual FoxPro-ODBC-Treibers möglicherweise unterschiedlich. Sie sollten überprüfen, wie Ihre Anwendung diesen Wert behandelt, damit eine effektive Verwendung dieser Daten gewährleistet ist.
Unterschiede zwischen dem früheren FoxPro-ISAM-Treiber und dem Visual FoxPro-ODBC-Treiber
Der Visual FoxPro-ODBC-Treiber unterstützt keine Spaltennamen, die länger als 10 Zeichen sind oder Leerzeichen enthalten, außer die Tabelle ist in einem Datenbankcontainer (DBC) gespeichert.
Die unabhängige Auswahl von Indizes für eine bestimmte Tabelle ist nicht möglich.
Der Visual FoxPro-ODBC-Treiber speichert neu erstellte Tabellen mithilfe des Treibers im Standardverzeichnis der Anwendung, und nicht im Speicherort, auf den die Datenquelle verweist. Um sicherzustellen, dass Tabellen in einem bestimmten Verzeichnis gespeichert werden, geben Sie entsprechenden SQL-Code ein. Beispiel: "CREATE TABLE C:\MeinOrdner\meineTabelle (col1 i, col2 c(10))".
Zurück zum Visual FoxPro-ODBC-Treiber
Sollten bei der Installation des Treibers Probleme auftreten, führen Sie die folgenden Schritte aus, und wiederholen Sie die Installation:
Gehen Sie folgendermaßen vor, falls weiterhin Probleme auftreten:
Ermitteln Sie mithilfe der Registerkarte Ablaufverfolgung des Microsoft ODBC-Datenquellen-Administrators die Ursache von Problemen. Um den ODBC-Datenquellen-Administrator in Windows 2000 zu starten, öffnen Sie die Windows-Systemsteuerung. Doppelklicken Sie auf das Symbol Verwaltung und dann auf das Symbol Datenquellen (ODBC). (In älteren Versionen von Windows öffnen Sie die Systemsteuerung, und doppelklicken Sie auf 32-Bit ODBC oder ODBC, um das Dialogfeld ODBC-Datenquellen-Administrator zu öffnen.)
Wenn Sie nun den Code ausführen, werden alle C ODBC-API-Aufrufe, deren Eingabeparameter und deren Ausgabe in die Protokolldatei geschrieben. Bei der ODBC-Protokolldatei handelt es sich um ASCII-Text, den Sie in jedem standardmäßigen ASCII-Texteditor wie Microsoft Word, Editor oder WordPad anzeigen können. Es kann vorkommen, dass Sie die Ablaufverfolgungsdatei in einen Problembericht aufnehmen müssen. Da die ODBC-Ablaufverfolgungsdatei sehr umfangreich sein kann, sollten Sie nur die letzten vier oder fünf Funktionsaufrufe kopieren und in ein eigenes Dokument einfügen, bevor Sie den Problembericht versenden.
Zurück zum Visual FoxPro-ODBC-Treiber
Zurück zum MDAC-Inhaltsverzeichnis
Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URLs und anderer Verweise auf Internetwebsites, können ohne vorherige Ankündigung geändert werden und werden nur zu Informationszwecken zur Verfügung gestellt. Das vollständige Risiko der Nutzung oder der Ergebnisse der Nutzung dieses Dokumentes liegt bei dem Nutzer, und Microsoft Corporation übernimmt für dieses Dokument keine Gewährleistungen, weder ausdrücklich noch konkludent. Die in den Beispielen verwendeten Firmen, sonstigen Namen und Daten sind frei erfunden, soweit nichts anderes angegeben ist. Jede Ähnlichkeit mit tatsächlichen Firmen, Namen oder Daten ist rein zufällig. Die Benutzer/innen sind verpflichtet, sich an alle anwendbaren Urheberrechtsgesetze zu halten. Unabhängig von der Anwendbarkeit der entsprechenden Urheberrechtsgesetze darf ohne ausdrückliche schriftliche Erlaubnis der Microsoft Corporation kein Teil dieses Dokuments für irgendwelche Zwecke vervielfältigt oder in einem Datenempfangssystem gespeichert oder darin eingelesen werden, unabhängig davon, auf welche Art und Weise oder mit welchen Mitteln (elektronisch, mechanisch, durch Fotokopieren, Aufzeichnen usw.) dies geschieht.
Es ist möglich, dass Microsoft Rechte an Patenten bzw.angemeldeten Patenten, an Marken, Urheberrechten oder sonstigem geistigen Eigentum besitzt, die sich auf den fachlichen Inhalt dieses Dokuments beziehen. Das Bereitstellen dieses Dokuments gibt Ihnen jedoch keinen Anspruch auf diese Patente, Marken, Urheberrechte oder auf sonstiges geistiges Eigentum, es sei denn, dies wird ausdrücklich in den schriftlichen Lizenzverträgen von Microsoft eingeräumt.
© 1991-1999 Microsoft Corporation. Alle Rechte vorbehalten.
Microsoft, MS-DOS, Windows, Windows NT, ActiveX, Visual Studio, Visual C++, Visual FoxPro und MSDN sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern.
Die in diesem Dokument aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.