Update: SQL_BIGINT in 2.x ODBC-Treiber wird SQL_C_SBIGINT 3.0 Datentyp zugeordnet

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 277033 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Microsoft OLEDB-Provider für ODBC-Treiber (MSDASQL) ist einen ODBC-Treiber, der ODBC 2.x kompatibel ist, und der Treiber einen SQL_BIGINT-Datentyp (-5 meldet), wählt der Anbieter für ODBC (MSDASQL) C Datentyp SQL_C_SBIGINT für die Verwendung in SQLBindCol() ODBC-API-Funktion. Jedoch da SQL_C_SBIGINT einen ODBC 3.x-Datentyp ist, generiert dies den folgenden Fehler aus der ODBC-Treibermanager:
S1003 [Microsoft] [ODBC Driver Manager] Treiber dieser Parameter nicht unterstützt
Dieses Problem tritt in allen Versionen von ODBC-Provider (msdasql.dll) Version 2.50.4403.6 (MDAC 2.5 RTM) und höher.

Ursache

Wenn der ODBC-Provider zuerst lädt und verwendet ein ODBC-Treiber, der Treiber ist unterstützt abgefragt, um welche Version von ODBC, 2.x oder 3.x. Diese Informationen werden in der Verbindungsklasse Handle gespeichert.

Der Anbieter behält interne Strukturen dazu die Datentyp-Zuordnung zwischen SQL-Datentypen (z. B. SQL_CHAR) und C-Datentypen (z. B. SQL_C_CHAR). Der Anbieter wird die Version nicht überprüft, dass Sie vor dem Ausführen der SQL--C Datentyp Zuordnung für den ODBC-Treiber gespeichert und den SQL-Datentyp der SQL_BIGINT einfach einen ODBC 3.x-Datentyp des SQL_C_SBIGINT zugeordnet. Dieser Datentyp wird von einem ODBC-2.x-Treiber nicht erkannt, und führt der ODBC-Treibermanager um Fehler zu erzeugen.

Lösung

Installieren Sie das neueste Servicepack für Microsoft MDAC 2.5, um dieses Problem zu beheben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
293312Wie Sie das neueste MDAC 2.5 Servicepack erhalten
Installieren Sie das neueste Servicepack für Microsoft Data Access Components 2.6, um dieses Problem zu beheben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
300635Wie Sie das neueste MDAC 2.6 Servicepack erhalten

Hotfix

Die MDAC 2.5 und MDAC 2.6 Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.
MDAC 2.5 Englisch
   Date         Version            Size    File name
   ------------------------------------------------------
   01/31/2001   2.53.6131.0     303,376    Msdasql.dll
   01/31/2001   2.53.6131.0      16,384    Msdasqlr.dll
   01/31/2001   2.53.6131.0      78,096    Msdatl2.dll
   01/31/2001   2.53.6131.0      53,520    Msdatt.dll
   03/14/2001                   473,280    Q277033_W2K_SP3_x86_en.EXE
				
MDAC 2.5 Französisch
   Date         Version            Size     File name
   -------------------------------------------------------
   01/31/2001   2.53.6131.0     303,376     Msdasql.dll
   02/14/2001   2.53.6131.0      16,384     Msdasqlr.dll
   01/31/2001   2.53.6131.0      78,096     Msdatl2.dll
   01/31/2001   2.53.6131.0      53,520     Msdatt.dll
   02/28/2001                   484,408     Q277033_w2k_sp3_x86_FR.EXE
				
MDAC 2.6 Englisch
   Date         Version            Size      File name
   -------------------------------------------------------
   01/31/2001   2.61.7131.0     311,568      Msdasql.dll
   01/31/2001   2.61.7131.0      16,384      Msdasqlr.dll
   01/31/2001   2.61.7131.0      94,480      Msdatl3.dll
   01/31/2001   2.61.7131.0      24,848      Msdatt.dll
   03/05/2001                   269,312      Q277033_MDAC26_SP1_x86_en.exe
				
MDAC 2.6 Französisch
   Date         Version            Size      File name
   --------------------------------------------------------
   01/31/2001   2.61.7131.0     311,568      Msdasql.dll
   02/14/2001   2.61.7131.0      16,384      Msdasqlr.dll
   01/31/2001   2.61.7131.0      94,480      Msdatl3.dll
   01/31/2001   2.61.7131.0      24,848      Msdatt.dll
   03/09/2001                   271,360      Q277033_MDAC26_SP1_x86_fr.exe
				

Windows 2000

Installieren Sie das neueste Service Pack für Windows 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
260910Wie Sie das neueste Service Pack für Windows 2000 erhalten
Die Windows 2000 Service Pack 3-Version dieses Hotfixes weist, die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.
Date       Time       Version      Size    File name
--------------------------------------------------------
2/28/2001  12:24p    2.53.6131.0  303,376  Msdasql.dll
2/28/2001  12:24p    2.53.6131.0   16,384  Msdasqlr.dll
2/28/2001  12:24p    2.53.6131.0   78,096  Msdatl2.dll
2/28/2001  12:24p    2.53.6131.0   53,520  Msdatt.dll
				

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind. Dieses Problem wurde erstmals im Microsoft MDAC 2.5 Service Pack 3. Dieses Problem wurde erstmals im Microsoft Data Access Components 2.6 Service Pack 1.

Windows 2000

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind. Dieses Problem wurde erstmals in Windows 2000 Service Pack 3 behoben.

Weitere Informationen

In OLE DB sind SQL_BIGINT Datentypen DBTYPE_I8, die einer signierten 8-Byte-Ganzzahl. Allerdings ist die Standardzuordnung für SQL_BIGINT in einem 2.x-Treiber pro ODBC 2.x Spezifikationen, SQL_C_CHAR.

Der Anbieter für ODBC (MSDASQL) wurde geändert, sodass SQL_BIGINT Datentypen jetzt intern SQL_C_CHAR zugeordnet werden, wenn einen ODBC-2.x-Treiber verwenden und dann in DBTYPE_I8 bei Anforderung von OLE DB konvertiert wurde.

Untersuchen Sie eine ODBC-Ablaufverfolgung, wenn ein SQL_BIGINT Datentyp verwendet wird, ist, um Wenn ein ODBC-Treiber dieses Problem auftritt, ist zu ermitteln. Nachfolgend finden Sie ein Beispiel für die Datentyp-Attribute, die den Fehler generiert.
inetinfo        924-1bc	EXIT  SQLDescribeColW  with return code 0 (SQL_SUCCESS)
		HSTMT               01862458
		UWORD                        1 
		WCHAR *             0x00000000 
		SWORD                        0 
		SWORD *             0x00000000
		SWORD *             0x0277ECB4 (-5)
		SQLLEN *            0x0277ECC0 (19)
		SWORD *             0x0277ECD0 (0)
		SWORD *             0x0277ECAA (0)
				
zeigt den SQL-Datentyp (sechstes Argument) mit einer Spaltengröße als SQL_BIGINT (-5) gemeldet wird (7. Argument) von 19.

Microsoft ODBC-Treiber (z. B. den Microsoft SQL Server ODBC-Treiber) sollten keine dieser Fehler generieren, da Sie hauptsächlich ODBC 3.x kompatibel sind. Microsoft ODBC-Treiber für Oracle ODBC 2.x kompatibel ist, aber den SQL_BIGINT Datentyp wird nicht unterstützt. Dieses Problem können Treiber von Drittanbietern, die ODBC 2.x kompatibel sind und auch unterstützen SQL_BIGINT auftreten.

Informationsquellen

Dieses Update enthält auch eine Lösung für das Problem, das im folgenden Artikel der Microsoft Knowledge Base beschrieben ist:
274604MSDASQL-Anbieter verarbeitet nicht richtig negativ skalierte SQL_NUMERIC_STRUCT Werte

Eigenschaften

Artikel-ID: 277033 - Geändert am: Sonntag, 23. Februar 2014 - Version: 5.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows 2000 Server
  • Microsoft OLE DB Provider for ODBC 2.0
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.6
  • Microsoft ActiveX Data Objects 2.6
  • Microsoft ActiveX Data Objects 2.5
Keywords: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kbmdac260sp1fix kbwin2000sp3fix KB277033 KbMtde
Maschinell ü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: 277033
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.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com