[dba-SQLServer]ADO FInd and SQL Server

Arthur Fuller artful at rogers.com
Mon Aug 25 14:17:00 CDT 2003


My fave approach to this is not to write it this way, simply because it's so
hard to parse (for a human). I prefer this style:

rstBuilding.Filter "fldClusterID = \\txtClusterID\\ AND fldBuildingNumber =
\\txtBuildingNumber\\"

Given such a string, it's trivial to call Replace() once for each text
marker. Given an additional function that I call q(), which is a one-liner
that adds single quotes before and after a given value, then the problem
reduces to something quite trivial.

strSQL = SELECT * FROM somewhere WHERE thisPK = \\myValue1\\ AND thisOtherPK
= \\myValue2 AND so on.

strSQL = Replace(strSQL, "\\myValue1\\", 123)
strSQL = Replace(strSQL, "\\myValue2\\", q(CustomerID)
and so on...

Just my opinion. Could simply be that at my advanced age I have difficulty
reading all those ampersands and form references :-)

Arthur

-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com]On Behalf Of
Mwp.Reid at Queens-Belfast.AC.UK
Sent: Monday, August 25, 2003 12:30 PM
To: dba-sqlserver at databaseadvisors.com
Subject: [dba-SQLServer]ADO FInd and SQL Server


We need to pass multipe values to FInd or Filter in ADO.

Any ideas?

  rstBuilding.Open ("select * from tblBuilding"), cnn, adOpenKeyset,
adLockPessimistic

        rstBuilding.Filter "fldClusterID = " & Val(Nz(txtClusterID)) & " AND
fldBuildingNumber = '" _
            & Nz(txtBuildingNumber) & "'"


Martin

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.510 / Virus Database: 307 - Release Date: 8/14/2003



More information about the dba-SQLServer mailing list