| La clase clsDades, que veurem en detall, conté els mètodes per invocar les SP i les declaracions de variables que fan servir aquests mètodes. En canvi una classe derivada només té les inicialitzacions d'aquestes variables. El programa que genera la capa de dades crea automàticament aquestes inicialitzacions. Es a dir que el següent tros de programa està generat, no picat. Poso un exemple qualsevol, és només indicatiu. 
public class clsClassificacio : clsDades
{
	
	
	
	
	public clsClassificacio(string pCadConnBBDD)
	{
		spINS = "DI_EXP_CLASSIFICACIO_INS";
		spUPD = "DI_EXP_CLASSIFICACIO_UPD";
		spGET = "DI_EXP_CLASSIFICACIO_GET";
		spCOUNT = "DI_EXP_CLASSIFICACIO_COUNT";
		spQUERY = "DI_EXP_CLASSIFICACIO_QUERY";
		spDEL = "DI_EXP_CLASSIFICACIO_DEL";
		TeIdentitat = true;
		Identitat = "PK_Classificacio";
		NomTaula = "DI_EXP_CLASSIFICACIO";
		TeCache = false;
		CadConnBBDD = pCadConnBBDD;
		ParamsGET = new clsCamp[7];
		for (int i = 0; i < 7; i++) ParamsGET[i] = new clsCamp();
	#region Llista params GET
		ParamsGET[0].NomCamp = "PK_Classificacio";
		ParamsGET[0].Tipus = Tipus.tint;
		ParamsGET[0].PK = true;
		ParamsGET[0].Identitat = true;
		ParamsGET[0].Nulable = false;
		ParamsGET[1].NomCamp = "Nom";
		ParamsGET[1].Tipus = Tipus.nvarchar;
		ParamsGET[1].Longitud = 200;
		ParamsGET[1].Nulable = false;
		ParamsGET[2].NomCamp = "PK_Arxiu";
		ParamsGET[2].Tipus = Tipus.tint;
		ParamsGET[3].NomCamp = "Codi_TC";
		ParamsGET[3].Tipus = Tipus.nvarchar;
		ParamsGET[3].Longitud = 5;
		ParamsGET[3].Nulable = false;
		ParamsGET[4].NomCamp = "Nivell_Codi";
		ParamsGET[4].Tipus = Tipus.nvarchar;
		ParamsGET[4].Longitud = 100;
		ParamsGET[4].Nulable = false;
		ParamsGET[5].NomCamp = "IdPare";
		ParamsGET[5].Tipus = Tipus.tint;
		ParamsGET[5].Nulable = false;
		ParamsGET[6].NomCamp = "FK_TAAD";
		ParamsGET[6].Tipus = Tipus.tint;
	#endregion
		ParamsINS = new clsCamp[10];
		for (int i = 0; i < 10; i++) ParamsINS[i] = new clsCamp();
	#region Llista params INS
		ParamsINS[0].NomCamp = "PK_Classificacio";
		ParamsINS[0].Tipus = Tipus.tint;
		ParamsINS[0].PK = true;
		ParamsINS[0].Identitat = true;
		ParamsINS[0].Nulable = false;
		ParamsINS[1].NomCamp = "Codi_TC";
		ParamsINS[1].Tipus = Tipus.varchar;
		ParamsINS[1].Longitud = 5;
		ParamsINS[1].Nulable = false;
		ParamsINS[2].NomCamp = "Observacions";
		ParamsINS[2].Tipus = Tipus.varchar;
		ParamsINS[2].Longitud = 3000;
		ParamsINS[3].NomCamp = "DataAlta";
		ParamsINS[3].Tipus = Tipus.datetime;
		ParamsINS[4].NomCamp = "DataBaixa";
		ParamsINS[4].Tipus = Tipus.datetime;
		ParamsINS[5].NomCamp = "Any_inici";
		ParamsINS[5].Tipus = Tipus.tint;
		ParamsINS[5].Nulable = false;
		ParamsINS[6].NomCamp = "Any_final";
		ParamsINS[6].Tipus = Tipus.tint;
		ParamsINS[6].Nulable = false;
		ParamsINS[7].NomCamp = "IdPare";
		ParamsINS[7].Tipus = Tipus.tint;
		ParamsINS[7].Nulable = false;
		ParamsINS[8].NomCamp = "Nom";
		ParamsINS[8].Tipus = Tipus.nvarchar;
		ParamsINS[8].Longitud = 200;
		ParamsINS[8].Nulable = false;
		ParamsINS[9].NomCamp = "Nivell_Codi";
		ParamsINS[9].Tipus = Tipus.varchar;
		ParamsINS[9].Longitud = 100;
		ParamsINS[9].Nulable = false;
	#endregion
		ParamsUPD = new clsCamp[10];
		for (int i = 0; i < 10; i++) ParamsUPD[i] = new clsCamp();
	#region Llista params UPD
		ParamsUPD[0].NomCamp = "PK_Classificacio";
		ParamsUPD[0].Tipus = Tipus.tint;
		ParamsUPD[0].PK = true;
		ParamsUPD[0].Identitat = true;
		ParamsUPD[0].Nulable = false;
		ParamsUPD[1].NomCamp = "Codi_TC";
		ParamsUPD[1].Tipus = Tipus.varchar;
		ParamsUPD[1].Longitud = 5;
		ParamsUPD[1].Nulable = false;
		ParamsUPD[2].NomCamp = "Observacions";
		ParamsUPD[2].Tipus = Tipus.varchar;
		ParamsUPD[2].Longitud = 3000;
		ParamsUPD[3].NomCamp = "DataAlta";
		ParamsUPD[3].Tipus = Tipus.datetime;
		ParamsUPD[4].NomCamp = "DataBaixa";
		ParamsUPD[4].Tipus = Tipus.datetime;
		ParamsUPD[5].NomCamp = "Any_inici";
		ParamsUPD[5].Tipus = Tipus.tint;
		ParamsUPD[5].Nulable = false;
		ParamsUPD[6].NomCamp = "Any_final";
		ParamsUPD[6].Tipus = Tipus.tint;
		ParamsUPD[6].Nulable = false;
		ParamsUPD[7].NomCamp = "IdPare";
		ParamsUPD[7].Tipus = Tipus.tint;
		ParamsUPD[7].Nulable = false;
		ParamsUPD[8].NomCamp = "Nom";
		ParamsUPD[8].Tipus = Tipus.nvarchar;
		ParamsUPD[8].Longitud = 200;
		ParamsUPD[8].Nulable = false;
		ParamsUPD[9].NomCamp = "Nivell_Codi";
		ParamsUPD[9].Tipus = Tipus.varchar;
		ParamsUPD[9].Longitud = 100;
		ParamsUPD[9].Nulable = false;
	#endregion
		ParamsDEL = new clsCamp[7];
		for (int i = 0; i < 7; i++) ParamsDEL[i] = new clsCamp();
	#region Llista params DEL
		ParamsDEL[0].NomCamp = "PK_Classificacio";
		ParamsDEL[0].Tipus = Tipus.tint;
		ParamsDEL[0].PK = true;
		ParamsDEL[0].Identitat = true;
		ParamsDEL[0].Nulable = false;
		ParamsDEL[1].NomCamp = "Nom";
		ParamsDEL[1].Tipus = Tipus.nvarchar;
		ParamsDEL[1].Longitud = 200;
		ParamsDEL[1].Nulable = false;
		ParamsDEL[2].NomCamp = "PK_Arxiu";
		ParamsDEL[2].Tipus = Tipus.tint;
		ParamsDEL[3].NomCamp = "Codi_TC";
		ParamsDEL[3].Tipus = Tipus.nvarchar;
		ParamsDEL[3].Longitud = 5;
		ParamsDEL[3].Nulable = false;
		ParamsDEL[4].NomCamp = "Nivell_Codi";
		ParamsDEL[4].Tipus = Tipus.nvarchar;
		ParamsDEL[4].Longitud = 100;
		ParamsDEL[4].Nulable = false;
		ParamsDEL[5].NomCamp = "IdPare";
		ParamsDEL[5].Tipus = Tipus.tint;
		ParamsDEL[5].Nulable = false;
		ParamsDEL[6].NomCamp = "FK_TAAD";
		ParamsDEL[6].Tipus = Tipus.tint;
	#endregion
		ParamsQUERY = new clsCamp[7];
		for (int i = 0; i < 7; i++) ParamsQUERY[i] = new clsCamp();
	#region Llista params QUERY
		ParamsQUERY[0].NomCamp = "PK_Classificacio";
		ParamsQUERY[0].Tipus = Tipus.tint;
		ParamsQUERY[0].PK = true;
		ParamsQUERY[0].Identitat = true;
		ParamsQUERY[0].Nulable = false;
		ParamsQUERY[1].NomCamp = "Nom";
		ParamsQUERY[1].Tipus = Tipus.nvarchar;
		ParamsQUERY[1].Longitud = 200;
		ParamsQUERY[1].Nulable = false;
		ParamsQUERY[2].NomCamp = "PK_Arxiu";
		ParamsQUERY[2].Tipus = Tipus.tint;
		ParamsQUERY[3].NomCamp = "Codi_TC";
		ParamsQUERY[3].Tipus = Tipus.nvarchar;
		ParamsQUERY[3].Longitud = 5;
		ParamsQUERY[3].Nulable = false;
		ParamsQUERY[4].NomCamp = "Nivell_Codi";
		ParamsQUERY[4].Tipus = Tipus.nvarchar;
		ParamsQUERY[4].Longitud = 100;
		ParamsQUERY[4].Nulable = false;
		ParamsQUERY[5].NomCamp = "IdPare";
		ParamsQUERY[5].Tipus = Tipus.tint;
		ParamsQUERY[5].Nulable = false;
		ParamsQUERY[6].NomCamp = "FK_TAAD";
		ParamsQUERY[6].Tipus = Tipus.tint;
	#endregion
		CampsResultat = new clsCamp[10];
		for (int i = 0; i < 10; i++) CampsResultat[i] = new clsCamp();
	#region Camps resultat
		CampsResultat[0].NomCamp = "PK_Classificacio";
		CampsResultat[0].Tipus = Tipus.tint;
		CampsResultat[0].PK = true;
		CampsResultat[0].Identitat = true;
		CampsResultat[0].Nulable = false;
		CampsResultat[1].NomCamp = "Codi_TC";
		CampsResultat[1].Tipus = Tipus.varchar;
		CampsResultat[1].Longitud = 5;
		CampsResultat[1].Nulable = false;
		CampsResultat[2].NomCamp = "Observacions";
		CampsResultat[2].Tipus = Tipus.varchar;
		CampsResultat[2].Longitud = 3000;
		CampsResultat[3].NomCamp = "DataAlta";
		CampsResultat[3].Tipus = Tipus.datetime;
		CampsResultat[4].NomCamp = "DataBaixa";
		CampsResultat[4].Tipus = Tipus.datetime;
		CampsResultat[5].NomCamp = "Any_inici";
		CampsResultat[5].Tipus = Tipus.tint;
		CampsResultat[5].Nulable = false;
		CampsResultat[6].NomCamp = "Any_final";
		CampsResultat[6].Tipus = Tipus.tint;
		CampsResultat[6].Nulable = false;
		CampsResultat[7].NomCamp = "IdPare";
		CampsResultat[7].Tipus = Tipus.tint;
		CampsResultat[7].Nulable = false;
		CampsResultat[8].NomCamp = "Nom";
		CampsResultat[8].Tipus = Tipus.nvarchar;
		CampsResultat[8].Longitud = 200;
		CampsResultat[8].Nulable = false;
		CampsResultat[9].NomCamp = "Nivell_Codi";
		CampsResultat[9].Tipus = Tipus.varchar;
		CampsResultat[9].Longitud = 100;
		CampsResultat[9].Nulable = false;
	#endregion
		Serialitzar = new clsCamp[10];
		for (int i = 0; i < 10; i++) Serialitzar[i] = new clsCamp();
	#region Camps a serialitzar
		Serialitzar[0].NomCamp = "PK_Classificacio";
		Serialitzar[0].Tipus = Tipus.tint;
		Serialitzar[1].NomCamp = "Codi_TC";
		Serialitzar[1].Tipus = Tipus.varchar;
		Serialitzar[1].Longitud = 5;
		Serialitzar[2].NomCamp = "Observacions";
		Serialitzar[2].Tipus = Tipus.varchar;
		Serialitzar[2].Longitud = 3000;
		Serialitzar[3].NomCamp = "DataAlta";
		Serialitzar[3].Tipus = Tipus.datetime;
		Serialitzar[4].NomCamp = "DataBaixa";
		Serialitzar[4].Tipus = Tipus.datetime;
		Serialitzar[5].NomCamp = "Any_inici";
		Serialitzar[5].Tipus = Tipus.tint;
		Serialitzar[6].NomCamp = "Any_final";
		Serialitzar[6].Tipus = Tipus.tint;
		Serialitzar[7].NomCamp = "IdPare";
		Serialitzar[7].Tipus = Tipus.tint;
		Serialitzar[8].NomCamp = "Nom";
		Serialitzar[8].Tipus = Tipus.nvarchar;
		Serialitzar[8].Longitud = 200;
		Serialitzar[9].NomCamp = "Nivell_Codi";
		Serialitzar[9].Tipus = Tipus.varchar;
		Serialitzar[9].Longitud = 100;
	#endregion
		Deserialitzar = new clsCamp[9];
		for (int i = 0; i < 9; i++) Deserialitzar[i] = new clsCamp();
	#region Camps a Deserialitzar
		Deserialitzar[0].NomCamp = "Codi_TC";
		Deserialitzar[0].Tipus = Tipus.varchar;
		Deserialitzar[0].Longitud = 5;
		Deserialitzar[1].NomCamp = "Observacions";
		Deserialitzar[1].Tipus = Tipus.varchar;
		Deserialitzar[1].Longitud = 3000;
		Deserialitzar[2].NomCamp = "DataAlta";
		Deserialitzar[2].Tipus = Tipus.datetime;
		Deserialitzar[3].NomCamp = "DataBaixa";
		Deserialitzar[3].Tipus = Tipus.datetime;
		Deserialitzar[4].NomCamp = "Any_inici";
		Deserialitzar[4].Tipus = Tipus.tint;
		Deserialitzar[5].NomCamp = "Any_final";
		Deserialitzar[5].Tipus = Tipus.tint;
		Deserialitzar[6].NomCamp = "IdPare";
		Deserialitzar[6].Tipus = Tipus.tint;
		Deserialitzar[7].NomCamp = "Nom";
		Deserialitzar[7].Tipus = Tipus.nvarchar;
		Deserialitzar[7].Longitud = 200;
		Deserialitzar[8].NomCamp = "Nivell_Codi";
		Deserialitzar[8].Tipus = Tipus.varchar;
		Deserialitzar[8].Longitud = 100;
	#endregion
	}
}
 Com es pot veure picar això a mà seria mortal, per aquest motiu hi ha un software que ho genera. Els paràmetres de les SP els obté de les pròpies SP, es a dir, han d'estar generades prèviament, abans de generar aquesta classe. La resta de llistes les obté a partir dels camps de la taula que estan al software generador. Si es marca un camp per serialitzar apareixerà a la llista de "Serialitzar", si es marca per deserialitzar... ja es veu la idea. Llavors la capa d'accés a BBDD es compon de la clsDades i un munt de classes derivades. |