Re: Display Label length limitation
Posted in 2000
On Thu, 8 Jun 2000, COOPER, Joseph wrote:
>> Paul Watson wrote:
>> > I think it's still 18, or at least that what it appears to be in
>> > 9.20.UC2
>>
>> Not on my Solaris 7 machine running IDS.2000 version 9.20.UC2:
>>
>> select tabid>> impossibly_long_display_label_to_test_the_obtuseness_of_r_and_d from
>> systables where tabid = 1;
>>
>> This worked fine for me (but I was using SQLCMD, of course). What did
>> you get?
>
>My output was.
>
>impossibly_long_d+
>
> 1
>
>But I was using dbaccess since I haven't installed SQLCMD yet :-))
There's just been a vivid discussion of long table names (and therefore
almost on long display label names) on the internal technical email
alias, and it appears that the problem is with DB-Access rather than the
server.
In the context of long table names, DB-Access allows you to press the
'+' key to see the full version of the table name -- subject to a bug
having been fixed.
SQLCMD doesn't have any specific limits on its display code (it doesn't
pretend to understand how wide your window is) so it shows the whole
lot.
I doubt whether there's an analogue to the '+' for column names or
display label names, but I'm willing to be proved wrong.
>Using : Informix Dynamic Server 2000 Version 9.20.UC2
>
>SunOS gollum 5.7 Generic_106541-08 sun4m sparc SUNW,SPARCstation-20
>
>This is the same spec HW and SW that Paul Watson is using.
--
Yours,
Jonathan Leffler (Jonathan.Leffler@Informix.com) #include <disclaimer.h>
Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN
"I don't suffer from insanity; I enjoy every minute of it!"
=================================================================
Date: Thu, 08 Jun 2000 12:39:55 +0500
From: Smita Bodke <smitab@informix.com>
To: Bill Schnardthorst <bschnard@informix.com>
Subject: Re: Long table names, etc.
Bug# 126427 is fixed and fix is available in main line. It displays name
of table on error line when arrow keys are pressed. You can also view
name of table by pressing '+' key which invokes vi editor to display
complete name of table.
Bill Schnardthorst wrote:
> IHAC who is using 9.20.UC2 and has numerous tables with table names where
> the first 17 characters are all the same. They want to know how to make
> dbaccess display the long table names. If that is not available then they
> would like to know if there is a tool either now or planned in the future
> that will allow the display of the full names. If the database supports
> long names then the utilities should support the long names.
=================================================================
Date: Thu, 08 Jun 2000 12:13:21 +0000
From: Johann Tienhaara <johann.tienhaara@informix.com>
To: Jonathan Leffler <Jonathan.Leffler@informix.com>, tomh@informix.com
Subject: Re: Long table names, etc. (fwd)
[...]
Also one final comment -- the IFX_LONGID is basically an override to
force the client code (the SQLI layer I guess? dunno much about this
stuff) to *limit* the length of table names returned to the application
layer. So the default value for IFX_LONGID with a recent version of
csdk is 1; but if your client application is really poorly designed
(i.e. expects <= 18 char table names) then you can set IFX_LONGID to 0
to prevent the long names from messing up your application. As Jonathan
points out, the dbaccess app can handle long table names, but the UI (is
this 4GL?) just replaces the tail of a long table name with a '+' in the
'Info' section. But sure enough, if you set IFX_LONGID to 0 before
running dbaccess then it won't give you any indication (i.e. no '+')
that a table name is longer than 18 chars. You can still create tables
with long names though.
And when I press '+' in the Info section to get the table name in vi I
get an 810 error... My permissions & disk space seem to be fine...
Anyway, an extra paragraph or so in the SQL Reference detailing some of
this info would be very useful IMHO. I'm sure all of the info necessary
to fully understand the IFX_LONGID variable is available throughout the
Informix manuals, but it would be nice to have the extra details
(referring to the SQLI layer version # and a more detailed description
of when IFX_LONGID should be used) all in one place. [...]
Tom Houston wrote:
> That "9.0304" number puzzled me, but I have no
> clarification at this point. The "SQL:R" manual
> is currently under revision for the IDS 9.30
> release (in Q1 2001), so if I can find out more
> about IFX_LONGID this summer, I will try to
> upgrade that description.
Jonathan Leffler wrote:
> On Wed, 7 Jun 2000, Johann Tienhaara wrote:
> >FYI: dbaccess seems to ignore IFX_LONGID.
> >Although the documentation is vague I think this is strictly for ESQL/C
> >client programs developed by the end user.
>
> And DB-Access is an ESQL/C program too.
>
> >I'm not sure exactly what the docs mean by 'if the
> >version is >= 9.0304' -- is that referring to the version of esql?
>
> It is referring to an internal version number in the SQLI layer. You
> should be able to find it in the header files in the ESQL/C headers
> directory -- so I went to check and couldn't find it. It may be
> codified in checkapi.o instead, but if it is, it is not in string form.
>
> But, because DB-Access is built with a sufficiently modern CSDK, you can
> certainly create tables with huge names in the query-language option.
> The problem is that DB-Access also contains code to display table names,
> such is in the INFO option. And it has a problem with how to display
> names of up to 128 characters (plus up to 32 characters of user name) on
> a screen only 80 characters wide. Well, two lines would just about do
> the trick, except for the quotes and dot. But the code originated in
> the days of 18 character names and expects to be able to put 3 columns
> of table names down a page...
>
> >Jonathan Leffler wrote:
> >> I commented on an environment variable -- Tom has provided some info.
> >> Since I tend to use tools compiled with current CSDK, I automatically
> >> get the long identifier support.
> >>
> >> ---------- Forwarded message ----------
> >> Date: Wed, 7 Jun 2000 12:38:14 -0700 (PDT)
> >> From: Tom Houston <tomh@informix.com>
> >> To: Jonathan.Leffler@informix.com
> >> Subject: Re: Long table names, etc.
> >>
> >> I think that the environment variable is IFX_LONGID.
> >>
> >> Supposedly you set it to 0 if the client cannot handle
> >> long names, and to 1 if it can. If it is not set,
> >> then our products look at the internal version number,
> >> and think that long ids-- up to 128 bytes, I suppose--
> >> are supported if this number is 9.0304 or greater.
> >>
> >> If IFX_LONGID is set to different values on the client
> >> and server, the client calue takes precedence.
> >>
> >> The "Guide to SQL:Reference" (9.2, Sept 1999), p.3-62
> >> mentions ESQL/C but not DB-Access in conection with
> >> IFX_LONGID.
> >>
> >> ---------------- WHAT JONATHAN HAD HEARD -----------------
> >>
> >