home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Unleashed / Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso / source / chap36 / gensql.bas < prev    next >
BASIC Source File  |  1995-07-27  |  3KB  |  63 lines

  1. Attribute VB_Name = "basGenSQL"
  2. '=====================================================================
  3. 'GENSQL.BAS by Frank Font 1995
  4. '
  5. 'This VB4 file implements some general purpose SQL functions.
  6. '=====================================================================
  7. Option Explicit
  8.  
  9. '---------------------------------------------------------------------
  10. 'Returns sum of values in "SumField" of "MyDB" after applying the
  11. '"From" and "Where" portions of the SQL statement.
  12. '---------------------------------------------------------------------
  13. Function SQLResultSum(MyDB As DATABASE, SumField As String, From$, Where$) As Long
  14.   Dim MyData As Recordset, sql$
  15.   sql$ = "Select sum(" + SumField + ") as [total] from " + From$ + _
  16.          IIf(Len(Trim$(Where$)) > 0, " where " + Where$, "")
  17.   Set MyData = MyDB.OpenRecordset(sql$, dbOpenDynaset)
  18.   If MyData.RecordCount = 0 Then
  19.     SQLResultSum = 0     'Send empty string.
  20.   Else
  21.     MyData.MoveLast
  22.     SQLResultSum = MyData![total]
  23.   End If
  24. End Function
  25.  
  26.  
  27. '---------------------------------------------------------------------
  28. 'Returns value of field named in "aField$" of "MyDB" after applying the
  29. '"From" and "Where" portions of the SQL statement.
  30. 'This only returns the value in last record.  If the record is not
  31. 'found, the empty string is returned.
  32. '---------------------------------------------------------------------
  33. Function SQLResultStr(MyDB As DATABASE, aField$, From$, Where$) As String
  34.   Dim MyData As Recordset, sql$
  35.   sql$ = "Select " + aField + " as [result] from " + From$ + _
  36.          IIf(Len(Trim$(Where$)) > 0, " where " + Where$, "")
  37.   Set MyData = MyDB.OpenRecordset(sql$, dbOpenDynaset)
  38.   If MyData.RecordCount = 0 Then
  39.     SQLResultStr = ""     'Send empty string.
  40.   Else
  41.     MyData.MoveLast
  42.     SQLResultStr = MyData![result]
  43.   End If
  44. End Function
  45.  
  46. '---------------------------------------------------------------------
  47. 'Returns number of records in set defined by the "From" and "Where".
  48. '---------------------------------------------------------------------
  49. Function SQLResultCount(MyDB As DATABASE, From$, Where$) As Long
  50.   Dim MyData As Recordset, sql$
  51.   sql$ = "Select count(*) as [total] from " + From$ + _
  52.          IIf(Len(Trim$(Where$)) > 0, " where " + Where$, "")
  53.   Set MyData = MyDB.OpenRecordset(sql$, dbOpenDynaset)
  54.   If MyData.RecordCount = 0 Then
  55.     SQLResultCount = 0
  56.   Else
  57.     MyData.MoveLast
  58.     SQLResultCount = MyData![total]
  59.   End If
  60. End Function
  61.  
  62.  
  63.