giovedì 27 dicembre 2012

Esempio di più operazioni in una store procedure


Il codice seguente è stato testato su di un database Oracle e mostra come si possono eseguire più operazioni in una store procedure puntando su diverse tabelle.
Ci sono esempi di select, update, delete, condizioni e loop.
Si possono portare le seguenti istruzioni anche su di un altro database modificando opportunatamente la sintassi.
(Non sempre vengono utilizzate le stesse istruzioni su db diversi).

CREATE OR REPLACE PROCEDURE TSP.procedure_example(
 typeMarket  IN varchar2,
 inDayMarket   IN varchar2
)

is

selectCursor    sys_refcursor;
rowToUpdate     TSP.tbl_market_1%ROWTYPE;

begin

-- example of condition and select on first table

 IF procedure_example.typeMarket='CONSUMER' THEN
 open selectCursor for
 SELECT TSP.tbl_market_1.*
 FROM TSP.tbl_market_1
 WHERE ((tbl_market_1.field_example_1 = 1);

-- loop example: update for all records of 'select' on second table

LOOP
 fetch selectCursor into rowToUpdate;
 exit when selectCursor%NOTFOUND;

 update  TSP.tbl_market_2 set
 field_example_3=10,
 where   TSP.tbl_market_2.id = rowToUpdate.id;

END LOOP;

close selectCursor;

END IF;

-- example update on first table

update   TSP.tbl_market_1 set field_example_2 = 0
where   day_market = procedure_example.inDayMarket
and     market_ref = procedure_example.typeMarket;

-- example delete on second table

delete   from TSP.tbl_market_2
where   day_market = procedure_example.inDayMarket;

end;

domenica 23 dicembre 2012

Vibrazione telefono in Android

Queste poche righe associate ad un evento in java permettono di far vibrare il telefono per un periodo di tempo.
Non si deve però dimenticare di aggiornare l' AndroidManifest con la uses-permission.

Button btnExample = (Button) findViewById(R.id.btn_example);
btnExample.setOnClickListener(new View.OnClickListener() {
 public void onClick(View v) {
 Vibrator vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
 vi.vibrate(600); //600 milliseconds
 }
});

Istruzione da implementare nel AndroidManifest
...
 </application>
 <uses-permission android:name="android.permission.VIBRATE"/>
</manifest>

martedì 18 dicembre 2012

Apertura di una nuova Activity in Android

Con poche istruzioni è possibile aprire una nuova Activity in Android; in questo caso il nome è 'NewActivity'.
Prima di effettuare la chiamata, configurare l'activity nell AndroidManifest.xml e creare un layout.
Più in basso alcune righe per eseguire una nuova activity da un pulsante di "Menu".
Intent intentStat = new Intent();
intentStat.setClassName(getPackageName(), getPackageName()+".NewActivity"); 
startActivity(intentStat);

Nuova Activity in un pulsante Menu.
public boolean onCreateOptionsMenu(Menu menu){  
 MenuInflater inflater = getMenuInflater();   
 inflater.inflate(R.menu.menu_newactivity, menu);
 return super.onCreateOptionsMenu(menu);
}

blic boolean onOptionsItemSelected(MenuItem item)
{
 switch (item.getItemId()){
  case R.id.button_example:
   Intent intentSolution = new Intent();
   intentSolution.setClassName(getPackageName(), getPackageName()+".NewActivity"); 
   startActivity(intentSolution);
   return true;
  default:
   return super.onOptionsItemSelected(item);
 }
}

venerdì 14 dicembre 2012

Auricolare bluetooth Nokia BH-104 e Samsung Galaxy S3

Uuuuhh mamma mia alla fine sono riuscito a far connettere il buon vecchio auricolare bluetooth Nokia BH-104 con il Samsung S3.
Credo non solo con l'S3 abbia avuto dei problemini, ma anche con altri device non Samsung. Niente zero la ricerca non trovava il dispositivo.
Sembra proprio che l'auricolare abbia una memoria limitata con il numero delle connessioni dei device (forse non più di due).
La soluzione è la seguente: ho eseguito un reset sull'auricolare premendo, da spento, contemporaneamente il pulsantone grosso per le chiamate e il tasto di accensione per un po' di secondi.
Il led ha cominciato a lampeggiare con il rosso e il verde; eseguo una ricerca con l'S3 et voilà...Nokia BH-104, clicco sul BH-104 e quindi "associazione eseguita".

domenica 9 dicembre 2012

Diverse tipologie di Radio Button e CheckBox

Nel disegno di un nuovo file pdf è possibile modificare alcune proprietà degli oggetti Radio Button e CheckBox per cambiare i loro simboli di selezione.
Ecco un esempio.

Proprietà da modificare:


Output:


mercoledì 5 dicembre 2012

Creazione e popolamento dati di una TreeView in una .aspx

In questo esempio è rappresentata la creazione di una TreeView e di un suo popolamento statico (ossia non da db o da file) in c#.
Nella prima parte viene indicato l'oggetto nella pagina, nella seconda il codice da integrare per il caricamento di esempio.

Parte da integrare nella pagina .aspx
<asp:TreeView ID="treeview_example" runat="server" Width="220" ShowCheckBoxes="Leaf">
 <DataBindings>
  <asp:TreeNodeBinding DataMember="siteMapNode" TextField="title" ValueField="resourceKey"
   SelectAction="None" />
 </DataBindings>
</asp:TreeView>
Codice da integrare nel file .aspx.cs
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        PopulateTreeView();
    }

    protected void PopulateTreeView()
    {
        DataTable dataTable = null;
        try
        {
            dataTable = new DataTable("dt");
            dataTable.Columns.Add(new DataColumn("value", typeof(int)));
            dataTable.Columns.Add(new DataColumn("area", typeof(string)));
            dataTable.Columns.Add(new DataColumn("type", typeof(string)));
            DataRow dataRow = dataTable.NewRow();
            dataRow = dataTable.NewRow();
            dataRow["value"] = "1";
            dataRow["area"] = "Example root";
            dataRow["type"] = "Check 1";
            dataTable.Rows.Add(dataRow);

            dataRow = dataTable.NewRow();
            dataRow["value"] = "2";
            dataRow["area"] = "";
            dataRow["type"] = "Check 2";
            dataTable.Rows.Add(dataRow);

            dataRow = dataTable.NewRow();
            dataRow["value"] = "3";
            dataRow["area"] = "";
            dataRow["type"] = "Check 3";
            dataTable.Rows.Add(dataRow);

            /*...*/

            TreeNode rootNode = new TreeNode();
            if ((dataTable != null) && (dataTable.Rows.Count != 0))
            {
                DataView dataView = new DataView(dataTable);
                foreach (DataRowView r in dataView)
                {
                    if ("" != (string)r["area"])
                        rootNode = AddNode("", (string)r[1].ToString(), "Folder", treeview_example.Nodes);

                    AddNode(r[0].ToString(), (string)r[2].ToString(), "Page", rootNode.ChildNodes);
                }
            }
            else
            {
                //...do something
            }
        }
        catch (Exception ex)
        {
            //log.Error(ex);
        }
        if (dataTable != null)
            dataTable.Dispose();
    }

    private TreeNode AddNode(string id, string text, string type, TreeNodeCollection nodeCollection)
    {
        TreeNode node = new TreeNode(id);
        node.Value = id;
        node.Text = text;
        nodeCollection.Add(node);
        return node;
    }
}
Output:


sabato 1 dicembre 2012

Calendario in Visual Basic 6 con il DtPicker

Tramite il controllo DtPicker in visual Basic è possibile scegliere una data e riportarla in un altro oggetto presente su di una form o su di una variabile.
Prima di utilizzare questo controllo e inserire del codice, ad esempio sull'evento "_Change", è bene selezionare il componente nel progetto come rappresentato nella figura successiva.

Scelta del componente:


Un esempio che riporta in output la data formattata con giorno/mese/anno:

Function dateFormat(valore As Variant) As Variant
    If IsNull(valore) Then
        dateFormat = "Null"
    Else
        dateFormat = Format(valore, "dd/mm/yyyy")
    End If
End Function

Private Sub DTPicker1_Change()
    Label1.Caption = dateFormat(DTPicker1.Value)
End Sub

Output: