× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Sorry,

Mixing RPG IV and SQL again :-)

        BEGIN 
        declare tempvar varchar(50);
        DECLARE C1 CURSOR WITH RETURN FOR SELECT MAX ( BOX ) AS RETURNED FROM
                CLSDFILES . CLOSEDFILES WHERE BOX LIKE tempvar;
        set tempvar = '%' concat criteria concat '%';
        OPEN C1 ;
        END  ; 

Also, unless the criteria field is VARCHAR, you'd want to use the TRIM function.

Charles Wilt
--
iSeries Systems Administrator / Developer
Mitsubishi Electric Automotive America
ph: 513-573-4343
fax: 513-398-1121
 

> -----Original Message-----
> From: midrange-l-bounces@xxxxxxxxxxxx
> [mailto:midrange-l-bounces@xxxxxxxxxxxx]On Behalf Of Adam Lang
> Sent: Thursday, June 09, 2005 1:41 PM
> To: Midrange Systems Technical Discussion
> Subject: Re: Stored Procedures, Visual Basic 6 and LIKE clause
> 
> 
> Same error as other statement.  Invalid use of +
> 
> On 6/9/05, Wilt, Charles <CWilt@xxxxxxxxxxxx> wrote:
> > Sorry,
> > 
> > Actually it needs to be like this:
> > 
> >         BEGIN
> >         declare tempvar varchar(50);
> >         DECLARE C1 CURSOR WITH RETURN FOR SELECT MAX ( BOX 
> ) AS RETURNED FROM
> >                 CLSDFILES . CLOSEDFILES WHERE BOX LIKE tempvar;
> >         set tempvar = '%' + criteria + '%';
> >         OPEN C1 ;
> >         END  ;
> > 
> > 
> > Charles Wilt
> > --
> > iSeries Systems Administrator / Developer
> > Mitsubishi Electric Automotive America
> > ph: 513-573-4343
> > fax: 513-398-1121
> > 
> > 
> > > -----Original Message-----
> > > From: midrange-l-bounces@xxxxxxxxxxxx
> > > [mailto:midrange-l-bounces@xxxxxxxxxxxx]On Behalf Of Adam Lang
> > > Sent: Tuesday, June 07, 2005 11:10 AM
> > > To: Midrange Systems Technical Discussion
> > > Subject: Stored Procedures, Visual Basic 6 and LIKE clause
> > >
> > >
> > > Hello,
> > >
> > > I have a Visual Basic 6 program using ADO and the iSeries 
> ODBC driver
> > > for getting data off the iSeries (V5R2.
> > >
> > > I use a variety of stored procedures currently with no 
> problem, until
> > > I tried doing a LIKE clause.
> > >
> > > The stored procedure runs, but it returns a NULL value.  
> When I run
> > > the SQL in the "run scripts" window of NAvigator, it returns data,
> > > like it should.  I went over code a lot and I can see nothign I am
> > > doing different from the other stored procedures I am 
> calling.  I am
> > > curious if anyone has any ideas.
> > >
> > > Here is the definituion of the stored procedure I am calling:
> > >
> > > CREATE PROCEDURE CLSDFILES.LAST_BOX (
> > >       IN CRITERIA VARCHAR(50) )
> > >       DYNAMIC RESULT SETS 1
> > >       LANGUAGE SQL
> > >       SPECIFIC CLSDFILES.LAST_BOX
> > >       NOT DETERMINISTIC
> > >       READS SQL DATA
> > >       CALLED ON NULL INPUT
> > >       BEGIN DECLARE C1 CURSOR WITH RETURN FOR SELECT MAX 
> ( BOX ) AS
> > > RETURNED FROM CLSDFILES . CLOSEDFILES WHERE BOX LIKE 
> '%CRITERIA%' ;
> > > OPEN C1 ; END  ;
> > >
> > > And here is the Visual Basic code I am calling it with:
> > >
> > > Set MyCommand = New ADODB.Command
> > >
> > > With MyCommand
> > >     .ActiveConnection = MyConnection
> > >     .CommandText = "CLSDFILES.LAST_BOX"
> > >     .CommandType = adCmdStoredProc
> > >     .Parameters("criteria") = criteria
> > > End With
> > >
> > > Set rcdset = New ADODB.Recordset
> > > With rcdset
> > >     .CursorType = adOpenStatic
> > >     .LockType = adLockReadOnly
> > >     Set .Source = MyCommand
> > >     .Open
> > > End With
> > >
> > > If IsNull(rcdset.Fields.Item(0).Value) Then
> > >     MsgBox "No boxes with that search criteria."
> > > Else
> > >     MsgBox rcdset.Fields.Item(0).Value
> > > End If
> > >
> > > Also of note.  When I call the SQL directly from VB, it also works
> > > that it is supposed to:
> > > 'sSQL = "SELECT max(BOX) FROM CLSDFILES . CLOSEDFILES 
> WHERE BOX LIKE
> > > '%" & criteria & "%'"
> > > '
> > > 'Set rcdset = MyConnection.Execute(sSQL)
> > > '
> > > 'If IsNull(rcdset.Fields.Item(0).Value) Then
> > > '    MsgBox "No boxes with that search criteria."
> > > 'Else
> > > '    MsgBox rcdset.Fields.Item(0).Value
> > > 'End If
> > > --
> > > "Your Majesty has slain the mother; how can one kill the
> > > child as well?"
> > > - Ts'ao Jui, Romance of the Three Kingdoms
> > >
> > > --
> > > This is the Midrange Systems Technical Discussion
> > > (MIDRANGE-L) mailing list
> > > To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> > > To subscribe, unsubscribe, or change list options,
> > > visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> > > or email: MIDRANGE-L-request@xxxxxxxxxxxx
> > > Before posting, please take a moment to review the archives
> > > at http://archive.midrange.com/midrange-l.
> > >
> > >
> > 
> > --
> > This is the Midrange Systems Technical Discussion 
> (MIDRANGE-L) mailing list
> > To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> > or email: MIDRANGE-L-request@xxxxxxxxxxxx
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/midrange-l.
> > 
> > 
> 
> 
> -- 
> "Your Majesty has slain the mother; how can one kill the 
> child as well?"
> - Ts'ao Jui, Romance of the Three Kingdoms
> 
> -- 
> This is the Midrange Systems Technical Discussion 
> (MIDRANGE-L) mailing list
> To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/midrange-l.
> 
> 


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.