Makale numarası: 167225 - Son Gözden Geçirme: 02 Mart 2005 Çarşamba - Gözden geçirme: 1.3

RDO kullanarak bir Oracle veritabanı Access nasıl kullanılır

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

Visual Basic 5.0 ve daha yüksek Enterprise edition, bir DSN-less bağlantı üzerinden bir Oracle veritabanına, saklı yordam parametreleri kullanarak yürütme yetkiniz vardır ve dönüş değerleri, saklı yordam alın. Bu makaledeki örnekte, bu işlevlerin tümü gösterilmiştir.

Daha fazla bilgi

Bu makaledeki örnek bir DSN-less bağlantı, bir Oracle veritabanı oluşturur ve bir saklı yordam çalıştırılır basit bir Visual Basic projesinin ' dir. Oracle için Oracle ve Microsoft ODBC sürücüsü ile çalışırken, Microsoft SQL Server ile çalışma değerinden farklı bazı ayarları vardır. Farklı bir ODBC sürücüsü kullandığınızdan, bu farklar ortaya çıkar.

Visual Basic 5.0 ve sonraki Enterprise edition, Oracle için RDO 2.0 ve Microsoft ODBC sürücüsü içerir. Bunların her ikisi de bu makaledeki örnek proje çalışması için yüklü olması gerekir.

Not: Oracle The ODBC sürücüsünden (ve dönüş değerleri bağlama saklı yordamlar, arama dahil) RDO 2.0 özellik kümesinin tümü desteklemiyor.

Aşağıdaki örnek, bir Oracle 7.3 veritabanında bir SQL ile oluşturulmuş * NET 2.3 bağlantı. Aşağıdaki kodu (saklı yordamın dahil) tüm ile Oracle 7.2 düzgün çalışmalıdır. Ancak, Microsoft ODBC Driver for Oracle Yardım dosyası, yalnızca SQL desteklediğini belirten * NET 2.3

Oracle veritabanı oluşturulması gereken iki nesne; bir tablo (rdooracle) ve bir saklı yordam (rdoinsert) vardır. Bu nesneleri oluşturmak için veri tanımlama dili (DDL) kodları şunlardır:
  • Bu yalnızca iki sütunlu bir tablo ile birincil anahtar olarak ayarlamak ilk sütun, RDOORACLE::
          CREATE TABLE rdooracle (
                    item_number    NUMBER(3) PRIMARY KEY,
                    depot_number   NUMBER(3));
    					
  • RDOINSERT: Bu yordam, tek bir sayısal giriş parametresi kabul eder ve bir tek sayısal bir çıktı parametresi. Giriş parametresi ilk giriş bir deyim tarafından kullanılan sonra 2 tarafından ayrılmış ve çıkış parametresi ayarlayın:
          CREATE OR REPLACE PROCEDURE rdoinsert
             (insnum IN NUMBER, outnum OUT NUMBER)
          IS
          BEGIN
          INSERT INTO rdooracle
             (Item_Number, Depot_Number)
          VALUES
             (insnum, 16);
          outnum := insnum/2;
          END;
    					
Not:, parametreleri için çıkış yordamlar ve olmayan işlevler Oracle ve RDO yer tutucu parametreleri ile çalışırken kullanmanız gerekir.

Yukarıdaki komut, SQL çalıştırılabilir * artı ya da içinde Visual veritabanı Araçları eklenti, Visual Basic 5.0 Enterprise edition. Bu nesneler oluşturduktan sonra bunları kullanan bir Visual Basic projesi oluşturabilirsiniz.

Adım adım örnek

Bu örnek proje, RDOINSERT bağlaması parametresi saklı yordamını göndermek ve çıkış parametresi, bu yordamdan sonra geri dönmek için basit bir form kullanır. Projeyi oluşturmak için adımları aşağıda verilmektedir:
  1. Yeni bir proje, Visual Basic 5.0 Enterprise sürümünde açın. Varsayılan olarak, Form1 oluşturulur.
  2. Formda <a1>Yerleştir</a1> aşağıdakileri denetler:
          Control     Name     Text/Caption
          ---------------------------------
          Button      cmdCheck  Check
          Button      cmdSend   Send
          Text Box    txtInput
          Label       lblInput  Input:
    					
  3. Araçlar menüsünden Seçenekler öğesini seçin. Varsayılan Tam Modül Görünümü</a1> seçeneğini tıklatın ve sonra Tamam ' ı tıklatın. Bu, tüm bu proje kodunu görüntülemek izin verir.
  4. Aşağıdaki kodu kodu penceresine yapıştırın:
          Option Explicit
          Dim Cn As rdoConnection
          Dim En As rdoEnvironment
          Dim CPw As rdoQuery
          Dim Rs As rdoResultset
          Dim Conn As String
          Dim QSQL As String
          Dim Response As String
          Dim Prompt As String
    
          Private Sub cmdCheck_Click()
    
              QSQL = "Select Item_Number, Depot_Number From rdooracle Where " _
              & "item_number =" & txtInput.Text
              Set Rs = Cn.OpenResultset(QSQL, rdOpenStatic, , rdExecDirect)
    
              Prompt = "Item_Number = " & Rs(0) & ".  Depot_Number = " _
              & Rs(1) & "."
    
              Response = MsgBox(Prompt, , "Query Results")
    
              Rs.Close
    
          End Sub
    
          Private Sub cmdSend_Click()
    
              CPw(0) = Val(txtInput.Text)
              CPw.Execute
    
              Prompt = "Return value from stored procedure is " & CPw(1) & "."
              Response = MsgBox(Prompt, , "Stored Procedure Result")
    
          End Sub
    
          Private Sub Form_Load()
    
              Conn = "UID=;PWD=;driver={Microsoft ODBC Driver for Oracle};" _
                   & "CONNECTSTRING=MyOracle;"
    
              Set En = rdoEnvironments(0)
              Set Cn = En.OpenConnection("", rdDriverPrompt, False, Conn)
              QSQL = "{call rdoinsert(?,?)}"
              Set CPw = Cn.CreateQuery("", QSQL)
    
          End Sub
    
          Private Sub Form_Unload(Cancel As Integer)
    
              En.Close
    
          End Sub
    
    					
  5. Projeyi çalıştırın.
TxtInput, metin kutusuna bir sayı girin ve "Gönder" düğmesini tıklatın, Oracle, saklı yordamı, RDOINSERT, denir. Sayı, metin olarak girilen kutusu yordamı için giriş parametresi olarak kullanılır. Çıkış parametresi depolanmış yordamın işlem tamamlandıktan sonra olarak adlandırılan bir ileti kutusu içinde kullanılır. Kendi özgün değer yine de metin kutusuna, "Denetim" düğmesini tıklatın. Bu, başka bir ileti kutusunda görüntülenecek bir basit salt okunur resultset oluşturur.

Bu gösteri projede kullanılan kodu ayrıntılı bir açıklaması aşağıdadır:

Form_Load olay DSN-less bağlantı oluşturan kodunu içerir. Ayrıca, saklı yordamı çağıran bir sorgu oluşturur (kod) içerir:
    Private Sub Form_Load()

       Conn = "UID=;PWD=;driver={Microsoft ODBC Driver for Oracle};" _
            & "CONNECTSTRING=MyOracle;"

       Set En = rdoEnvironments(0)
       Set Cn = En.OpenConnection("", rdDriverPrompt, False, Conn)
       QSQL = "{call rdoinsert(?,?)}"
       Set CPw = Cn.CreateQuery("", QSQL)

   End Sub
				
Not kullanıyorsanız rdPreparedStatement nesne. Bu nesne rdoQuery nesne tarafından değiştirilmiştir. Bu, RDO 2.0 için yeni bir özelliktir. Ayrıca, RDO 2.0, açıkça bu projede yapılan gibi bir bağlantı nesnesi oluşturmak gerekmez. Özel bir bağlantı ile ilişkili olmayan bir tek başına bir sorgu nesnesini oluşturabilirsiniz. Bu işlevi hakkında daha fazla bilgi için <a0></a0>, rdoQuery Nesnesi'nde, Visual Basic 5.0 Enterprise edition Yardım dosyasına bakın.

Bir Oracle veritabanı'nı (veya herhangi bir veritabanı) bir bağlantıyı açmak için kullanılan bağlantı dizesini temel ODBC sürücüsü üzerinde çok bağlıdır. Benzer parametreleri kullanılan çoğu ODBC sürücüleri tarafından (UID, PWD, vb.) olsa bile, burada kullanılan bağlantı dizesi Oracle için Microsoft ODBC sürücüsü ile yalnızca iş:
Conn = "UID=;PWD=;driver={Microsoft ODBC Driver for Oracle};" _
            & "CONNECTSTRING=MyOracle;"
				
en önemli bu bağlanma dizesi anahtar sözcüğü "CONNECTSTRıNG" bölümüdür. Oracle için Microsoft ODBC sürücüsü tarafından yalnızca kullanılır. Microsoft SQL Server 6.5, "Sunucu" anahtar sözcüğünü kullanın CONNECTSTRING için atanan SQL'DE ayarlama veritabanı diğer adı dizedir * NET. Oracle veritabanına bağlanırken bağlantı dizesindeki tek fark edilir. Tüm diğer parametreler, Visual Basic 5.0 Enterprise edition için Yardım dosyası (rdoConnection nesne altında) açıklandığı gibi çalışır. Bir bağlantı için Yardım dosyası içinde belirtildiği gibi bir DSN bağlantı dizesinde belirtmeyin.

Ayrıca Form_Load olay saklı yordamı çağıran bir sorgu nesnesini oluşturan kodudur:
   QSQL = "{call rdoinsert(?,?)}"
   Set CPw = Cn.CreateQuery("", QSQL)
				
gibi Microsoft SQL 6.5 sürümünüzün SP5'e ile birlikte Oracle'ı tıklatın, bir saklı yordam çağrısının dönüş değeri belirtemezsiniz; bu makalenin önceki bölümlerinde listelenen parametreleri çıkış, saklı yordamlar kullanmanız gerekir. Parametre yer tutucuları QSQL dizesinde, tarafından belirtilen bir "?" ve bunlar dizede göründükleri sırada başvuruda bulunulan. Parametre rdoQuery nesne yer tutucuları kullanımı hakkında daha fazla bilgi için Visual Basic 5.0 Enterprise edition Yardım dosyasında <a1>rdoParameter</a1> nesnesine bakın.

Projenin kalanı hem çevrimiçi Yardım dosyasını ve her ikisi de Visual Basic 5.0 ile gelen çevrimiçi, oldukça düz iletme ve well-documented kullanılıyor. Oracle, bağlantı dizesini ve saklı yordamlar, arama ile çalışmak için kritik RDO sorunları bu projede ayrıntılı. Bu sorunlar hakkında daha fazla bilgi için lütfen, Oracle SQL bakın * NET 2.3 belgelerine, Oracle 7 sunucunuzun belgelerine ve Oracle için Microsoft ODBC sürücüsü için Yardım dosyası.

Referanslar

Visual Basic 5.0 Enterprise Edition Yardım dosyaları

<a1>Oracle</a1> SQL * NET 2.3 Yardım dosyası

Visual Basic ve dördüncü sürüm olan SQL Server - hitchhiker'in Kılavuzu.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Anahtar Kelimeler: 
kbmt kbhowto kboracle KB167225 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:167225  (http://support.microsoft.com/kb/167225/en-us/ )