Tipi di oggetti di Oracle sono iniettabili in VBA o Visual Basic per applicazioni, per creare applicazioni funzionali, ad esempio clienti e ordini di acquisto, come oggetti di database. I tipi di oggetto da Oracle sono più flessibili, perché possono lavorare con dati complessi, ad esempio audio, immagini e video. Progetto VBA integrato con Oracle è ora anche compatibile con Java, PHP, SQL e PL/SQL, perché gli oggetti di Oracle sono tutti supportati da questi linguaggi di programmazione e piattaforme di database.
Istruzioni
1
Scaricare e installare Microsoft Data Access Components, se si utilizza Visual Basic 5.0. Per connetterti Oracle con VBA, due ActiveX Data Objects o ADO, sono necessari gli elementi-- una tabella (adooracle) e una stored procedure (adoinsert).
2
Inserire il codice seguente per creare una tabella di dati chiamata "adooracle:"
CREATE TABLE adooracle (
item_number NUMBER(3) PRIMARY KEY,
depot_number NUMBER(3));
3
Inserire il codice seguente per creare la routine di Oracle chiamata "adoinsert." Questa procedura verrà estrarre i dati dalla tabella "adooracle".
CREARE o sostituire procedura adoinsert (
insnum IN NUMBER, outnum OUT NUMBER)
IS
BEGIN
INSERT INTO adooracle
(Item_Number, Depot_Number)
VALUES
(insnum, 16);
outnum := insnum/2;
END;
/
4
Aprire un nuovo progetto in Visual Basic e aggiungere un "riferimento" alla libreria Microsoft ActiveX Data Objects per implementare la routine di Oracle. I seguenti controlli della maschera di input:
Controllo-- Pulsante, casella di testo etichetta
Nome-- cmdSend, cmdCheck, lblInput, txtInput
Didascalia di testo - verifica, inviare, ingresso
5
Scegliere "Opzioni" dal menu Strumenti, fare clic sull'opzione "Visualizza modulo intero predefinito" e quindi fare clic su "OK". Questo vi permetterà di visualizzare tutto il codice di progetto. Incollare il codice seguente nella finestra del codice per eseguire il progetto di Oracle.
Option Explicit
Dim Cn As ADODB.Connection
Dim CPw1 As ADODB.Command
Dim CPw2 As ADODB.Command
Dim Rs As ADODB.Recordset
Dim Conn As String
Dim QSQL As String
Private Sub cmdCheck_Click()
CPw1(0) = Val(txtInput.Text)
Set Rs = CPw1.Execute
MsgBox "Item_Number = " & Rs(0) & ". Depot_Number = " & Rs(1) & "."
Rs.Close
End Sub
Private Sub cmdSend_Click()
CPw2(0) = Val(txtInput.Text)
CPw2.Execute
MsgBox "Return value from stored procedure is " & CPw2(1) & "."
End Sub
Private Sub Form_Load()
'You will need to replace the "*" with the appropriate values.
Conn = "UID=*****;PWD=****;DRIVER={Microsoft ODBC for Oracle};" _
& "SERVER=*****;"
Set Cn = New ADODB.Connection
With Cn
.ConnectionString = Conn
.CursorLocation = adUseClient
.Open
End With
QSQL = "Select Item_Number, Depot_Number From adooracle Where " _
& "item_number = ?"
Set CPw1 = New ADODB.Command
With CPw1
.ActiveConnection = Cn
.CommandText = QSQL
.CommandType = adCmdText
.Parameters.Append .CreateParameter(, adInteger, adParamInput)
End With
QSQL = "adoinsert"
Set CPw2 = New ADODB.Command
With CPw2
.ActiveConnection = Cn
.CommandText = QSQL
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter(, adInteger, adParamInput)
.Parameters.Append .CreateParameter(, adDouble, adParamOutput)
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cn.Close
Set Cn = Nothing
Set CPw1 = Nothing
Set CPw2 = Nothing
End Sub
Consigli & Avvertenze
- Utilizzare "procedure" che dispongono di parametri di output e non "funzioni" quando si lavora con parametri Oracle e ADO. Funzioni vengono utilizzate per altre tecnologie di programmazione quali Java e AJAX.