home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / object10 / vbsql.bas < prev    next >
BASIC Source File  |  1994-09-19  |  7KB  |  222 lines

  1. Option Explicit
  2.  
  3. 'Used for DbExecuteSQL
  4. Global OraSession As Object
  5. Global OraDatabase As Object
  6.  
  7. 'Connection Information
  8. Global UserName$
  9. Global Password$
  10. Global DatabaseName$
  11. Global Connect$
  12.  
  13. Global Const SQL_VERB_CONNECT = 1
  14. Global Const SQL_VERB_DESCRIBE = 2
  15. Global Const SQL_VERB_SELECT = 3
  16. Global Const SQL_VERB_OTHER = 99
  17.  
  18. 'Globals taken from CONSTANT.TXT(included with VB)
  19. Global Const KEY_ESCAPE = &H1B
  20. Global Const KEY_RETURN = &HD
  21.  
  22. 'Common Dialog Control
  23. 'Action Property
  24. Global Const DLG_FILE_OPEN = 1
  25. Global Const DLG_FILE_SAVE = 2
  26. Global Const DLG_COLOR = 3
  27. Global Const DLG_FONT = 4
  28. Global Const DLG_PRINT = 5
  29. Global Const DLG_HELP = 6
  30.  
  31. 'Printer Dialog Flags
  32. Global Const PD_ALLPAGES = &H0&
  33. Global Const PD_SELECTION = &H1&
  34. Global Const PD_PAGENUMS = &H2&
  35. Global Const PD_NOSELECTION = &H4&
  36. Global Const PD_NOPAGENUMS = &H8&
  37. Global Const PD_COLLATE = &H10&
  38. Global Const PD_PRINTTOFILE = &H20&
  39. Global Const PD_PRINTSETUP = &H40&
  40. Global Const PD_NOWARNING = &H80&
  41. Global Const PD_RETURNDC = &H100&
  42. Global Const PD_RETURNIC = &H200&
  43. Global Const PD_RETURNDEFAULT = &H400&
  44. Global Const PD_SHOWHELP = &H800&
  45. Global Const PD_USEDEVMODECOPIES = &H40000
  46. Global Const PD_DISABLEPRINTTOFILE = &H80000
  47. Global Const PD_HIDEPRINTTOFILE = &H100000
  48.  
  49.  
  50. ' Show parameters
  51. Global Const MODAL = 1
  52. Global Const MODELESS = 0
  53.  
  54. ' MousePointer
  55. Global Const Default = 0        ' 0 - Default
  56. Global Const ARROW = 1          ' 1 - Arrow
  57. Global Const CROSSHAIR = 2      ' 2 - Cross
  58. Global Const IBEAM = 3          ' 3 - I-Beam
  59. Global Const ICON_POINTER = 4   ' 4 - Icon
  60. Global Const UP_ARROW = 10      ' 10 - Up Arrow
  61. Global Const HOURGLASS = 11     ' 11 - Hourglass
  62. Global Const NO_DROP = 12       ' 12 - No drop
  63.  
  64. ' Button parameter masks
  65. Global Const LEFT_BUTTON = 1
  66. Global Const RIGHT_BUTTON = 2
  67. Global Const MIDDLE_BUTTON = 4
  68.  
  69. ' MsgBox parameters
  70. Global Const MB_OK = 0                 ' OK button only
  71. Global Const MB_OKCANCEL = 1           ' OK and Cancel buttons
  72. Global Const MB_ABORTRETRYIGNORE = 2   ' Abort, Retry, and Ignore buttons
  73. Global Const MB_YESNOCANCEL = 3        ' Yes, No, and Cancel buttons
  74. Global Const MB_YESNO = 4              ' Yes and No buttons
  75. Global Const MB_RETRYCANCEL = 5        ' Retry and Cancel buttons
  76.  
  77. Global Const MB_ICONSTOP = 16          ' Critical message
  78. Global Const MB_ICONQUESTION = 32      ' Warning query
  79. Global Const MB_ICONEXCLAMATION = 48   ' Warning message
  80. Global Const MB_ICONINFORMATION = 64   ' Information message
  81.  
  82. ' MsgBox return values
  83. Global Const IDOK = 1                  ' OK button pressed
  84. Global Const IDCANCEL = 2              ' Cancel button pressed
  85. Global Const IDABORT = 3               ' Abort button pressed
  86. Global Const IDRETRY = 4               ' Retry button pressed
  87. Global Const IDIGNORE = 5              ' Ignore button pressed
  88. Global Const IDYES = 6                 ' Yes button pressed
  89. Global Const IDNO = 7                  ' No button pressed
  90.  
  91. 'Font Dialog Flags
  92. Global Const CF_SCREENFONTS = &H1&
  93. Global Const CF_PRINTERFONTS = &H2&
  94. Global Const CF_BOTH = &H3&
  95. Global Const CF_SHOWHELP = &H4&
  96. Global Const CF_INITTOLOGFONTSTRUCT = &H40&
  97. Global Const CF_USESTYLE = &H80&
  98. Global Const CF_EFFECTS = &H100&
  99. Global Const CF_APPLY = &H200&
  100. Global Const CF_ANSIONLY = &H400&
  101. Global Const CF_NOVECTORFONTS = &H800&
  102. Global Const CF_NOSIMULATIONS = &H1000&
  103. Global Const CF_LIMITSIZE = &H2000&
  104. Global Const CF_FIXEDPITCHONLY = &H4000&
  105. Global Const CF_WYSIWYG = &H8000&         'must also have CF_SCREENFONTS & CF_PRINTERFONTS
  106. Global Const CF_FORCEFONTEXIST = &H10000
  107. Global Const CF_SCALABLEONLY = &H20000
  108. Global Const CF_TTONLY = &H40000
  109. Global Const CF_NOFACESEL = &H80000
  110. Global Const CF_NOSTYLESEL = &H100000
  111. Global Const CF_NOSIZESEL = &H200000
  112.  
  113. Global Const DATA_ERRCONTINUE = 0
  114. Global Const DATA_ERRDISPLAY = 1
  115.  
  116. Sub CenterForm (F As Form)
  117.  
  118. ' Center the specified form within the screen
  119.  
  120.     F.Move (Screen.Width - F.Width) \ 2, (Screen.Height - F.Height) \ 2
  121.  
  122. End Sub
  123.  
  124. 'Look for CR or LF in a string and convert to a space.
  125. 'This is needed since [R,L]TRIM doesn't strip these.
  126. Sub ConvertCRLFtoSpace (AString As String)
  127.  
  128.  Dim lpos%, wpos%
  129.  Dim CR$, LF$
  130.  
  131.  CR$ = Chr$(13)
  132.  LF$ = Chr$(10)
  133.  lpos% = Len(AString$)
  134.  
  135.  wpos% = InStr(1, AString$, CR$)
  136.  While (wpos%)
  137.   Mid(AString, wpos%, 1) = " "
  138.   lpos% = wpos% + 1
  139.  wpos% = InStr(lpos, AString$, CR$)
  140.  Wend
  141.  
  142.  wpos% = InStr(1, AString$, LF$)
  143.  While (wpos%)
  144.   Mid(AString, wpos%, 1) = " "
  145.   lpos% = wpos% + 1
  146.  wpos% = InStr(lpos, AString$, LF$)
  147.  Wend
  148.  
  149. End Sub
  150.  
  151. Sub NextToForm (F As Form, N As Form)
  152.  
  153.  'Place form N next to Form F.
  154.  N.Move F.Width, F.Height
  155.  
  156. End Sub
  157.  
  158. Sub RaiseError (Title As String, Msg As String)
  159.  
  160.  MsgBox Msg$, MB_OK + MB_ICONSTOP, Title$
  161.  
  162. End Sub
  163.  
  164. Sub RaiseInfo (Title As String, Msg As String)
  165.  
  166.  MsgBox Msg$, MB_OK + MB_ICONINFORMATION, Title$
  167.  
  168.  
  169. End Sub
  170.  
  171. 'Determine the verb of the sql statement. Currently only SELECT
  172. 'DESCRIBE and OTHER. Returns a constant but also modifies the
  173. 'object and owner variables to reflect findings. Owner is only
  174. 'set if a different owner is specified in the select statement.
  175. Function SQLvoo (SQLStatement As String, ObjectName As String, Owner As String) As Integer
  176.  Dim fpos%, spos%, ppos%, verb%
  177.  
  178.   'Identify verb and object
  179.   If UCase$(Left$(SQLStatement$, 6)) = "SELECT" Then
  180.    verb% = SQL_VERB_SELECT
  181.  
  182.   'Multiple objects such as emp,dept will not work.
  183.    fpos% = InStr(1, SQLStatement$, " FROM ", 1)  'Look for the FROM
  184.    spos% = InStr(fpos% + 6, SQLStatement$, " ")  'Look for a space after the object
  185.    If spos% = 0 Then
  186.     ObjectName$ = Mid$(SQLStatement$, fpos% + 6, (fpos% + 6))   'No space, object name at end
  187.    Else
  188.     ObjectName$ = Mid$(SQLStatement$, fpos% + 6, spos% - (fpos% + 6))    'space, object name in middle
  189.    End If
  190.  
  191.   ElseIf UCase$(Left$(SQLStatement$, 8)) = "DESCRIBE" Then
  192.    verb% = SQL_VERB_DESCRIBE
  193.    ObjectName$ = Mid$(SQLStatement$, 10)
  194.   ElseIf UCase$(Left$(SQLStatement$, 4)) = "DESC" Then
  195.    verb% = SQL_VERB_DESCRIBE
  196.    ObjectName$ = Mid$(SQLStatement$, 6)
  197.   'elseif - possibly look for sqlplus things here
  198.   Else
  199.    verb% = SQL_VERB_OTHER
  200.   End If
  201.  
  202.   If verb% = SQL_VERB_SELECT Or verb% = SQL_VERB_DESCRIBE Then
  203.    ppos% = InStr(1, ObjectName$, ".")
  204.    If ppos% <> 0 Then   'OWNER.OBJECT
  205.     Owner$ = Mid$(ObjectName$, 1, (ppos% - 1))
  206.     ObjectName$ = Mid$(ObjectName$, (ppos% + 1), Len(ObjectName$))
  207.    Else
  208.     ObjectName$ = Mid$(SQLStatement$, 6)
  209.    End If
  210.   End If
  211.  
  212.  'System tables always use upper case, so I'll do it now for
  213.  'later comparisons.
  214.  Owner$ = UCase$(Trim$(Owner$))
  215.  ObjectName$ = UCase$(Trim$(ObjectName$))
  216.  
  217.  SQLvoo = verb%
  218.  
  219.  
  220. End Function
  221.  
  222.