Previous | Contents | Next |
Access XP, 2000, 97, ...; VB 6, 5, ...
Download SqlBuilder v.1.0.0, (1744 bytes):
SqlBuilder class helps you manage construction of SQL statements in your code in those cases, when select list, list of tables, and/or search conditions, ..., depend on parameters, known at run-time only. Let's start from example.
'DictID, DictType and DictIsArchived are some externally defined parameters Dim Sql1 As SqlBuilder Dim strSql As String Set Sql1 = New SqlBuilder Sql1.AppendSelectList "Dict.DictLevel, Dict.DictParentID, DictL.*" Sql1.AppendFrom "Dict Inner Join DictL On Dict.DictID=DictL.DictID And DictL.LanguageID=" & FNumSql(lang) If DictID <> 0 Then 'filter for DictID column is on! Sql1.AppendWhere "Dict.DictID=" & FNumSql(DictID) End If If DictType <> gconDictType_all Then ' ... AND exact "DictType" Sql1.AppendWhere "Dict.DictTypeID=" & FNumSql(DictType) End If 'additional columns and table(s) are required from some types of data Select Case DictType Case gconDictType_EntPropType 'It's simple to join another table and to add another column to the select list! Sql1.AppendFrom "Inner Join EntPropType On Dict.DictID=EntPropType.EntPropTypeID" Sql1.AppendSelectList "EntPropType.ValueTypeID" End Select If Not DictIsArchived Then ' ... AND only items, that are not archived Sql1.AppendWhere "Dict.DictIsArchived=0" End If Sql1.OrderBy = "DictL.DictOrder" 'Now all run-time parameters are collected, let's get SQL statement strSql = Sql1.ToString
I think, that you've got a clue. For details please see source code of SqlBuilder.cls.
Author: Yuri Volkov
Last changed: 2003-09-30