2025-04-15 12:10:19 +02:00

240 lines
7.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace ArchiviazionePDF
{
public class DBA
{
private TransactionStoredProcedure tsp = new TransactionStoredProcedure();
private byte[] PdfByte(long idPdf)
{
byte[] stream = new byte[0];
try
{
SqlParameter[] parametri = new SqlParameter[1];
parametri[0] = new SqlParameter();
parametri[0].ParameterName = "idPdf";
parametri[0].DbType = DbType.Int64;
parametri[0].Value = idPdf;
object report = ExecuteScalar("SP_PDF_READIMAGE", parametri);
if (report != null)
stream = (byte[])report;
}
catch { stream = new byte[0]; }
return stream;
}
public byte[] BeginArchivioImage(long idPdf)
{
byte[] b = PdfByte(idPdf);
tsp = new TransactionStoredProcedure();
SqlParameter[] parametri = new SqlParameter[2];
parametri[0] = new SqlParameter();
parametri[0].ParameterName = "idPdf";
parametri[0].DbType = DbType.Int64;
parametri[0].Value = idPdf;
parametri[1] = new SqlParameter();
parametri[1].ParameterName = "idProvenienza";
parametri[1].DbType = DbType.String;
parametri[1].Value = "A";
if (b.Length > 0)
tsp.BeginTransactionStoredProcedure("SP_PDF_ARCHIVEIMAGE", parametri);
return b;
}
public void CommitArchivioImage() { tsp.CommitTransactionStoredProcedure(); }
public bool RollbackArchivioImage() { return tsp.RollbackTransactionStoredProcedure(); }
public DataTable DaArchiviare()
{
return ExecuteReader("SP_PDF_DASTORICIZZARE", new SqlParameter[0]);
}
public DataTable DaCancArchiviare()
{
return ExecuteReader("SP_PDF_DACANCELLARE", new SqlParameter[0]);
}
public string AggArchivio()
{
SqlParameter[] parametri = new SqlParameter[1];
parametri[0] = new SqlParameter();
parametri[0].ParameterName = "idProvenienza";
parametri[0].DbType = DbType.String;
parametri[0].Value = "A";
return (string)ExecuteScalar("SP_PDF_CANCELLASTORICIZZATO", parametri);
}
public int CancArchivio(long idPdf)
{
SqlParameter[] parametri = new SqlParameter[1];
parametri[0] = new SqlParameter();
parametri[0].ParameterName = "idPdf";
parametri[0].DbType = DbType.Int64;
parametri[0].Value = idPdf;
parametri[1] = new SqlParameter();
parametri[1].ParameterName = "idProvenienza";
parametri[1].DbType = DbType.String;
parametri[1].Value = "A";
return (int)ExecuteScalar("SP_PDF_CANCELLAARCHIVIATO", parametri);
}
public DataTable DaRestorare()
{
return ExecuteReader("SP_PDF_DARESTORARE", new SqlParameter[0]);
}
public int ScriviErrore(string UtenteWindows,string Errore,string ErroreBreve )
{
SqlParameter[] parametri = new SqlParameter[3];
parametri[0] = new SqlParameter();
parametri[0].ParameterName = "UtenteWindows";
parametri[0].DbType = DbType.String;
parametri[0].Value = UtenteWindows;
parametri[1] = new SqlParameter();
parametri[1].ParameterName = "Errore";
parametri[1].DbType = DbType.String;
parametri[1].Value = Errore;
parametri[2] = new SqlParameter();
parametri[2].ParameterName = "ErroreBreve";
parametri[2].DbType = DbType.String;
parametri[2].Value = ErroreBreve;
return ExecuteNonQuery("sp_insert_errori", parametri);
}
//public int AggPdfArchiviato(long idPdf)
//{
// SqlParameter[] parametri = new SqlParameter[3];
// parametri[0] = new SqlParameter();
// parametri[0].ParameterName = "idPdf";
// parametri[0].DbType = DbType.UInt64;
// parametri[0].Value = idPdf;
// parametri[1] = new SqlParameter();
// parametri[1].ParameterName = "idStato";
// parametri[1].DbType = DbType.String;
// parametri[1].Value = "A";
// parametri[2] = new SqlParameter();
// parametri[2].ParameterName = "idProvenienza";
// parametri[2].DbType = DbType.String;
// parametri[2].Value = "A";
// return ExecuteNonQuery("SP_PDF_UPDATESTATO", parametri);
//}
public void RestorePdf(byte[] pdfData, long idPdf)
{
SqlParameter[] parametri = new SqlParameter[3];
parametri[0] = new SqlParameter();
parametri[0].ParameterName = "idPdf";
parametri[0].DbType = DbType.Int64;
parametri[0].Value = idPdf;
parametri[1] = new SqlParameter();
parametri[1].ParameterName = "Image";
parametri[1].DbType = DbType.Binary;
parametri[1].Value = pdfData;
parametri[2] = new SqlParameter();
parametri[2].ParameterName = "idProvenienza";
parametri[2].DbType = DbType.String;
parametri[2].Value = "R";
ExecuteNonQuery("SP_PDF_RESTOREIMAGE", parametri);
}
private object ExecuteScalar(string sored, SqlParameter[] parametri)
{
SqlConnection Sqlconn = new SqlConnection(Config.connSqlServer);
SqlCommand Sqlcmd = new SqlCommand(sored, Sqlconn);
Sqlcmd.CommandType = CommandType.StoredProcedure;
Sqlcmd.Parameters.AddRange(parametri);
Sqlconn.Open();
object o = Sqlcmd.ExecuteScalar();
Sqlconn.Close();
return o;
}
private DataTable ExecuteReader(string sored, SqlParameter[] parametri)
{
SqlConnection Sqlconn = new SqlConnection(Config.connSqlServer);
SqlCommand Sqlcmd = new SqlCommand(sored, Sqlconn);
Sqlcmd.CommandType = CommandType.StoredProcedure;
Sqlcmd.Parameters.AddRange(parametri);
Sqlconn.Open();
SqlDataReader myReader = Sqlcmd.ExecuteReader();
DataTable dt = new DataTable(sored);
foreach (DataRow dr in myReader.GetSchemaTable().Rows)
dt.Columns.Add(dr["ColumnName"].ToString());
while (myReader.Read())
{
DataRow dr = dt.NewRow();
for (int r = 0; r < myReader.FieldCount; r++)
{
dr[r] = myReader[r];
}
dt.Rows.Add(dr);
}
myReader.Close();
return dt;
}
private int ExecuteNonQuery(string sored, SqlParameter[] parametri)
{
SqlConnection Sqlconn = new SqlConnection(Config.connSqlServer);
SqlCommand Sqlcmd = new SqlCommand(sored, Sqlconn);
Sqlcmd.CommandType = CommandType.StoredProcedure;
Sqlcmd.Parameters.AddRange(parametri);
Sqlconn.Open();
int o = Sqlcmd.ExecuteNonQuery();
Sqlconn.Close();
return o;
}
}
}