Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Cursor Adapter SELECTCMD
Message
From
31/03/2006 17:11:10
 
 
To
31/03/2006 10:50:56
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01109509
Message ID:
01109689
Views:
25
>I am having an issue with my Parameter in my SelectCmd of my cursor adapter. I want an empty cursor to be returned if I set the value of my parameter to .null. This works great for CHAR fields, however, integers, I am getting an error.
>
>This works just the way I want it too.
>
>RELEASE lomyca, loConnection, loCommand
>
>PUBLIC lomyca       AS CURSORADAPTER
>PUBLIC loConnection AS ADODB.CONNECTION
>PUBLIC loCommand    AS ADODB.COMMAND
>
>loConnection = CREATEOBJECT('ADODB.Connection')
>loCommand    = CREATEOBJECT('ADODB.Command')
>
>***<DataSource>
>loConnection.ConnectionString = "***"
>***</DataSource>
>loConnection.OPEN()
>
>loCommand.ActiveConnection = loConnection
>
>lomyca = CREATEOBJECT("cursoradapter")
>
>vp_members_pk = .NULL.
>
>WITH lomyca
>   .CURSORSCHEMA ="MEMBERS_PK C(10), FIRSTNAME C(50), LASTNAME C(50)"
>   .USECURSORSCHEMA = .T.
>   .DATASOURCETYPE ="ADO"
>   .DATASOURCE = CREATEOBJECT('ADODB.RecordSet')
>   .DATASOURCE.CursorLocation   = 3  && adUseClient
>   .DATASOURCE.LockType         = 3  && adLockOptimistic
>   .DATASOURCE.ActiveConnection = loConnection
>   .ALIAS = "Members"
>   .SELECTCMD = "SELECT * FROM MEMBERS WHERE MEMBERS_PK = ?VP_MEMBERS_PK"
>
>   lxRetVal = .CURSORFILL(.T.,.F.,-1,loCommand)
>
>   IF NOT lxRetVal
>      MESSAGEBOX(MESSAGE())
>   ENDIF
>ENDWITH && myca
>
>RETURN lxRetVal
>
>
>
>The following code gives me an error message from the Microsoft OLE DB Provider for SQL Server: "Invalid Input Parameter Values. Check the status values for detail."
>
>
>RELEASE lomyca, loConnection, loCommand
>
>PUBLIC lomyca       AS CURSORADAPTER
>PUBLIC loConnection AS ADODB.CONNECTION
>PUBLIC loCommand    AS ADODB.COMMAND
>
>loConnection = CREATEOBJECT('ADODB.Connection')
>loCommand    = CREATEOBJECT('ADODB.Command')
>
>***<DataSource>
>loConnection.ConnectionString = "***"
>
>***</DataSource>
>loConnection.OPEN()
>
>loCommand.ActiveConnection = loConnection
>
>lomyca = CREATEOBJECT("cursoradapter")
>
>vp_members_pk = .NULL.
>
>WITH lomyca
>   .CURSORSCHEMA ="MEMBERS_PK I, FIRSTNAME C(50), LASTNAME C(50)"
>   .USECURSORSCHEMA = .T.
>   .DATASOURCETYPE ="ADO"
>   .DATASOURCE = CREATEOBJECT('ADODB.RecordSet')
>   .DATASOURCE.CursorLocation   = 3  && adUseClient
>   .DATASOURCE.LockType         = 3  && adLockOptimistic
>   .DATASOURCE.ActiveConnection = loConnection
>   .ALIAS = "Members"
>   .SELECTCMD = "SELECT * FROM MEMBERS WHERE MEMBERS_PK = ?VP_MEMBERS_PK"
>
>   lxRetVal = .CURSORFILL(.T.,.F.,-1,loCommand)
>
>   IF NOT lxRetVal
>      MESSAGEBOX(MESSAGE())
>   ENDIF
>ENDWITH && myca
>
>RETURN lxRetVal
>
>
>Does anyone have any ideas?
.SELECTCMD = "SELECT * FROM MEMBERS WHERE MEMBERS_PK = ?CAST(VP_MEMBERS_PK AS I)"
Previous
Reply
Map
View

Click here to load this message in the networking platform