MauroAssis
unread,Feb 28, 2011, 2:11:59 PM2/28/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Argow
O Argow Studio ajuda muito com o trabalho de parametrização da
aplicação baseada em Argow. Definições de tabelas, campos e chaves
primárias são importados de forma correta. Porém falta uma feature:
importação dos relacionamentos entre as tabelas. Abaixo uma sentença
que importa do dicionário de dados do SQL Server para o do Argow os
relacionamentos diretamente para a tabela DICJOIN. Observações:
1) A sentença define todos os relacionamentos como master/detail
(ISLOOKUP = 'F'). Isso porque é impossível saber essa definição
somente pelo dicionário do banco. Vc pode alterar a sentença, mas
mesmo assim depois vai ter que percorrer os relacionamentos para
indicar os que são M/D e os que são lookups.
2) O "ORDER BY" no "pé" da sentença é opcional.
INSERT INTO
DICJOIN(TABLEMASTER,TABLEDETAIL,FIELDSMASTER,FIELDSDETAIL,ISLOOKUP,JOINTYPE,OPERATORS)
SELECT
PK_Table = PK.TABLE_NAME,
FK_Table = FK.TABLE_NAME,
PK_Column = PT.COLUMN_NAME,
FK_Column = CU.COLUMN_NAME,
'F' islookup, 'dajtInner' jointype,'=' operators
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON
C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON
C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME
= CU.CONSTRAINT_NAME
INNER JOIN (
SELECT i1.TABLE_NAME, i2.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON
i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT ON PT.TABLE_NAME = PK.TABLE_NAME
WHERE PK.TABLE_NAME NOT IN (SELECT TABLEMASTER FROM DICJOIN)
ORDER BY
1,2,3,4