VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Very useful Oracle/VB ADO samples

by Qucami (8 Submissions)
Category: Databases/Data Access/DAO/ADO
Compatability: Visual Basic 5.0
Difficulty: Intermediate
Date Added: Wed 3rd February 2021
Rating: (3 Votes)

Need to do any oracle/ADO work? I wrote these to help me along in my projects. I hope you find them useful too.

Rate Very useful Oracle/VB ADO samples

Function ConnectToOracle(ByVal sWorld As String, ByVal sUID As String, ByVal sPWD As String) As String
'******************************************************************************************
'***** Connection to Oracle using Oracle OLE driver
'***** 
On Error GoTo Ouch
  P11D_DB.Open "Provider=OraOLEDB.Oracle;data source=" & _
sWorld & ".World;User id=" & sUID & ";password=" & sPWD & ";"
  ConnectToOracle = ""
  Exit Function
Ouch:
ConnectToOracle = Err.Description & " (" & Err.Number & ")"
End Function
'-------------------------------------------------------------------------------------------------------
Sub CloseConnectionToOracle()
'******************************************************************************************
'***** Close Connection to Oracle 
'***** 
On Error Resume Next
  If P11D_DB.State <> 0 Then
    P11D_DB.Close
  End If
End Sub
'-------------------------------------------------------------------------------------------------------
Function OracleDate(dIn As Date) As String
'******************************************************************************************
'***** Insert/Update/Retrieve an oracle date in it's proper format
'***** sSQl=".... where DATE_COL = " & oracledate(VBDateField) & "....."
  OracleDate = "to_date('" & Format(dIn, "dd/mm/yyyy") & "','dd/mm/yyyy')"
End Function
'-------------------------------------------------------------------------------------------------------
Public Function GetColumnData() As String()
'******************************************************************************************
'***** Return a column of data via an array
'***** 
Dim sColRetr() As String
Dim rsColRetr As New ADODB.Recordset
Dim sSQL As String
Dim x As Integer
  sSQL = "select COLUMN_NAME from TABLE"
  rsColRetr.Open sSQL, ADO_Connection, adOpenStatic, adLockReadOnly
  ReDim sColRetr(rsColRetr.RecordCount)
  x = 0
  While Not rsColRetr.EOF
    sColRetr(x) = rsColRetr!band_description
    rsColRetr.MoveNext
    x = x + 1
  Wend
  rsColRetr.Close
  Set rsColRetr = Nothing
  ReDim preserve sColRetr(ubound(sColRetr)-1)
  GetColumnData = sColRetr
End Function
'-------------------------------------------------------------------------------------------------------
Sub OracleCommit()
'******************************************************************************************
'***** Commit inserts and updates
'***** 
On Error Resume Next
Dim rsCMD As New ADODB.Command
  With rsCMD
    .ActiveConnection = P11D_DB
    .CommandText = "commit"
    .Execute
  End With
  Set rsCMD = Nothing
End Sub
'-------------------------------------------------------------------------------------------------------
Function GetDescForTable(ByVal sTable As String, ByVal sOwner As String) As String()
'******************************************************************************************
'***** Get the Column names for a table
'***** 
Dim TD() As String
Dim rsD As New ADODB.Recordset
Dim sSQL As String
  sSQL = "select column_name " & _
      "from dba_tab_columns where owner = '" & sOwner & "' " & _
      "and table_name = '" & sTable & "'"
  rsD.Open sSQL, ADO_Connection, adOpenStatic, adLockReadOnly
  ReDim TD(0)
  While Not rsD.EOF
    ReDim Preserve TD(UBound(TD) + 1)
    TD(UBound(TD) - 1) = rsD!column_name
    rsD.MoveNext
  Wend
  rsD.Close
  ReDim Preserve TD(UBound(TD) - 1)
  GetDescForTable = TD
End Function
'-------------------------------------------------------------------------------------------------------
Function GetTables(ByVal sOwner as string) As String()
'******************************************************************************************
'***** Get the Table names for an owner
'***** 
Dim TL() As String
Dim rs As New ADODB.Recordset
Dim sSQL As String
  sSQL = "select table_name from sys.all_tables where owner = '" & sOwner & "'"
  rs.Open sSQL, ADO_Connection, adOpenStatic, adLockReadOnly
  ReDim TL(0)
  While Not rs.EOF
    ReDim Preserve TL(UBound(TL) + 1)
    TL(UBound(TL) - 1) = rs!table_name
    rs.MoveNext
  Wend
  rs.Close
  Set rs = Nothing
  ReDim Preserve TL(UBound(TL) - 1)
  GetTables = TL
End Function
'-------------------------------------------------------------------------------------------------------
Function HandleQuotes(ByVal sIn As String) As String
'******************************************************************************************
'***** take care of single quotes on record update/retrieval to handle data like Mike O'Sullivan
'***** 
HandleQuotes = Replace(sIn, "'", "''")
End Function
'-------------------------------------------------------------------------------------------------------
Function ScrNull(sIn As Variant) As String
'******************************************************************************************
'***** when referencing a recordset field wrap it with this function to return a "" 
'***** to a string where the column data held a null, eg; sString=ScrNull(rsCol!Column_Data
'***** 
  If IsNull(sIn) Then
    ScrNull = ""
  Else
    ScrNull = sIn
  End If
End Function
'-------------------------------------------------------------------------------------------------------
Function GetTotal() As Double
'******************************************************************************************
'***** Get the total of a column of data
'***** 
Dim rsFT As New ADODB.Recordset
Dim sSQL As String
  sSQL = "select sum(COLUMN_DATA) as FC_Total from TABLE where ...condition..."
  rsFT.Open sSQL, P11D_DB, adOpenStatic, adLockReadOnly
  If rsFT.EOF Then
    GetTotal = 0
  ElseIf IsNull(rsFT!fc_total) Then
    GetTotal = 0
  Else
    GetTotal = CDbl(rsFT!fc_total)
  End If
  rsFT.Close
  Set rsFT = Nothing
End Function

Download this snippet    Add to My Saved Code

Very useful Oracle/VB ADO samples Comments

No comments have been posted about Very useful Oracle/VB ADO samples. Why not be the first to post a comment about Very useful Oracle/VB ADO samples.

Post your comment

Subject:
Message:
0/1000 characters