Dawn Sekel wrote:
> We are working with a customer who has a legacy application written in 
> a Progress Database that uses SQL-89 query language.  In their 
> customer table the address field (which has a column heading of ADDR) 
> is an array field.  If we use CFDump to output the query structure 
> <CFDUMP var="qryCustomer"> we can see the column name information.  
> And it shows the array field elements as having an @ symbol in its 
> column heading:
> 
> NAME            [EMAIL PROTECTED]                [EMAIL PROTECTED]            
> CITY ....
> XYZ Company     111 Main Street       [empty string]    New York

Looks like Progress did something weird with their array implementation if you 
get that back. (Or quite likely with the array implementation in their JDBC 
driver.) They seem to be translating the array type to a composite type. I 
wonder how that works if different rows have a different number of array 
elements. I suppose the standard is not completely foolproof if that is SQL-89, 
if I use an array in PostgreSQL it is translated back to a ColdFusion array 
automatically, and that is supposed to be SQL-89 (actually SQL-2003) too. For 
example, the code below outputs "Yes Yes".


> But, we can't figure out the correct syntax for a CFoutput statement 
> for the individual elements of the ADDR array.  The PROGRESS SQL-89 
> user guide says it should be #qryCustomer.addr__1#, but that causes an 
> "element undefined" error.  Does anyone have an example of a select 
> statement for a Progress SQL-89 array field that they can share?  Is 
> it possible to use an @ symbol as a field name using some sort of 
> escape sequence?

Can't you get at it using #queryname["[EMAIL PROTECTED]"][1]#?

Jochem


<cftransaction>

        <cfquery datasource="pg_scorpio">
        CREATE TABLE arrayTest (
                ID INTEGER,
                ADDRESS VARCHAR[]
        )
        </cfquery>

        <cfquery datasource="pg_scorpio">
        INSERT INTO arrayTest (ID, ADDRESS)
        VALUES (1, ARRAY['1630 Revello Drive', 'Sunnydale', 'CA'])
        </cfquery>

        <cfquery name="test" datasource="pg_scorpio">
        SELECT *
        FROM arrayTest
        </cfquery>

        <cfoutput>
                #IsQuery(test)#<br />
                #IsArray(test.address)#<br />
        </cfoutput>

        <cftransaction action="rollback">
</cftransaction>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:260521
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to