Dins de la clsDades hi ha aquesta és una petita funció que s'encarrega de crear un paràmetre de SQLServer a partir de la informació guardada en un objecte clsCamp. L'única variació que té és en el INSERT, que quan es tracta d'una identitat cal recuperar el valor que es genera. Per això en aquest cas es posa el paràmetre de sortida (output). Aquesta funció es fa servir en la resta de funcions que veurem, les que invoquen a les seves corresponents stored procedures. Poso el codi a continuació, es pot seguir fàcilment.
private SqlParameter CreaParametre(clsCamp Camp, bool INSERT)
{
SqlParameter SqlParam;
SqlParam = new SqlParameter();
if (INSERT)
{
if ((TeIdentitat) && (Camp.NomCamp == Identitat)) SqlParam.Direction = ParameterDirection.Output;
else SqlParam.Direction = ParameterDirection.Input;
}
else SqlParam.Direction = ParameterDirection.Input;
SqlParam.ParameterName = Prefix + Camp.NomCamp;
switch (Camp.Tipus)
{
case Tipus.bit:
SqlParam.SqlDbType = SqlDbType.Bit;
break;
case Tipus.tint:
SqlParam.SqlDbType = SqlDbType.Int;
break;
case Tipus.bigint:
SqlParam.SqlDbType = SqlDbType.BigInt;
break;
case Tipus.nvarchar:
SqlParam.SqlDbType = SqlDbType.NVarChar;
SqlParam.Size = Camp.Longitud;
break;
case Tipus.date:
SqlParam.SqlDbType = SqlDbType.Date;
break;
case Tipus.time:
SqlParam.SqlDbType = SqlDbType.Time;
break;
case Tipus.datetime:
SqlParam.SqlDbType = SqlDbType.DateTime;
break;
case Tipus.nchar:
SqlParam.SqlDbType = SqlDbType.NChar;
SqlParam.Size = Camp.Longitud;
break;
case Tipus.dec:
SqlParam.SqlDbType = SqlDbType.Decimal;
SqlParam.Precision = Camp.Precisio;
SqlParam.Scale = Camp.Escala;
break;
case Tipus.chr:
SqlParam.SqlDbType = SqlDbType.Char;
SqlParam.Size = Camp.Longitud;
break;
case Tipus.varchar:
SqlParam.SqlDbType = SqlDbType.VarChar;
SqlParam.Size = Camp.Longitud;
break;
}
return SqlParam;
}
|