You can usually get that info from the database's system tables, depending 
on your RDBMS.   (In the following queries, 'typename' will give you the 
datatype.)

MSSQL:

            SELECT syscolumns.colid, 
                syscolumns.name, 
                syscolumns.colorder AS sortorder, 
                syscolumns.prec AS collen, 
                syscolumns.xtype, 
                syscolumns.typestat, 
                syscolumns.xusertype, 
                syscolumns.isnullable,
                systypes.name AS typename, 
                (   SELECT COUNT(*)
                    FROM sysindexkeys
                    WHERE id = syscolumns.id
                        AND indid = 1
                        AND colid = syscolumns.colid
                ) AS isPrimary
            FROM syscolumns LEFT JOIN
                systypes ON syscolumns.xtype = systypes.xtype 
                    AND syscolumns.xusertype = systypes.xusertype
            WHERE id = OBJECT_ID(<cfqueryparam cfsqltype="CF_SQL_VARCHAR" 
value="#arguments.tableName#">)
            ORDER BY colorder

Oracle:

            SELECT table_name colid, 
                column_name name, 
                column_id sortorder, 
                data_length collen, 
                nullable isnullable, 
                data_type typename, 
                (   SELECT COUNT(*)
                    FROM user_constraints c INNER JOIN
                        user_cons_columns cc ON c.constraint_name = 
cc.constraint_name
                    WHERE c.table_name = <cfqueryparam 
cfsqltype="CF_SQL_VARCHAR" value="#UCase(arguments.tableName)#">
                        AND c.constraint_type = <cfqueryparam 
cfsqltype="CF_SQL_VARCHAR" value="P">
                        AND cc.column_name = user_tab_columns.column_name
                ) AS isPrimary
            FROM user_tab_columns
            WHERE table_name = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" 
value="#UCase(arguments.tableName)#">
            ORDER BY column_id





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know 
on the House of Fusion mailing lists
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:331186
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