kreta/Tools/CodeGeneration/Templates/Server/DataAccess/DAUtil/AllAttributes.tdl
2024-03-13 00:33:46 +01:00

124 lines
5.7 KiB
Text

/* A fájlban lévő sablonokat szinkronban kell tartani a szelekt generáló sablonokkal! */
/* Később kell egy kis refaktoring is! */
//***************************************************************************//
// Legenerálja azt a ciklusmagot, amely egy DataReader-ből kiszippantja //
// az entitás összes attribútumát. //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAttributesToEntityState(MClass as ENTITY, COUNTERNAME, ENTITYSTATENAME, READERNAME)
// [GetEntityName([ENTITY])] attribútumai
[loop (ENTITY -> MAttribute as ATTRIBUTE)]
[ENTITYSTATENAME].[ConvertNameToEntityStateAttributeName(GetAttributeName([ATTRIBUTE]))] = [READERNAME].GetValue([COUNTERNAME]++);
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesToEntityState([BASECLASS], [COUNTERNAME], [ENTITYSTATENAME], [READERNAME])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL parancsot helyőrzőkkel, ami felhozza az //
// adatbázisból egy entitás összes attribútumát. //
// //
// VALÓSZÍNŰLEG MÁR ELAVULT, ÉS NEM HASZNÁLT! //
//***************************************************************************//
template GenerateLoadAllAttributesCommand(MClass as ENTITY)
select
[ConvertNameToSQLTableName([ENTITY.name])].ID,
[GenerateLoadAllAttributesCommandColumns([ENTITY])]
[GenerateSerialColumn([ENTITY])]
from
[GenerateLoadAllAttributesCommandTables([ENTITY])]
{0}
where
[GenerateLoadAllAttributesCommandWhere([ENTITY])]
{1}
end template
//***************************************************************************//
// Legenerálja a SERIAL rendszeroszlop minősített nevét //
//***************************************************************************//
template GenerateSerialColumn(MClass as ENTITY)
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateSerialColumn([BASECLASS])][break]
[end loop]
[else]
[ConvertNameToSQLTableName([ENTITY.name])].SERIAL
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás összes attribútumát //
// tartalmazza. (a rendszerattribútumokat nem generálja le!) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAttributesCommandColumns(MClass as ENTITY)
[loop (ENTITY -> MAttribute as ATTRIBUTE)]
[ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName([ATTRIBUTE.name])],
[end loop]
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesCommandColumns([BASECLASS])][break]
[end loop]
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez //
// felsorolja annak tábláit. (join-ok nélkül!) //
//***************************************************************************//
template GenerateLoadAllAttributesCommandTables(MClass as ENTITY)
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS])]
[end loop]
[end if]
[ConvertNameToSQLTableName([ENTITY.name])]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás lekérdezéséhez //
// felsorolja annak tábláit. (join-ok nélkül!) //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAttributesCommandTablesCore(MClass as ENTITY)
[if (IsMasterEntity([ENTITY]) == "false")]
[loop (ENTITY -> SuperClass as BASECLASS)]
[GenerateLoadAllAttributesCommandTablesCore([BASECLASS])]
[ConvertNameToSQLTableName([ENTITY.name])],[break]
[end loop]
[else]
[ConvertNameToSQLTableName([ENTITY.name])],
[end if]
end template
//***************************************************************************//
// Legenerálja azt az SQL töredéket, ami egy entitás tábláit összekapcsolja. //
// //
// REKURZÍV! //
//***************************************************************************//
template GenerateLoadAllAttributesCommandWhere(MClass as ENTITY)
[if (IsMasterEntity([ENTITY]) == "false")]
([ConvertNameToSQLTableName(GetBaseClassName([ENTITY], "qqq"))].ID = [ConvertNameToSQLTableName([ENTITY.name])].ID)
[if (GetBaseBaseClassName([ENTITY], "") != "")]
[loop (ENTITY -> SuperClass as BASECLASS)]
and
[GenerateLoadAllAttributesCommandWhere([BASECLASS])][break]
[end loop]
[end if]
[end if]
end template