Discussion:
declaring cursors at run time
(too old to reply)
Randall Young (ADE)
2013-06-17 14:40:16 UTC
Permalink
Is there a way to declare cursors at run time? I am trying something like the following.

CASE p_pageline
WHEN 3619
LET g_select01 =
'SELECT SUM(tot_exp) FROM (',
'SELECT ',
'(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',
'exp11+exp12+exp13) tot_exp ',
'FROM expledgr ',
'WHERE yr = ', gr_sisyear.cur_year[3,4],
' AND ( ',
'key_orgn[1,4] = "2000" OR ',
'key_orgn[1,4] between "2100" AND "2199" ',
') AND ',
'key_orgn[5,8] BETWEEN "3100" AND "3119" ',
'AND ( ',
'account BETWEEN "61000" AND "61199" OR ',
'account BETWEEN "61300" AND "61699" OR ',
'account BETWEEN "61800" AND "61999" ',
') ',
')'

there would be other WHENs here


END CASE
PREPARE st_clopmf FROM g_select01


When I try to EXECUTE st_clopmt, the compiler gives me the following.

| The cursor 'st_clopmf' has not yet been declared in this program
| See error number -4372.

I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version 11.50.FC5.

Thanks.


Randall Young
***@arkansas.gov<mailto:***@arkansas.gov>

"Blessed are we who can laugh at our surroundings for we shall never be considered completely sane."
Art Kagel
2013-06-17 15:38:32 UTC
Permalink
Of course you can declare a cursor for this prepared statement, but you
should not have to if the query is only returning the single result of a
SUM(). That said, you just have to:

DECLARE cu_clopmf CURSOR for st_clopmf

OPEN cu_clopmf

WHILE ....
FETCH cu_clopmf INTO ....
....
END WHILE
CLOSE cu_clopmf
FREE cu_clopmf
FREE st_clopmf

Obviously I've left out error handling and other details.

Art

Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/

Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.


On Mon, Jun 17, 2013 at 10:40 AM, Randall Young (ADE) <
***@arkansas.gov> wrote:

> Is there a way to declare cursors at run time? I am trying something
> like the following.****
>
> ** **
>
> CASE p_pageline****
>
> WHEN 3619****
>
> LET g_select01 = ****
>
> 'SELECT SUM(tot_exp) FROM
> (',****
>
> 'SELECT ', ** **
>
>
> '(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',****
>
>
> 'exp11+exp12+exp13) tot_exp ', ****
>
> 'FROM expledgr ',****
>
> 'WHERE yr = ',
> gr_sisyear.cur_year[3,4],****
>
> ' AND ( ',****
>
>
> 'key_orgn[1,4] = "2000" OR ',****
>
>
> 'key_orgn[1,4] between "2100" AND "2199" ', ****
>
> ') AND ',****
>
>
> 'key_orgn[5,8] BETWEEN "3100" AND "3119" ', ****
>
> 'AND ( ',****
>
> 'account
> BETWEEN "61000" AND "61199" OR ',****
>
> 'account
> BETWEEN "61300" AND "61699" OR ',****
>
> 'account
> BETWEEN "61800" AND "61999" ',****
>
> ') ',****
>
> ')' ****
>
> ** **
>
> there would be other WHENs here****
>
> ** **
>
> ** **
>
> END CASE****
>
> PREPARE st_clopmf FROM g_select01****
>
> ** **
>
> ** **
>
> When I try to EXECUTE st_clopmt, the compiler gives me the following.****
>
> ** **
>
> | The cursor 'st_clopmf' has not yet been declared in this program****
>
> | See error number -4372.****
>
> ** **
>
> I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version
> 11.50.FC5.****
>
> ** **
>
> Thanks.****
>
> ** **
>
> ** **
>
> Randall Young****
>
> ***@arkansas.gov****
>
> ** **
>
> “Blessed are we who can laugh at our surroundings for we shall never be
> considered completely sane.”****
>
> ** **
>
> _______________________________________________
> Informix-list mailing list
> Informix-***@iiug.org
> http://www.iiug.org/mailman/listinfo/informix-list
>
>
Marco Greco
2013-06-17 16:20:32 UTC
Permalink
On 17/06/13 15:40, Randall Young (ADE) wrote:
> Is there a way to declare cursors at run time? I am trying something like the
> following.
>
> CASE p_pageline
>
> WHEN 3619
>
> LET g_select01 =
>
> 'SELECT SUM(tot_exp) FROM (',
>
> 'SELECT ',
>
>
> '(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',
>
>
> 'exp11+exp12+exp13) tot_exp ',
>
> 'FROM expledgr ',
>
> 'WHERE yr = ',
> gr_sisyear.cur_year[3,4],
>
> ' AND ( ',
>
>
> 'key_orgn[1,4] = "2000" OR ',
>
>
> 'key_orgn[1,4] between "2100" AND "2199" ',
>
> ') AND ',
>
>
> 'key_orgn[5,8] BETWEEN "3100" AND "3119" ',
>
> 'AND ( ',
>
> 'account
> BETWEEN "61000" AND "61199" OR ',
>
> 'account
> BETWEEN "61300" AND "61699" OR ',
>
> 'account
> BETWEEN "61800" AND "61999" ',
>
> ') ',
>
> ')'
>
> there would be other WHENs here
>
> END CASE
>
> PREPARE st_clopmf FROM g_select01
>
> When I try to EXECUTE st_clopmt, the compiler gives me the following.
>
> | The cursor 'st_clopmf' has not yet been declared in this program
>
> | See error number -4372.
>
> I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version 11.50.FC5.
>
> Thanks.
>
> Randall Young
>
> ***@arkansas.gov <mailto:***@arkansas.gov>
>
> “Blessed are we who can laugh at our surroundings for we shall never be
> considered completely sane.”

Yes, you can do that kind of stuff, but it being a select (not INTO TEMP), you
have to DECLARE a cursor for the statement after you PREPARE it, and either
use a FOREACH, or an OPEN / FETCH / CLOSE sequence.

--
Ciao,
Marco
______________________________________________________________________________
Marco Greco /UK /IBM Standard disclaimers apply!

Structured Query Scripting Language http://www.4glworks.com/sqsl.htm
4glworks http://www.4glworks.com
Informix on Linux http://www.4glworks.com/ifmxlinux.htm
Randall Young (ADE)
2013-06-17 17:39:04 UTC
Permalink
I am sorry. I am not making myself clear. Within the CASE statement I will have about 50 WHENs based on different p_pageline. The queries in each WHEN will be similar. I was trying to avoid adding a lot of extra lines to what is already bloated code. I was hoping that I could PREPARE statements and/or CREATE CURSORs at runtime when I knew what the value of p_pageline was and thus reduce the number of cursor names.

Otherwise, it seems that I have to specifically set up each individual PREPARE and/or CREATE CURSOR in order for the compiler to successfully compile the code. Am I creating another problem by trying to reduce the number of cursors and the number of lines of code? Thanks for your kind help.

--
Randall Young
***@arkansas.gov

"Blessed are we who can laugh at our surroundings for we shall never be considered completely sane."


-----Original Message-----
From: informix-list-***@iiug.org [mailto:informix-list-***@iiug.org] On Behalf Of Marco Greco
Sent: Monday, June 17, 2013 11:21 AM
To: informix-***@iiug.org
Subject: Re: declaring cursors at run time



On 17/06/13 15:40, Randall Young (ADE) wrote:
> Is there a way to declare cursors at run time? I am trying something
> like the following.
>
> CASE p_pageline
>
> WHEN 3619
>
> LET g_select01 =
>
> 'SELECT SUM(tot_exp)
> FROM (',
>
> 'SELECT ',
>
>
> '(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',
>
>
> 'exp11+exp12+exp13) tot_exp ',
>
> 'FROM expledgr ',
>
> 'WHERE yr = ',
> gr_sisyear.cur_year[3,4],
>
> ' AND ( ',
>
>
> 'key_orgn[1,4] = "2000" OR ',
>
>
> 'key_orgn[1,4] between "2100" AND "2199" ',
>
> ') AND ',
>
>
> 'key_orgn[5,8] BETWEEN "3100" AND "3119" ',
>
> 'AND ( ',
>
>
> 'account BETWEEN "61000" AND "61199" OR ',
>
>
> 'account BETWEEN "61300" AND "61699" OR ',
>
>
> 'account BETWEEN "61800" AND "61999" ',
>
> ') ',
>
> ')'
>
> there would be other WHENs here
>
> END CASE
>
> PREPARE st_clopmf FROM g_select01
>
> When I try to EXECUTE st_clopmt, the compiler gives me the following.
>
> | The cursor 'st_clopmf' has not yet been declared in this program
>
> | See error number -4372.
>
> I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version 11.50.FC5.
>
> Thanks.
>
> Randall Young
>
> ***@arkansas.gov <mailto:***@arkansas.gov>
>
> "Blessed are we who can laugh at our surroundings for we shall never
> be considered completely sane."

Yes, you can do that kind of stuff, but it being a select (not INTO TEMP), you have to DECLARE a cursor for the statement after you PREPARE it, and either use a FOREACH, or an OPEN / FETCH / CLOSE sequence.

--
Ciao,
Marco
______________________________________________________________________________
Marco Greco /UK /IBM Standard disclaimers apply!

Structured Query Scripting Language http://www.4glworks.com/sqsl.htm
4glworks http://www.4glworks.com
Informix on Linux http://www.4glworks.com/ifmxlinux.htm
Art Kagel
2013-06-17 17:54:34 UTC
Permalink
OK, so, as long as the result of whichever of the 50 odd WHEN cases that is
selected at runtime is the string g_select01 containing the selected SELECT
statement, and that statement returns a single numeric value (either a
single row or multiple rows, but only the single value per row (or at least
the same number and type of values), then you can place the PREPARE,
DECLARE, and OPEN statements just once after the END CASE statement and not
have to increase the amount of code by having a separate PREPARE st_clopmt
FROM g_select01 and DECLARE cu_clopmt FOR st_clopmt for each version of the
statement. So, just put whichever SELECT is finally built by the CASE
statement into a single character string variable name (not a different
string for each version of the SELECT) and you will be golden.

Is that the question?

Art

Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/

Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.


On Mon, Jun 17, 2013 at 1:39 PM, Randall Young (ADE) <
***@arkansas.gov> wrote:

> I am sorry. I am not making myself clear. Within the CASE statement I
> will have about 50 WHENs based on different p_pageline. The queries in
> each WHEN will be similar. I was trying to avoid adding a lot of extra
> lines to what is already bloated code. I was hoping that I could PREPARE
> statements and/or CREATE CURSORs at runtime when I knew what the value of
> p_pageline was and thus reduce the number of cursor names.
>
> Otherwise, it seems that I have to specifically set up each individual
> PREPARE and/or CREATE CURSOR in order for the compiler to successfully
> compile the code. Am I creating another problem by trying to reduce the
> number of cursors and the number of lines of code? Thanks for your kind
> help.
>
> --
> Randall Young
> ***@arkansas.gov
>
> "Blessed are we who can laugh at our surroundings for we shall never be
> considered completely sane."
>
>
> -----Original Message-----
> From: informix-list-***@iiug.org [mailto:
> informix-list-***@iiug.org] On Behalf Of Marco Greco
> Sent: Monday, June 17, 2013 11:21 AM
> To: informix-***@iiug.org
> Subject: Re: declaring cursors at run time
>
>
>
> On 17/06/13 15:40, Randall Young (ADE) wrote:
> > Is there a way to declare cursors at run time? I am trying something
> > like the following.
> >
> > CASE p_pageline
> >
> > WHEN 3619
> >
> > LET g_select01 =
> >
> > 'SELECT SUM(tot_exp)
> > FROM (',
> >
> > 'SELECT ',
> >
> >
> > '(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',
> >
> >
> > 'exp11+exp12+exp13) tot_exp ',
> >
> > 'FROM expledgr ',
> >
> > 'WHERE yr = ',
> > gr_sisyear.cur_year[3,4],
> >
> > ' AND ( ',
> >
> >
> > 'key_orgn[1,4] = "2000" OR ',
> >
> >
> > 'key_orgn[1,4] between "2100" AND "2199" ',
> >
> > ') AND ',
> >
> >
> > 'key_orgn[5,8] BETWEEN "3100" AND "3119" ',
> >
> > 'AND ( ',
> >
> >
> > 'account BETWEEN "61000" AND "61199" OR ',
> >
> >
> > 'account BETWEEN "61300" AND "61699" OR ',
> >
> >
> > 'account BETWEEN "61800" AND "61999" ',
> >
> > ') ',
> >
> > ')'
> >
> > there would be other WHENs here
> >
> > END CASE
> >
> > PREPARE st_clopmf FROM g_select01
> >
> > When I try to EXECUTE st_clopmt, the compiler gives me the following.
> >
> > | The cursor 'st_clopmf' has not yet been declared in this program
> >
> > | See error number -4372.
> >
> > I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version
> 11.50.FC5.
> >
> > Thanks.
> >
> > Randall Young
> >
> > ***@arkansas.gov <mailto:***@arkansas.gov>
> >
> > "Blessed are we who can laugh at our surroundings for we shall never
> > be considered completely sane."
>
> Yes, you can do that kind of stuff, but it being a select (not INTO TEMP),
> you have to DECLARE a cursor for the statement after you PREPARE it, and
> either use a FOREACH, or an OPEN / FETCH / CLOSE sequence.
>
> --
> Ciao,
> Marco
>
> ______________________________________________________________________________
> Marco Greco /UK /IBM Standard disclaimers
> apply!
>
> Structured Query Scripting Language
> http://www.4glworks.com/sqsl.htm
> 4glworks
> http://www.4glworks.com
> Informix on Linux
> http://www.4glworks.com/ifmxlinux.htm
> _______________________________________________
> Informix-list mailing list
> Informix-***@iiug.org
> http://www.iiug.org/mailman/listinfo/informix-list
> _______________________________________________
> Informix-list mailing list
> Informix-***@iiug.org
> http://www.iiug.org/mailman/listinfo/informix-list
>
Marco Greco
2013-06-17 18:08:55 UTC
Permalink
On 17/06/13 18:39, Randall Young (ADE) wrote:
> I am sorry. I am not making myself clear. Within the CASE statement I will have about 50 WHENs based on different p_pageline. The queries in each WHEN will be similar. I was trying to avoid adding a lot of extra lines to what is already bloated code. I was hoping that I could PREPARE statements and/or CREATE CURSORs at runtime when I knew what the value of p_pageline was and thus reduce the number of cursor names.
>
> Otherwise, it seems that I have to specifically set up each individual PREPARE and/or CREATE CURSOR in order for the compiler to successfully compile the code. Am I creating another problem by trying to reduce the number of cursors and the number of lines of code? Thanks for your kind help.
>
> --
> Randall Young
> ***@arkansas.gov
>
> "Blessed are we who can laugh at our surroundings for we shall never be considered completely sane."
>
>
> -----Original Message-----
> From: informix-list-***@iiug.org [mailto:informix-list-***@iiug.org] On Behalf Of Marco Greco
> Sent: Monday, June 17, 2013 11:21 AM
> To: informix-***@iiug.org
> Subject: Re: declaring cursors at run time
>
>
>
> On 17/06/13 15:40, Randall Young (ADE) wrote:
>> Is there a way to declare cursors at run time? I am trying something
>> like the following.
>>
>> CASE p_pageline
>>
>> WHEN 3619
>>
>> LET g_select01 =
>>
>> 'SELECT SUM(tot_exp)
>> FROM (',
>>
>> 'SELECT ',
>>
>>
>> '(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',
>>
>>
>> 'exp11+exp12+exp13) tot_exp ',
>>
>> 'FROM expledgr ',
>>
>> 'WHERE yr = ',
>> gr_sisyear.cur_year[3,4],
>>
>> ' AND ( ',
>>
>>
>> 'key_orgn[1,4] = "2000" OR ',
>>
>>
>> 'key_orgn[1,4] between "2100" AND "2199" ',
>>
>> ') AND ',
>>
>>
>> 'key_orgn[5,8] BETWEEN "3100" AND "3119" ',
>>
>> 'AND ( ',
>>
>>
>> 'account BETWEEN "61000" AND "61199" OR ',
>>
>>
>> 'account BETWEEN "61300" AND "61699" OR ',
>>
>>
>> 'account BETWEEN "61800" AND "61999" ',
>>
>> ') ',
>>
>> ')'
>>
>> there would be other WHENs here
>>
>> END CASE
>>
>> PREPARE st_clopmf FROM g_select01
>>
>> When I try to EXECUTE st_clopmt, the compiler gives me the following.
>>
>> | The cursor 'st_clopmf' has not yet been declared in this program
>>
>> | See error number -4372.
>>
>> I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version 11.50.FC5.
>>
>> Thanks.
>>
>> Randall Young
>>
>> ***@arkansas.gov <mailto:***@arkansas.gov>
>>
>> "Blessed are we who can laugh at our surroundings for we shall never
>> be considered completely sane."
>
> Yes, you can do that kind of stuff, but it being a select (not INTO TEMP), you have to DECLARE a cursor for the statement after you PREPARE it, and either use a FOREACH, or an OPEN / FETCH / CLOSE sequence.
>
>

There's nothing to stop you from using the same cursor name for more than one
query (even all, if you go through that case statement only once per
execution) in your CASE statement - that would allow to cut down on a
substantial amount of duplication, on the assumption that all select lists
have the same number of elements of the same (or at least compatible) type.
If you feel more adventurous and decide to go down the esql/c route, esql/c
allows you to have variable names in PREPARE / DECLARE / OPEN / FETCH statements.
So you could have a function, say dynprepare(), which takes a string for a
statement name and one for the actual statement and internally does a

$PREPARE :sname from :stmt;

and then you could have dyndeclare (sname, cname) which does

$DECLARE :cname CURSOR FOR :sname;

etc, etc


--
Ciao,
Marco
______________________________________________________________________________
Marco Greco /UK /IBM Standard disclaimers apply!

Structured Query Scripting Language http://www.4glworks.com/sqsl.htm
4glworks http://www.4glworks.com
Informix on Linux http://www.4glworks.com/ifmxlinux.htm
Alexandre Marini
2013-06-17 18:13:34 UTC
Permalink
Hello, Randall.
You can always mount your SQL statement, like this:

let l_select = 'select field1, field2, fieldn '
let l_from = 'from table a, table b, tablen n'
let l_where1 = 'where a.tabid = b.tabid and b.tabid = n.tabid '

case when var1 = value1
let l_where1 = l_where1, ' and cond1 = value1'
when var2 = value2
let l_where1 = l_where1, ' and cond2 = value2'
....
otherwise let l_where1 = '1=1'
end case

let l_statement = l_select, l_from, l_where1

And then you can declare/prepare/execute your cursor...

Is that what you want?

Notice that in this way, you can dinamically mount your SQL sections, specifying them according to your business rules. You can also put your projection clause, or the tables involved, into your case statement.
It will mostly depends on your logic of SQL dependencies, than anything else.

Hope this helps.
Regards.

Alexandre Marini
IBM Informix Certified Professional v10 / v11.50 / v11.70

IBM Information Management Informix Technical Professional

IBM Infosphere DataStage Technical Professional
Informix Senior DBA - Orizon Brasil
BRIUG website administrator
Informix independent consultant


> From: ***@arkansas.gov
> To: ***@4glworks.com; informix-***@iiug.org
> Subject: RE: declaring cursors at run time
> Date: Mon, 17 Jun 2013 17:39:04 +0000
>
> I am sorry. I am not making myself clear. Within the CASE statement I will have about 50 WHENs based on different p_pageline. The queries in each WHEN will be similar. I was trying to avoid adding a lot of extra lines to what is already bloated code. I was hoping that I could PREPARE statements and/or CREATE CURSORs at runtime when I knew what the value of p_pageline was and thus reduce the number of cursor names.
>
> Otherwise, it seems that I have to specifically set up each individual PREPARE and/or CREATE CURSOR in order for the compiler to successfully compile the code. Am I creating another problem by trying to reduce the number of cursors and the number of lines of code? Thanks for your kind help.
>
> --
> Randall Young
> ***@arkansas.gov
>
> "Blessed are we who can laugh at our surroundings for we shall never be considered completely sane."
>
>
> -----Original Message-----
> From: informix-list-***@iiug.org [mailto:informix-list-***@iiug.org] On Behalf Of Marco Greco
> Sent: Monday, June 17, 2013 11:21 AM
> To: informix-***@iiug.org
> Subject: Re: declaring cursors at run time
>
>
>
> On 17/06/13 15:40, Randall Young (ADE) wrote:
> > Is there a way to declare cursors at run time? I am trying something
> > like the following.
> >
> > CASE p_pageline
> >
> > WHEN 3619
> >
> > LET g_select01 =
> >
> > 'SELECT SUM(tot_exp)
> > FROM (',
> >
> > 'SELECT ',
> >
> >
> > '(exp1+exp2+exp3+exp4+exp5+exp6+exp7+exp8+exp9+exp10+',
> >
> >
> > 'exp11+exp12+exp13) tot_exp ',
> >
> > 'FROM expledgr ',
> >
> > 'WHERE yr = ',
> > gr_sisyear.cur_year[3,4],
> >
> > ' AND ( ',
> >
> >
> > 'key_orgn[1,4] = "2000" OR ',
> >
> >
> > 'key_orgn[1,4] between "2100" AND "2199" ',
> >
> > ') AND ',
> >
> >
> > 'key_orgn[5,8] BETWEEN "3100" AND "3119" ',
> >
> > 'AND ( ',
> >
> >
> > 'account BETWEEN "61000" AND "61199" OR ',
> >
> >
> > 'account BETWEEN "61300" AND "61699" OR ',
> >
> >
> > 'account BETWEEN "61800" AND "61999" ',
> >
> > ') ',
> >
> > ')'
> >
> > there would be other WHENs here
> >
> > END CASE
> >
> > PREPARE st_clopmf FROM g_select01
> >
> > When I try to EXECUTE st_clopmt, the compiler gives me the following.
> >
> > | The cursor 'st_clopmf' has not yet been declared in this program
> >
> > | See error number -4372.
> >
> > I am using IBM INFORMIX-4GL Version 7.50.FC5 and DB-Access Version 11.50.FC5.
> >
> > Thanks.
> >
> > Randall Young
> >
> > ***@arkansas.gov <mailto:***@arkansas.gov>
> >
> > "Blessed are we who can laugh at our surroundings for we shall never
> > be considered completely sane."
>
> Yes, you can do that kind of stuff, but it being a select (not INTO TEMP), you have to DECLARE a cursor for the statement after you PREPARE it, and either use a FOREACH, or an OPEN / FETCH / CLOSE sequence.
>
> --
> Ciao,
> Marco
> ______________________________________________________________________________
> Marco Greco /UK /IBM Standard disclaimers apply!
>
> Structured Query Scripting Language http://www.4glworks.com/sqsl.htm
> 4glworks http://www.4glworks.com
> Informix on Linux http://www.4glworks.com/ifmxlinux.htm
> _______________________________________________
> Informix-list mailing list
> Informix-***@iiug.org
> http://www.iiug.org/mailman/listinfo/informix-list
> _______________________________________________
> Informix-list mailing list
> Informix-***@iiug.org
> http://www.iiug.org/mailman/listinfo/informix-list
Loading...