Peter H�bschen wrote :

>Hello,

>encouraged through
>http://listserv.sap.com/pipermail/sapdb.general/2003-April/014359.html

>I tried to create a dbproc with a concatenated SQL-statement to get back a
>result-table. But somehow I didn't managed to get it work. I tried something
>like this:

>Create dbproc foo(In myvar1 smallint, in myvar2 varchar(3))
>Returns Cursor as
>Var 
>   SQLString Varchar(100);
>$Cursor = 'foo_Cursor':
>Begin
>   SQLString = 'Select * from mytable where '
>   If myvar1 > 0 Then SQLString = SQLString || ' compvar1 = ' || myvar1;
>   If myvar2 <> '' Then SQLString = SQLString || 'compvar2 = ''' || myvar2;
>
>Declare :$Cursor Cursor for
>Execute SQLString;  
>End;

>In this case I get a 'Missing keyword Select' - Error at the
>execute-command. It's obvious why, but I want to know if it's possible to
>get a result-table back through a dbproc or something else, where the
>SQL-Statement is dynamically build. 
>My DB-version is 7.4.3.30 on a Linux-Box

>Thanks in advance
>Peter

This syntax is slightly different but the following should work :

Create dbproc foo(In myvar1 smallint, in myvar2 varchar(3))
Returns Cursor as
Var 
   SQLString Varchar(120);

$Cursor = 'foo_Cursor';
SQLString = 'DECLARE ' || $Cursor || ' Select * from mytable where '
if myvar1 > 0 Then SQLString = SQLString || ' compvar1 = ' || myvar1;
If myvar2 <> '' Then SQLString = SQLString || 'compvar2 = ''' || myvar2;
Execute SQLString;  

Best Regards,
Thomas

-- 
Thomas Anhaus
SAP DB, SAP Labs Berlin
[EMAIL PROTECTED]
http://www.sapdb.org/
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general



--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to