using System; using System.Web; using System.Data; using System.Data.Odbc; namespace MySQL { /// /// Acesso à DB /// public class sql { private OdbcConnection sqlConnection; private string sqlQuery; private string stringConnection; /// /// Construtor de acesso à DB /// /// Connection String public sql(string sqlConn) { stringConnection = sqlConn; } /// /// Fecho de ligação DB /// public void closeConnection() { // FECHAR LIGAÇÃO À DB try { if (sqlConnection != null) sqlConnection.Close(); } catch (Exception) { } } /// /// Query SQL /// public string Query { get { return sqlQuery; } set { sqlQuery = value; } } /// /// Escrita da query na DB /// /// True ou false public bool Write() { bool escrita = false; using (OdbcConnection sqlConnectionWrite = new OdbcConnection(stringConnection)) { try { sqlConnectionWrite.Open(); } catch { return false; } using (OdbcCommand sqlCommand = new OdbcCommand(sqlQuery, sqlConnectionWrite)) { try { sqlCommand.ExecuteNonQuery(); escrita = true; } catch (Exception ex) { RegistoErros(ex.Message); escrita = false; } } } return escrita; } /// /// Leitura da query na DB /// /// Toda a informação numa DataTable public DataTable Read() { DataTable dtResult = new DataTable(); using (OdbcConnection sqlConnectionRead = new OdbcConnection(stringConnection)) { try { sqlConnectionRead.Open(); } catch { return null; } using (OdbcCommand sqlCommand = new OdbcCommand(sqlQuery, sqlConnectionRead)) { using (OdbcDataAdapter sqlAdapter = new OdbcDataAdapter(sqlCommand)) { try { sqlAdapter.Fill(dtResult); } catch (Exception ex) { RegistoErros(ex.Message); } } } } return dtResult; } /// /// Registo de erros /// private void RegistoErros(string Erro) { string query = ""; try { // UTILIZADOR AUTENTICADO Intranet.Users intranetUser = (Intranet.Users)HttpContext.Current.Session["intranetUser"]; query = "INSERT INTO sys_errosql(createuser, createdep, createdata, query, descricao) " + "VALUES ( " + intranetUser.ID + ", " + " " + intranetUser.Departamento.ID + ", " + " now(), " + " '" + sqlQuery.Replace("'", "\"") + "', " + " '" + Erro.Replace("'", "`") + "')"; } catch (Exception) { // UTILIZADOR ANÓNIMO query = "INSERT INTO sys_errosql(createuser, createdep, createdata, query, descricao) " + "VALUES ( 0, " + " 0, " + " now(), " + " '" + sqlQuery.Replace("'", "\"") + "', " + " '" + Erro.Replace("'", "`") + "')"; } OdbcCommand sqlCommand = new OdbcCommand(query); sqlCommand.Connection = sqlConnection; try { sqlCommand.ExecuteNonQuery(); } catch (Exception ex) { } } } }