sabato 19 maggio 2018

Accesso al database Oracle tramite c#

Piccolo esempio che illustra un accesso al database Oracle tramite statement e una restituzione del numero di record presenti sulla tabella Authors in c#.
E' stato utilizzata la libreria OracleClient da referenziare nel progetto .Net in Visual Studio

//using System.Data.OracleClient;

private static void testConnectionDB()
{
OracleConnection conn = new OracleConnection(oraConn);
int intRecord = 0;
string str1="Florence";
string str2="Italy";
try
{
 conn.Open();
 OracleCommand cmd = conn.CreateCommand();

 cmd.CommandType = CommandType.Text;
 cmd.CommandText = "select count(*) as numAuthors from Authors +
     " where field1 =:strField1 and field2 =:strField2";

 cmd.Parameters.AddWithValue("strField1", str1);
 cmd.Parameters.AddWithValue("strField2", str2);

 intRecord = Convert.ToInt32(cmd.ExecuteScalar()); 
  
}
catch (Exception ex)
{
 log.Error(ex.Message);
}
finally
{
   cmd.Dispose();

   if (conn.State != ConnectionState.Closed)
   {
    conn.Close();
   }
}

mercoledì 14 marzo 2018

Resize image e rotate image in php prima di eseguire un update su MySql

Immaginiamo un form in php con un'immagine da uploadare su db Mysql e la vogliamo ridimensionare e ruotare prima di inserirla o aggiornarla.
Ecco un esempio di codice php per aggiornare una tabella in un database con un'immagine ridimensionata e ruotata a 90 gradi:
$pdo = Database::connect();
$idArticle=$_POST["idart"];

$query = "SELECT Image FROM Table WHERE Id=?"; 
try{
 $pdo_statement = $pdo->prepare($query);
 $pdo_statement->bindParam(1,$idArticle );
 $pdo_statement->execute();
 
 $num = $pdo_statement->rowCount();

 if ($num) {
  $row = $pdo_statement->fetch(PDO::FETCH_ASSOC);
  if($row['Image']!=null){
   $image = imagecreatefromstring($row['Image']);
   $w = imagesx($image);
   $h = imagesy($image);
   
   //resize image
   $ratio=0.5;
   $larg = $w/$ratio;
   $alt = $h/$ratio;
   $image = imagescale($image, $larg, $alt);
   
   ob_start();
   
   //rotate image
   $transp = imagecolorallocatealpha($image,0,0,0,127 );
   $image  = imagerotate($image, 90, $transp, 1);
   
   imagejpeg($image);

   $contents = ob_get_contents();
   ob_end_clean();

   imagedestroy($image);

   $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
   $sql = "UPDATE Table set Image=? WHERE Id=?";
   $pdo = $pdo->prepare($sql);
   $pdo->bindParam(1, $contents, PDO::PARAM_LOB);
   $pdo->bindParam(2, $idArticle);

   $pdo->execute();
   
   echo " img src='data:image/jpeg;base64,".base64_encode($contents)."' / ";
  }
 }else{
  return null;
 }
}catch(PDOException $e) 
{
 echo $e->getMessage();
}

Database::disconnect();