Visual Basic – Kreiranje SQL serverskih objekata preko ADO-a

U ovom prilogu obradiฤ‡emo pitanje kako kreirati ili modifikovati objekte na MS SQL serveru uz pomoฤ‡ ADO-a (ActiveX Data Objects). Za razliku od prethodnika, DAO modela za pristup podacima, ADO ne moลพe preko objektnog modela da kreira i modifikuje objekte SQL servera. Nemoguฤ‡e je dodati objekat u Tables kolekciju, meฤ‘utim, to vas ne spreฤava da uputite instrukcije Transact SQL-a (Microsoft-ov SQL) koriลกฤ‡enjem metode Execute objekta Connection i opcionog parametra adCmdText.

Kao ลกto znate, koriลกฤ‡enjem Transact SQL-a moลพete kreirati, modifikovati, brisati device-eve, uskladiลกtene procedure i sve ostalo ลกto inaฤe radite preko Enterprise manager-a. Detaljnije o Transact SQL-u moลพete ฤitati u SQL prilozima ove rubrike. Da biste videli kako na delu moลพemo modifikovati objekte na serveru, ispratite sledeฤ‡e korake:

  • Pokrenite Visual Basic i otvorite novi standardni EXE projekat. Projekat nazovite „ModObjekt“, a glavnu formu preimenujte u frmGlavna, te dodajte referencu ka Microsoft ActiveX Data Objects 2.0.
  • Dodajte na formu tri komandna dugmeta i dajte im sledeฤ‡e nazive (osobina Name): cmdKreiraj, cmdIzmeni i cmdObrisi. Rasporedite ih kao na slici.
  • Za upravljanje objektom Connection dodajte sledeฤ‡i kod vezan za uฤitavanje forme:


    Option Explicit
    Private mConn As Connection

    Private Sub Form_Load()
    Set mConn = New Connection
    mConn.Open "Provider=SQLOLEDB.1;
    User ID=sa;Password=password"
    + ";Location=WINEMILLER;Database=pubs"
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    mConn.Close
    Set mConn = Nothing
    End Sub


  • Zatim dodajte i programski kod vezan za dugmad:


    Private Sub cmdIzmeni_Click()
    `izmena tabele
    Dim sCmd As String
    sCmd = "alter table
    JEDNOSTAVNA add STAVKA_N CHAR(40) "
    sCmd = sCmd + "NULL"
    mConn.Execute sCmd, , adCmdText
    End Sub

    Private Sub cmdKreiraj_Click()
    `kreiranje jednostavne table
    Dim sCmd As String
    sCmd = "create table
    JEDNOSTAVNA (SIFRA INTEGER NOT "
    sCmd = sCmd + "NULL"
    sCmd = sCmd + ", STAVKACHAR(40) NOT NULL)"
    mConn.Execute sCmd, , adCmdText
    End Sub

    Private Sub cmdObrisi_Click()
    `brisanje tabele
    Dim sCmd As String
    sCmd = "drop table JEDNOSTAVNA"
    mConn.Execute sCmd, , adCmdText
    End Sub


Na svaki klik, na bilo koje od dugmadi, generiลกe se Transact SQL komanda za modifikaciju baze podataka i ลกalje se putem metode Execute objekta Connection. Koriลกฤ‡enjem opcionog parametra adCmdText, bilo koja komanda koju server „razume“ moลพe biti upuฤ‡ena serveru na obradu. Koriลกฤ‡enje metode Execute otvara bezbroj novih moguฤ‡nosti. Ponekad objektni model moลพe biti restriktivan, ali Microsoft je ipak „otvorio vrata“ programerima da bi mogli direktno da komuniciraju sa bazama podataka.

Pratite Krstaricu na www.krstarica.com