Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 Transact-SQL (2000)
 write query dynamically in cursor

Author  Topic 

kneel
Starting Member

36 Posts

Posted - 2007-08-23 : 01:06:37
Hello All,

Does anybody know how to write query dynamically in CURSOR ?
I am unable to append WHERE CLAUSE to query in cursor.

Regards

--kneel

dinakar
Master Smack Fu Yak Hacker

2507 Posts

Posted - 2007-08-23 : 01:17:29
If you post your code and error message (if any) we can help with your issue. I am sure a lot of people here know how to write dynamic SQL, whether in Cursor or not.

Dinakar Nethi
************************
Life is short. Enjoy it.
************************
http://weblogs.sqlteam.com/dinakar/
Go to Top of Page

kneel
Starting Member

36 Posts

Posted - 2007-08-23 : 01:38:26
IF @Result = 0
BEGIN
SET @whereClause = 'WHERE G.USERID = ' + @UserID + ' AND G.GROUPID IN (SELECT TOP 3 GROUPID FROM GROUPS WHERE USERID = '+ @UserID + ' )ORDER BY G.GroupID'
END
ELSE
BEGIN
SET @whereClause = 'WHERE G.USERID ='+ @UserID
END

DECLARE @groupContact CURSOR
SET @groupContact = CURSOR
LOCAL
FAST_FORWARD
READ_ONLY
FOR


SELECT G.GROUPID,GC.CONTACTID,GC.CONTACTTYPE FROM GROUPS G INNER JOIN GROUPCONTACTS GC
ON G.GROUPID = GC.GROUPID INNER JOIN CONTACTS C ON
C.CONTACTID = GC.CONTACTID AND C.CONTACTTYPE = GC.CONTACTTYPE
+ @whereClause


OPEN @groupContact

@whereClause changes depending upon @Result flag. But when I tried t o append where clause to query from cursor,it fails. Query doesn't give any records

So does anybody know, how to write query dynamically in cursor ?

Thanks in advance

--kneel
Go to Top of Page

sutysw
Starting Member

3 Posts

Posted - 2007-08-23 : 03:44:52
try with

EXECUTE('DECLARE @groupContact CURSOR FOR
SELECT G.GROUPID,GC.CONTACTID,GC.CONTACTTYPE
FROM GROUPS G INNER JOIN GROUPCONTACTS GC ON G.GROUPID = GC.GROUPID
INNER JOIN CONTACTS C ON C.CONTACTID = GC.CONTACTID AND C.CONTACTTYPE = GC.CONTACTTYPE' + @whereClause)
Go to Top of Page
   

- Advertisement -