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. |