Ejemplo n.º 1
0
 /// <summary>
 /// Adiciona nomes de <c>stored procedures</c> às <see cref="DataTable"/>s especificadas,
 /// que serão utilizados no <see cref="CommitChanges"/>, ao invés de gerar SQL padrão.
 /// </summary>
 /// <param name="prefixo">O prefixo das <c>stored procedures</c>.</param>
 /// <param name="ops">As operações para as quais deve ser adicionado o nome de <c>stored procedure</c></param>
 /// <param name="tables">As tabelas onde as <c>stored procedures</c> serão atribuídas</param>
 /// <remarks>
 /// Os nomes de <c>stored procedure</c> adicionados terão o seguinte formato:
 ///
 /// <list type="bullet">
 ///		<item>
 ///			<strong>Insert: </strong>
 ///			<paramref name="prefixo"/> INS_ <c>nome da tabela</c>
 ///		</item>
 ///		<item>
 ///			<strong>Update: </strong>
 ///			<paramref name="prefixo"/> UPD_ <c>nome da tabela</c>
 ///		</item>
 ///		<item>
 ///			<strong>Delete: </strong>
 ///			<paramref name="prefixo"/> DEL_ <c>nome da tabela</c>
 ///		</item>
 /// </list>
 ///
 /// As <c>stored procedures</c> devem ter um formato específico:
 /// <list type="definition">
 ///		<item>
 ///			<term>INSERT</term>
 ///			<description>
 ///				Deve ter um parâmetro para cada campo da tabela, com exceção de valores
 ///				<see cref="DataColumn.AutoIncrement"/>, e um parâmetro
 ///				<see cref="ParameterDirection.Output"/> para o retorno dos valores
 ///				<see cref="DataColumn.AutoIncrement"/>.
 ///			</description>
 ///		</item>
 ///		<item>
 ///			<term>DELETE</term>
 ///			<description>
 ///				Deve ter um parâmetro para cada campo que compõe a chave primária da tabela.
 ///			</description>
 ///		</item>
 ///		<item>
 ///			<term>UPDATE</term>
 ///			<description>
 ///				Dele ter um parâmetro para cada campo, seja chave primária ou não.
 ///			</description>
 ///		</item>
 /// </list>
 /// </remarks>
 protected void AddStoredProcedureForCommiting(string prefixo, AdpCommandOperation ops, params DataTable[] tables)
 {
     foreach (DataTable dt in tables)
     {
         string fmt = prefixo + "{0}_" + dt.TableName;
         if ((ops & AdpCommandOperation.Insert) != 0)
         {
             SetStoredProcedureForCommiting(dt, AdpCommandOperation.Insert, String.Format(fmt, "INS"));
         }
         if ((ops & AdpCommandOperation.Update) != 0)
         {
             SetStoredProcedureForCommiting(dt, AdpCommandOperation.Update, String.Format(fmt, "UPD"));
         }
         if ((ops & AdpCommandOperation.Delete) != 0)
         {
             SetStoredProcedureForCommiting(dt, AdpCommandOperation.Delete, String.Format(fmt, "DEL"));
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Retorna o nome da <c>stored procedure</c> atribuída à <see cref="DataTable"/>
 /// especificada em <paramref name="dt"/>.
 /// </summary>
 /// <param name="dt">A <see cref="DataTable"/></param>
 /// <param name="op">A operação, conforme <see cref="AdpCommandOperation"/></param>
 /// <returns>O nome da <c>stored procedure</c>, ou null.</returns>
 protected string GetStoredProcedureForCommiting(DataTable dt, AdpCommandOperation op)
 {
     return(dt.ExtendedProperties["storedproc_" + op] as string);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Atribui o nome de <c>stored procedures</c> à <see cref="DataTable"/> especificada.
 /// A <c>stored procedure</c> será utilizada no <see cref="CommitChanges"/>, ao invés
 /// da geração de SQL padrão.
 /// </summary>
 /// <param name="dt">A <see cref="DataTable"/></param>
 /// <param name="op">A operação, conforme <see cref="AdpCommandOperation"/></param>
 /// <param name="procName">O nome da <c>stored procedure</c></param>
 /// <remarks>
 /// As <c>stored procedures</c> devem ter um formato específico:
 /// <list type="definition">
 ///		<item>
 ///			<term>INSERT</term>
 ///			<description>
 ///				Deve ter um parâmetro para cada campo da tabela, com exceção de valores
 ///				<see cref="DataColumn.AutoIncrement"/>, e um parâmetro
 ///				<see cref="ParameterDirection.Output"/> para o retorno dos valores
 ///				<see cref="DataColumn.AutoIncrement"/>.
 ///			</description>
 ///		</item>
 ///		<item>
 ///			<term>DELETE</term>
 ///			<description>
 ///				Deve ter um parâmetro para cada campo que compõe a chave primária da tabela.
 ///			</description>
 ///		</item>
 ///		<item>
 ///			<term>UPDATE</term>
 ///			<description>
 ///				Dele ter um parâmetro para cada campo, seja chave primária ou não.
 ///			</description>
 ///		</item>
 /// </list>
 /// </remarks>
 protected void SetStoredProcedureForCommiting(DataTable dt, AdpCommandOperation op, string procName)
 {
     dt.ExtendedProperties["storedproc_" + op] = procName;
 }
Ejemplo n.º 4
0
		/// <summary>
		/// Retorna o nome da <c>stored procedure</c> atribuída à <see cref="DataTable"/>
		/// especificada em <paramref name="dt"/>.
		/// </summary>
		/// <param name="dt">A <see cref="DataTable"/></param>
		/// <param name="op">A operação, conforme <see cref="AdpCommandOperation"/></param>
		/// <returns>O nome da <c>stored procedure</c>, ou null.</returns>
		protected string GetStoredProcedureForCommiting(DataTable dt, AdpCommandOperation op)
		{
			return dt.ExtendedProperties["storedproc_"+op] as string;
		}
Ejemplo n.º 5
0
		/// <summary>
		/// Atribui o nome de <c>stored procedures</c> à <see cref="DataTable"/> especificada.
		/// A <c>stored procedure</c> será utilizada no <see cref="CommitChanges"/>, ao invés 
		/// da geração de SQL padrão.
		/// </summary>
		/// <param name="dt">A <see cref="DataTable"/></param>
		/// <param name="op">A operação, conforme <see cref="AdpCommandOperation"/></param>
		/// <param name="procName">O nome da <c>stored procedure</c></param>
		/// <remarks>
		/// As <c>stored procedures</c> devem ter um formato específico:
		/// <list type="definition">
		///		<item>
		///			<term>INSERT</term>
		///			<description>
		///				Deve ter um parâmetro para cada campo da tabela, com exceção de valores 
		///				<see cref="DataColumn.AutoIncrement"/>, e um parâmetro 
		///				<see cref="ParameterDirection.Output"/> para o retorno dos valores
		///				<see cref="DataColumn.AutoIncrement"/>.
		///			</description>
		///		</item>
		///		<item>
		///			<term>DELETE</term>
		///			<description>
		///				Deve ter um parâmetro para cada campo que compõe a chave primária da tabela.
		///			</description>
		///		</item>
		///		<item>
		///			<term>UPDATE</term>
		///			<description>
		///				Dele ter um parâmetro para cada campo, seja chave primária ou não.
		///			</description>
		///		</item>
		/// </list>
		/// </remarks>
		protected void SetStoredProcedureForCommiting(DataTable dt, AdpCommandOperation op, string procName)
		{
			dt.ExtendedProperties["storedproc_"+op] = procName;
		}
Ejemplo n.º 6
0
		/// <summary>
		/// Adiciona nomes de <c>stored procedures</c> às <see cref="DataTable"/>s especificadas,
		/// que serão utilizados no <see cref="CommitChanges"/>, ao invés de gerar SQL padrão.
		/// </summary>
		/// <param name="prefixo">O prefixo das <c>stored procedures</c>.</param>
		/// <param name="ops">As operações para as quais deve ser adicionado o nome de <c>stored procedure</c></param>
		/// <param name="tables">As tabelas onde as <c>stored procedures</c> serão atribuídas</param>
		/// <remarks>
		/// Os nomes de <c>stored procedure</c> adicionados terão o seguinte formato:
		/// 
		/// <list type="bullet">
		///		<item>
		///			<strong>Insert: </strong>
		///			<paramref name="prefixo"/> INS_ <c>nome da tabela</c>
		///		</item>
		///		<item>
		///			<strong>Update: </strong>
		///			<paramref name="prefixo"/> UPD_ <c>nome da tabela</c>
		///		</item>
		///		<item>
		///			<strong>Delete: </strong>
		///			<paramref name="prefixo"/> DEL_ <c>nome da tabela</c>
		///		</item>
		/// </list>
		/// 
		/// As <c>stored procedures</c> devem ter um formato específico:
		/// <list type="definition">
		///		<item>
		///			<term>INSERT</term>
		///			<description>
		///				Deve ter um parâmetro para cada campo da tabela, com exceção de valores 
		///				<see cref="DataColumn.AutoIncrement"/>, e um parâmetro 
		///				<see cref="ParameterDirection.Output"/> para o retorno dos valores
		///				<see cref="DataColumn.AutoIncrement"/>.
		///			</description>
		///		</item>
		///		<item>
		///			<term>DELETE</term>
		///			<description>
		///				Deve ter um parâmetro para cada campo que compõe a chave primária da tabela.
		///			</description>
		///		</item>
		///		<item>
		///			<term>UPDATE</term>
		///			<description>
		///				Dele ter um parâmetro para cada campo, seja chave primária ou não.
		///			</description>
		///		</item>
		/// </list>
		/// </remarks>
		protected void AddStoredProcedureForCommiting(string prefixo, AdpCommandOperation ops, params DataTable[] tables)
		{
			foreach (DataTable dt in tables)
			{
				string fmt = prefixo + "{0}_" + dt.TableName;
				if ((ops & AdpCommandOperation.Insert) != 0)
					SetStoredProcedureForCommiting(dt, AdpCommandOperation.Insert, String.Format(fmt, "INS"));
				if ((ops & AdpCommandOperation.Update) != 0)
					SetStoredProcedureForCommiting(dt, AdpCommandOperation.Update, String.Format(fmt, "UPD"));
				if ((ops & AdpCommandOperation.Delete) != 0)
					SetStoredProcedureForCommiting(dt, AdpCommandOperation.Delete, String.Format(fmt, "DEL"));
			}
		}