Re: SQL string problem
From: Jake Marx (msnews_at_longhead.com)
Date: 05/12/04
- Next message: craigh: "Suppressing rows where a cell is blank"
- Previous message: WintonCW: "Re: Apply Macro to Specific Column (Answered my own question)"
- In reply to: TLowe: "SQL string problem"
- Next in thread: TLowe: "Re: SQL string problem"
- Reply: TLowe: "Re: SQL string problem"
- Reply: onedaywhen: "Re: SQL string problem"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 12 May 2004 12:49:02 -0700
Hi TLowe,
You must "escape" any single quotes when sending SQL statements directly to
SQL Server via ADO. By that, I mean that you must add another single quote
immediately after any existing single quotes in your SQL statement.
Typically, I use a simple function to accomplish this:
Public Function gsMakeStringSQLSafe(rsSQL As String) As String
gsMakeStringSQLSafe=Replace$(rsSQL, "'", "''")
End Function
Just pass your SQL statement through this function when opening your
recordset:
rs.Open gsMakeStringSQLSafe(strSQL), cnnStoredProc, _
adUseClient, adLockReadOnly
Hopefully, this will fix your problem.
-- Regards, Jake Marx MS MVP - Excel www.longhead.com [please keep replies in the newsgroup - email address unmonitored] TLowe wrote: > Hello all! > I am using an ADO recordset to import data into Excel 2000 from a Win > 2003/SQL Server2000 setup. My problem is the SQL string is getting > truncated and is not passed to SQL server 2000 in a complete form. > Its cut off. It appears to cutoff around 185 characters. Is this a > setting that can be reset? Is this an ADO Property that should be > set to allow a bigger SQL statement to be passed to SQL server. Its > really weird that it only takes so many characters, truncates the > balance of the statement and then still tacks the double quotes at > the end of the statement? The > > Here is the ADO recordset : > rs.Open strSQL, cnnStoredProc, adUseClient, adLockReadOnly > > Here is the full SQL statement that is assigned to the strSQL > variable that is initially stored in the variable strSQL. This > statement runs in the SQL analyzer with no problems (variables x, and > y with actual values). > > SELECT [description],count(t2.Result) as total,t2.Result,t2.Vendor, > t1.[date]from Tblquestions t1 inner join TblResultsQuestion t2 on > T1.[id] = T2.QuestionID where T1.type = 4 and vendor like '" & x & "' > and [description] like '" & y & "' group by [description],Vendor, > [date], result order by [description],Result desc > > Here is the actual statement that gets put into the strSQL variable > when passed via the above rs.open statement. > > strSQL : "SELECT [description],count(t2.Result) as total,t2.Result, > t2.Vendor, t1.[date] from Tblquestions t1 inner join > TblResultsQuestion t2 on T1.[id] = T2.QuestionID where t1.type = 4 > and ve"
- Next message: craigh: "Suppressing rows where a cell is blank"
- Previous message: WintonCW: "Re: Apply Macro to Specific Column (Answered my own question)"
- In reply to: TLowe: "SQL string problem"
- Next in thread: TLowe: "Re: SQL string problem"
- Reply: TLowe: "Re: SQL string problem"
- Reply: onedaywhen: "Re: SQL string problem"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|