lcSQLTable = "MACCOUNTS" *--Passed the name of a Firebird table, returns its primary key *--Assumes giHandle contains previously-established connection handle LOCAL lcSQL TEXT TO lcSQL NOSHOW PRETEXT 15 SELECT RDB$FIELD_NAME AS COLUMN_NAME FROM RDB$INDEX_SEGMENTS I INNER JOIN RDB$RELATION_CONSTRAINTS C ON C.RDB$INDEX_NAME=I.RDB$INDEX_NAME WHERE RDB$CONSTRAINT_TYPE='UNIQUE' AND RDB$RELATION_NAME=?m.lcSQLTable ENDTEXT SQLEXEC(giHandle,lcSQL)This will return the cursor containing all fields involved in the UNIQUE constraints. Thanks, without your help I would not know how to go about it.