Makale numarası: 214854 - Son Gözden Geçirme: 05 Aralık 2003 Cuma - Gözden geçirme: 4.1

BILGI: Geliştirilmiş ODBC VeriTürü eşlemeler olan Jet 4.0

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Microsoft Data Access Components (MDAC) sürüm 2.1, Microsoft Jet 4.0 veritabanı altyapısı yükler. Microsoft Jet veritabanı altyapısı, Microsoft Access ODBC sürücüsü, Microsoft Jet OLE DB sağlayıcısı ve Microsoft Data Access Objects (DAO) ile Microsoft Access biçiminde veritabanlarının yanı sıra çeşitli Jet ISAM ve ODBC veri kaynaklarına erişim sağlamak için kullanılır.

Örneğin, Microsoft Jet aşağıdaki yöntemlerden birini kullanarak erişim sağlamak için ActiveX Data Objects (ADO), uzak veri nesneleri (RDO) veya veri erişim nesneleri (DAO) kullanabilirsiniz:

   ADO -> OLE DB -> Jet OLE DB Provider -> Jet 
   ADO -> OLE DB -> MSDASQL -> ODBC -> Access ODBC Driver -> Jet
   DAO -> Jet
   RDO -> ODBC -> Access ODBC Driver -> Jet
				

Not: "MSDASQL'I" yukarıdaki Microsoft ODBC Provider for OLE DB; bir OLE DB, herhangi bir ODBC sürücüsü konuşabilir (ve böylece herhangi bir ODBC sürücüsü için anlaşmak ADO izin ver) Provider ise negatiftir.

Microsoft Jet kendisini aşağıdaki veri kaynaklarına erişim sağlar:

   Jet -> ODBC -> Non-ODBC Desktop Driver -> Any non-Jet data source
   Jet -> Jet ISAM Driver -> Jet ISAM data source
   Jet -> Microsoft Access database
				

Not: Microsoft Jet veri kaynağına erişmek için dahili olarak kullandığı Microsoft ODBC sürücülerinin biri bir "ODBC Masaüstü Sürücü" olur. Herhangi bir masaüstü ODBC sürücülerini Jet tarafından desteklenmiyor. Örneğin, Microsoft Excel ODBC sürücüsü kullanan Jet desteklenmiyor. Jet, Microsoft Excel ISAM sürücüsü, Excel ISAM sürücüsü bunun yerine bu durumda kullanılabilir kullanarak desteklemiyor. ODBC sürücüsü sürücü dosya adını sürücüler</a0> bölümündeki <a1>ODBC Yöneticisi</a1> denetim masasında incelenerek bir ODBC Masaüstü sürücü olup olmadığını doğrulayabilirsiniz. Sürücü dosyası adı Odbcjt32.dll, sürücünün bir ODBC Masaüstü Sürücü çalışıyor ve Jet ODBC ile birlikte kullanılması desteklenmez.

Microsoft Jet 4.0 için geliştirilmiş bir Jet veri türü eşleştirme yerine Microsoft Jet 3.5 veritabanı altyapısı ODBC veri türüne kümesi sağlar. Örneğin, <a2>Jet 4.0 eşlemeler SQL_DECIMAL</a2> ve <a4>Yeni bir Jet 4.0 veri SQL_NUMERIC türü alanları için bir daha yakın eşlemesi gerçek bir ODBC veri türüne sağlayan bir ondalık türü çağrıldı. Tam bir sayısal veri Jet 4.0 ondalık veri türü olan değerlerin (ölçeklendirilmiş bir tamsayı olarak da adlandırılır) türü (10 ^ 28)-(10^28) ile -1. Ondalık veri türü ile duyarlık ve ölçeği (1.0)'den (28,28) kadar alanlarla tanımlayabilirsiniz. Jet 3.5 SQL_DECIMAL ve SQL_NUMERIC alanlara bağlı olarak duyarlık ve ölçek, belirli durumlarda bir olmayan tam (kayan nokta) eşleme sonuçlarında sayısal Jet veri türü, double gibi ODBC alanının en yakın Jet sayısal veri türü eşleştirir.

Daha fazla bilgi

Microsoft Jet veritabanı alt yapısı, veri türleri için bir ODBC tablosunun eşleştiren önce SQLColumns ODBC veri türü, duyarlık ve ölçeği tablosundaki her sütun için hakkında bilgi toplamak için ODBC API işlevini çağırır. Bu ODBC tür bilgileri kullanarak, Jet, uygun olan Jet veri türü olan her bir ODBC veri türü ile eşleşir. Bu makalede, Jet 3.5 ve Jet 4.0 tarafından kullanılan Jet veri türü eşlemeler ODBC veri türüne özetler.

Not: Jet veri türü LongBinary "Ole nesnesi" Microsoft Access Tablo Tasarımcısı kullanıcı arabirimindeki olarak listelenir.

ODBC Jet veri türü eşlemeler

ODBC SQL Type     Precision  Scale Jet 3.5 Type Jet 40 Type
-----------------------------------------------------------
SQL_BIT           N/A        N/A   Boolean      Boolean
SQL_TINYINT       N/A        N/A   Byte*        Byte*
SQL_TINYINT       N/A        N/A   Integer*     Integer*
SQL_SMALLINT      N/A        N/A   Integer      Integer
SQL_INTEGER       N/A        N/A   Long         Long
SQL_REAL          N/A        N/A   Single       Single
SQL_FLOAT         N/A        N/A   Double       Double
SQL_DOUBLE        N/A        N/A   Double       Double
SQL_DECIMAL       0 To 4     0     Integer      Decimal
SQL_DECIMAL       5 To 9     0     Long         Decimal
SQL_DECIMAL       10 to 15   0     Double       Decimal
SQL_DECIMAL       <=15       >0    Double       Decimal
SQL_DECIMAL       16 To 28   N/A   Text         Decimal
SQL_DECIMAL       > 28       N/A   Text         Text
SQL_NUMERIC       0 To 4     0     Integer      Decimal
SQL_NUMERIC       5 To 9     0     Long         Decimal
SQL_NUMERIC       10 to 15   0     Double       Decimal
SQL_NUMERIC       <=15       >0    Double       Decimal
SQL_NUMERIC       16 To 28   N/A   Text         Decimal
SQL_NUMERIC       > 28       N/A   Text         Text
SQL_CHAR          <= 255     N/A   Text         Text
SQL_CHAR          > 255      N/A   Memo         Memo
SQL_VARCHAR       <= 255     N/A   Text         Text
SQL_VARCHAR       > 255      N/A   Memo         Memo
SQL_LONGVARCHAR   N/A        N/A   Memo         Memo
SQL_WCHAR         <= 255     N/A   Unsupported  Text
SQL_WCHAR         > 255      N/A   Unsupported  Memo
SQL_WVARCHAR      <= 255     N/A   Unsupported  Text
SQL_WVARCHAR      > 255      N/A   Unsupported  Memo
SQL_WLONGVARCHAR  N/A        N/A   Unsupported  Memo
SQL_DATE          N/A        N/A   DateTime     DateTime
SQL_TIME          N/A        N/A   DateTime     DateTime
SQL_TIMESTAMP     N/A        N/A   DateTime     DateTime
SQL_BINARY        <=255      N/A   Binary       Binary
SQL_BINARY        256 To 510 N/A   LongBinary   Binary
SQL_BINARY        > 510      N/A   LongBinary   LongBinary
SQL_VARBINARY     <=255      N/A   Binary       Binary
SQL_VARBINARY     256 To 510 N/A   LongBinary   Binary
SQL_VARBINARY     > 510      N/A   LongBinary   LongBinary
SQL_LONGVARBINARY N/A        N/A   LongBinary   LongBinary
SQL_GUID          N/A        N/A   Text         Guid

* An unsigned SQL_TINYINT maps to a Jet Byte, a signed SQL_TINYINT
  maps to an Jet Integer. 
				

SQL Server için özel için Jet ODBC veri türü eşlemeler

Microsoft Jet için Microsoft SQL Server ODBC sürücüsü konuşurken, aşağıdaki ek veri türü eşleştirmeleri'ni oluşur:
ODBC SQL Type     Precision  Scale Jet 3.5 Type Jet 40 Type
-----------------------------------------------------------
SQL_DECIMAL       10         4     Currency     Currency

SQL_DECIMAL       19         4     Currency     Currency
SQL_NUMERIC       10         4     Currency     Currency
SQL_NUMERIC       19         4     Currency     Currency
				

Veri türü eşlemeler doğrulanması için kod

Aşağıdaki örnek kodu, yukarıdaki tablolar, eşlemeler çoğunu doğrulamak için kullanılabilir. Jet 3.5 ve Jet 4.0 veri türü eşlemeleri, sırasıyla doğrulamak için DAO 3.5 ve DAO 3.6 (Office 2000 ile alınan) kullanarak kod çalıştırın.

Not: Bir Microsoft SQL Server 7.0 veritabanı sunucusunun kod gerektirir; bu, farklı bir bilgisayara SQL Server veritabanı olması durumunda, bağlantı dizesini ayarlamanız gerekir (the SERVER=(Local) değiştirme; bu SUNUCU için simge sunucusu adı; =).
   Option Explicit

   ' Various constant strings.
   Const strConnect = "ODBC;Driver=SQL Server;SERVER=(Local);" & _
      "DATABASE=Pubs;UID=sa;PWD=;"
   Const strSelectSQL = "select * from tmpAllTypes"
   Const strDropTableSQL = "drop table tmpAllTypes"
   ' Outputs a listing of ODBC -> Jet Data Type mappings using a
   ' SQL Server 7.0 table as the data source.
   Sub ODBCJetMapTest()
      Dim eng As New DAO.DBEngine
      Dim qd As DAO.QueryDef
      Dim db As DAO.Database
      Dim rs As DAO.Recordset
      Dim f As DAO.Field
      Dim strSQL As String

      ' Verify DAO version used.
      ' Reference "Microsoft DAO 3.51 Object Library" to see 
      ' Jet 3.5 mappings or "Microsoft DAO 3.6 Object Library"
      ' to view Jet 4.0 ODBC mappings.
      Debug.Print "ODBCJetMapTest is using DAO version " & _
         eng.Version & "."

      ' Open SQL Server database connection.
      Set db = eng.OpenDatabase("", False, False, strConnect)

      ' Verify SQL Server version.
      Set qd = db.CreateQueryDef("")
      qd.Connect = strConnect
      qd.sql = "exec sp_server_info 500"
      Set rs = qd.OpenRecordset()
      Debug.Print "SQL Server version is " & _
         rs.Fields("attribute_value") & _
         " (version 7.X or greater required)."
      rs.Close

      ' Drop and re-create test table.
      On Error Resume Next
      db.Execute strDropTableSQL, dbSQLPassThrough
      On Error GoTo 0

      ' Build our create table SQL.
      strSQL = "CREATE TABLE tmpAllTypes("

      ' Common numeric mappings.
      AddField strSQL, "SQL_BIT", "bit", Empty
      AddField strSQL, "SQL_TINYINT", "tinyint", Empty
      AddField strSQL, "SQL_SMALLINT", "smallint", Empty
      AddField strSQL, "SQL_INTEGER", "int", Empty
      AddField strSQL, "SQL_REAL", "real", Empty
      AddField strSQL, "SQL_FLOAT", "float", Empty

      ' Decimal mappings.
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(4, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(5, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(9, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(10, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(15, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(16, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(28, 0)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(4, 1)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(5, 1)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(9, 1)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(10, 1)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(15, 1)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(16, 1)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(28, 1)

      ' SQL Server specific mappings -> Currency.
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(10, 4)
      AddField strSQL, "SQL_DECIMAL", "decimal", Array(19, 4)

      ' Numeric mappings.
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(4, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(5, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(9, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(10, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(15, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(16, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(28, 0)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(4, 1)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(5, 1)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(9, 1)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(10, 1)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(15, 1)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(16, 1)
      AddField strSQL, "SQL_NUMERIC", "numeric", Array(28, 1)

      ' Character mappings.
      AddField strSQL, "SQL_CHAR", "char", Array(255)
      AddField strSQL, "SQL_CHAR", "char", Array(256)
      AddField strSQL, "SQL_VARCHAR", "varchar", Array(255)
      AddField strSQL, "SQL_VARCHAR", "varchar", Array(256)
      AddField strSQL, "SQL_WCHAR", "nchar", Array(255)
      AddField strSQL, "SQL_WCHAR", "nchar", Array(256)
      AddField strSQL, "SQL_WVARCHAR", "nvarchar", Array(255)
      AddField strSQL, "SQL_WVARCHAR", "nvarchar", Array(256)

      ' Binary mappings.
      AddField strSQL, "SQL_BINARY", "binary", Array(255)
      AddField strSQL, "SQL_BINARY", "binary", Array(256)
      AddField strSQL, "SQL_BINARY", "binary", Array(510)
      AddField strSQL, "SQL_BINARY", "binary", Array(511)
      AddField strSQL, "SQL_LONGVARBINARY", "image", Empty

      ' Date mappings.
      AddField strSQL, "SQL_TIMESTAMP", "datetime", Empty
      
      ' Specialized mappings.
      AddField strSQL, "SQL_GUID", "uniqueidentifier", Empty, ")"

      ' Create table.
      db.Execute strSQL, dbSQLPassThrough

      ' Open recordset on table and dump out ODBC -> Jet mappings.
      Set rs = db.OpenRecordset(strSelectSQL, dbOpenForwardOnly, _
         dbReadOnly, dbReadOnly)
      For Each f In rs.Fields
         Debug.Print f.Name & " maps to " & GetJetTypeString(f.Type) & "."
      Next f
      rs.Close
      On Error Resume Next
      db.Execute strDropTableSQL, dbSQLPassThrough
      On Error GoTo 0
      db.Close

   End Sub
   ' Function to return string constant for Jet Type.
   Function GetJetTypeString(lngDataTypeEnum As Long) As String
      Dim strReturn As String
      strReturn = "UNKNOWN"
      Select Case lngDataTypeEnum
         Case dbBigInt: strReturn = "dbBigInt"
         Case dbBinary: strReturn = "dbBinary"
         Case dbBoolean: strReturn = "dbBoolean"
         Case dbByte: strReturn = "dbByte"
         Case dbChar: strReturn = "dbChar"
         Case dbCurrency: strReturn = "dbCurrency"
         Case dbDate: strReturn = "dbDate"
         Case dbDecimal: strReturn = "dbDecimal"
         Case dbDouble: strReturn = "dbDouble"
         Case dbFloat: strReturn = "dbFloat"
         Case dbGUID: strReturn = "dbGUID"
         Case dbInteger: strReturn = "dbInteger"
         Case dbLong: strReturn = "dbLong"
         Case dbLongBinary: strReturn = "dbLongBinary"
         Case dbMemo: strReturn = "dbMemo"
         Case dbNumeric: strReturn = "dbNumeric"
         Case dbSingle: strReturn = "dbSingle"
         Case dbText: strReturn = "dbText"
         Case dbTime: strReturn = "dbTime"
         Case dbTimeStamp: strReturn = "dbTimeStamp"
         Case dbVarBinary: strReturn = "dbVarBinary"
      End Select
      GetJetTypeString = strReturn
   End Function
   ' Function to append a SQL token to a SQL string.
   Sub AddField(sql As String, FieldName As String, SQLType As String, _
   PS As Variant, Optional Terminator As String = ",")
      If IsEmpty(PS) Then
         sql = sql & FieldName & " " & SQLType
      Else
         sql = sql & FieldName & "_" & Format(PS(0), "00")
         If UBound(PS) = 0 Then
            sql = sql & " " & SQLType
            sql = sql & "(" & PS(0) & ")"
         Else
            sql = sql & "_" & Format(PS(1), "00") & " " & SQLType
            sql = sql & "(" & PS(0) & "," & PS(1) & ")"
         End If
      End If
      sql = sql & Terminator
   End Sub
				

Referanslar

ODBC ve Jet veri türü eşleştirme hakkında daha fazla bilgi için bkz: Bölüm 9 "Developing istemci/sunucu uygulaması" Microsoft Jet veritabanı Programmer's Guide, Second Edition'ın.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft OLE DB Provider for Jet 4.0
Anahtar Kelimeler: 
kbmt kbdatabase kbinfo kbjet kbprovider KB214854 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:214854  (http://support.microsoft.com/kb/214854/en-us/ )