|
it
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Please help with cmd.execute select SQL?I know I have matching data in my table, I keep coming up with a ..RecordCount of -1. What am I doing wrong? Thanks in advance : 'Create a connection object Set con = Server.CreateObject("ADODB.Connection") Set rst = Server.CreateObject("ADODB.Recordset") Set cmd = Server.CreateObject("ADODB.Command") strSQL = "SELECT tblUI.IPAdd FROM tblUI WHERE (tblUI.IPAdd ='?')" arSPrm = Array(strRemHst) con.Provider = "Microsoft.Jet.OLEDB.4.0" con.Open Server.MapPath("../dbs/vstr.mdb") cmd.CommandType = 1 cmd.CommandText = strSQL Set cmd.ActiveConnection = con Set rst = cmd.Execute(,arSPrm) Why do you need an ADODB.Command for this?
Please see http://www.aspfaq.com/2126 for a more standard connection string, and see http://www.aspfaq.com/2193 for workarounds to your recordcount problem. On 3/22/05 9:06 PM, in article 3b40e.70832$SF.2693@lakeread08, "What-a-Tool" <Die!FrigginSpammers!DieDie!@IHateSpam.Com> wrote: Show quoteHide quote > What is the proper format for my SQL str using command.execute? Even though > I know I have matching data in my table, I keep coming up with a > .RecordCount of -1. What am I doing wrong? > > > Thanks in advance : > > 'Create a connection object > Set con = Server.CreateObject("ADODB.Connection") > Set rst = Server.CreateObject("ADODB.Recordset") > Set cmd = Server.CreateObject("ADODB.Command") > > strSQL = "SELECT tblUI.IPAdd FROM tblUI WHERE (tblUI.IPAdd ='?')" > arSPrm = Array(strRemHst) > > con.Provider = "Microsoft.Jet.OLEDB.4.0" > con.Open Server.MapPath("../dbs/vstr.mdb") > > cmd.CommandType = 1 > cmd.CommandText = strSQL > Set cmd.ActiveConnection = con > > Set rst = cmd.Execute(,arSPrm) > > > >
www.adopenstatic.com/faq/recordcounterror.asp
www.adopenstatic.com/faq/recordcountalternatives.asp Cheers Ken "What-a-Tool" <Die!FrigginSpammers!DieDie!@IHateSpam.Com> wrote in message news:3b40e.70832$SF.2693@lakeread08...Show quoteHide quote : What is the proper format for my SQL str using command.execute? Even though : I know I have matching data in my table, I keep coming up with a : .RecordCount of -1. What am I doing wrong? : : Thanks in advance : : : 'Create a connection object : Set con = Server.CreateObject("ADODB.Connection") : Set rst = Server.CreateObject("ADODB.Recordset") : Set cmd = Server.CreateObject("ADODB.Command") : : strSQL = "SELECT tblUI.IPAdd FROM tblUI WHERE (tblUI.IPAdd ='?')" : arSPrm = Array(strRemHst) : : con.Provider = "Microsoft.Jet.OLEDB.4.0" : con.Open Server.MapPath("../dbs/vstr.mdb") : : cmd.CommandType = 1 : cmd.CommandText = strSQL : Set cmd.ActiveConnection = con : : Set rst = cmd.Execute(,arSPrm) : : : : What-a-Tool wrote:
Show quoteHide quote > What is the proper format for my SQL str using command.execute? Even It's got nothing to do with the use of a Command object. I think Aaron > though I know I have matching data in my table, I keep coming up with > a .RecordCount of -1. What am I doing wrong? > > Thanks in advance : > > 'Create a connection object > Set con = Server.CreateObject("ADODB.Connection") > Set rst = Server.CreateObject("ADODB.Recordset") > Set cmd = Server.CreateObject("ADODB.Command") > > strSQL = "SELECT tblUI.IPAdd FROM tblUI WHERE (tblUI.IPAdd ='?')" > arSPrm = Array(strRemHst) > > con.Provider = "Microsoft.Jet.OLEDB.4.0" > con.Open Server.MapPath("../dbs/vstr.mdb") > > cmd.CommandType = 1 > cmd.CommandText = strSQL > Set cmd.ActiveConnection = con > > Set rst = cmd.Execute(,arSPrm) missed the fact that you are using the Command to pass parameters to your sql statement when he questioned your use of it. RecordCount requires the use of an expensive cursor. The default cursor (adOpenForwardOnly) which your code is usig, is a great, cheap cursor type which, however, does not support RecordCount. Now some may suggest specifying a more expensive cursor, either a client-side static cursor, or a server-side static, keyset, or dynamic cursor. However, there is no need to do this. Aaron's article makes the good suggestion of using GetRows, which has several advantages: 1. By getting your data into an array, it allows you to close your recordset and connection immediately, releasing the connection back to the connection pool and allowing it to be re-used by the next user instead of requiring a new connection to be open. Fewer open connections = more scalable application. 2. Processing the data is more efficient because it can be thousands of times faster to loop through an array than it is to loop through a recordset 3. It allows you to use Ubound to determine the number of records that were returned Bob Barrows -- Microsoft MVP - ASP/ASP.NET Please reply to the newsgroup. This email account is my spam trap so I don't check it very often. If you must reply off-line, then remove the "NO SPAM" Thank you for the advice and the links to the articles. Very helpfull
Sean
Other interesting topics
Can a web user can be logged on as an account other than IUSR_?
IIS6 & ASP: accessing network files with FSO fails Trapping odbc error when exec'ing INSERT command Checking for duplication in an array or delimited string sql problem with sub queries SSL/Response Object/data to client Sending Mail Using ASP/VBScript to Exchange Mail Box How to use different sites in IIS on WinXP Pro string Truncated error xslisapi download |
|||||||||||||||||||||||