Buen día amigo... Como por entender:
¿Lo que quieres hacer es leer una tabla de la base de datos que se carga en un dataset y a partir de ella generas el script de creación? ==> Si es asi, te recomiedo que vayas directamente al catalogo de la bd y consultes esa información... no hagas el paso intermedio de cargarlo en el dataset, pues los tipos de datos que delphi define en sus Tfields son genericos y se adaptan o se aproximan a lo que les envia cada motor.
Intenta:
Código SQL
[-]SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod)
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = (SELECT pg_class.oid
FROM pg_class INNER JOIN pg_namespace
ON (pg_class.relnamespace = pg_namespace.oid
AND lower(pg_namespace.nspname) = 'public')
WHERE pg_class.relname='NombreTabla')
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;
o mas resumido:
Código SQL
[-]
select * from information_schema.columns where table_name ='NombreTabla'