STATIC FUNCTION CreateTable()
TCDelFile("VIEW1")
TCDelFile("VIEW2")
TCDelFile("T1")
TCDelFile("T2")
DBCreate("T1", {{"FIELD_NAME", "C", 10, 0}, ;
{"FIELD_TYPE", "C", 10, 0}}, "TOPCONN")
DBCreate("T2", {{"FIELD_NAME", "C", 10, 0}, ;
{"FIELD_TYPE", "C", 10, 0}, ;
{"FIELD_ID" , "N", 3, 0}}, "TOPCONN")
RETURN
FUNCTION u_TCViewMulti()
TCLink()
CreateTable()
IIF(TCViewMulti("VIEW1", "T1", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .T., ou seja, criou a view VIEW1
IIF(TCViewMulti("VIEW1", "T1", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, VIEW1 já foi criada acima
IIF(TCViewMulti("VIEW2", "VIEW1", "T1,FIELD_NAME,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, não é possível criar uma view a partir de outra view
IIF(TCViewMulti("VIEW2", "T2", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, T2 é uma tabela auxiliar da VIEW1
IIF(TCViewMulti("VIEW2", "T1", "T1,FIELD_NAME,T2,FIELD_VALUE"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, o campo FIELD_VALUE não existe na tabela T2
IIF(TCViewMulti("VIEW2", "T3", "T1,FIELD_NAME,T2,FIELD_TYPE,T2,FIELD_ID"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, a tabela T3 não existe no SGBD
IIF(TCViewMulti("VIEW2", "T1", "T1,FIELD_NAME,T2,FIELD_NAME"), CONOUT('TRUE'), CONOUT('FALSE')) // retorna .F., pois, o campo FIELD_NAME está duplicado
TCUnlink()
RETURN