lunedì 2 aprile 2007
Come rendere più veloce FireFox
http://www.youtube.com/watch?v=Exx6XNfHTK8
ah! dimenticavo è senza sonoro :-)
(Inviato da The_Rebel84)
mercoledì 28 marzo 2007
Velocizzare l'apertura del Menu Start di Windows
Scrivete nella finestra "Esegui" la parola Regedit, dopodiché appena il registro di configurazione sarà apparso cercate la la seguente chiave:
HKEY_CURRENT_USER\Control Panel\Desktop\MenuShowDelay
Il valore predefinito è 400, cambiate il suo valore ovviamente inserendo un numero inferiore a 400 (anche 1 andrebbe bene) e poi chiudete il registro. Provate ad aprire il Menu e vedrete che la sua velocità di apertura sarà aumentata.
mercoledì 21 marzo 2007
Creazione di una rete Lan
Bhe allora andate su questo sito dove verrà spiegato passo passo tutto il procedimento per creare una vostra connessione di rete LAN.
http://www.wondernet.biz/lan/
(Inviato da Adex)
martedì 13 marzo 2007
Determinare da quanto tempo è avviato Windows Xp
1) Avviate il prompt dei comandi (Start -> Esegui -> digitate cmd) e scrivete:
net statistics workstation
in cima alle statistiche comparirà data e ora dell'avvio del sistema
2) Avviate il prompt dei comandi (Start -> Esegui -> digitate cmd) e scrivete:
systeminfo | find "Tempo di funzionamento sistema:"
Copia di un sistema operativo su un nuovo disco fisso
La procedura che andrò ad illustrare serve per qualsiasi Sistema Operativo. Si può copiare interamente tutto un Sistema Operativo da un vecchio disco fisso ad un nuovo con una semplicità e con poche righe di codice come di seguito vi è riportato:
Prima di tutto sia il vecchio che il nuovo disco fisso devono essere montati correttamente sul personal computer.
Una volta fatto tutto questo bisogna avviare windows e formattare il nuovo disco fisso con una partizione primaria.
Dopodiché per copiare interamente il contenuto del vecchio disco fisso sul nuovo bisogna andare sul prompt-Ms dos e digitare questa riga di codice:
Xcopy32 c:*.* d: /h /i /c /k /e /r /y
Fatto questo bisogna spegnere il computer e procedere nella sostituzione del disco vecchio con il nuovo, cioè quest'ultimo deve essere messo come master sul canale primario. Accendere il computer ed il Sistema Operativo partirà sul nuovo disco.
Velocizzare l'avvio e la chiusura di Windows Xp
Tale procedura deve essere effettuata sul registro di configurazione quindi la raccomando a persone esperte o che abbiano un minimo di dimestichezza con il computer.
Aprite il registro di Sistema (Start -> Esegui -> digitate regedit) e cercate la chiave:
HKEY_CURRENT_USER\Control Panel\Desktop
Modificate i valori delle chiavi:
"HungAppTimeout"="2000"
"WaitToKillAppTimeout"="5000"
Poi cercate la chiave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
e modificate:
"WaitToKillServiceTimeout"="3000"
E' possibile diminuire ancora un pò questi valori, ma non esagerate!
Nel caso voleste ripristinare i valori di default, essi sono:
"HungAppTimeout"="5000"
"WaitToKillAppTimeout"="20000"
"WaitToKillServiceTimeout"="20000"
Riavviate il PC e il gioco è fatto
lunedì 12 marzo 2007
A Visual Studio Add-In That Converts C# Code To Visual Basic
http://msdn.microsoft.com/msdnmag/issues/06/02/PasteAs/default.aspx
Buon divertimento e buon lavoro
Come creare un pulsante a forma circolare
Dopo clicchiamo con il tasto di sinistra del mouse nella "solution explorer" e nel menu a tendina che compare su "Add Reference". Cerchiamo la voce System.Drawing e aggiungiamola al progetto cliccando su Ok e allo stesso modo anche la voce System.Windows.Form.
A questo punto dobbiamo scrivere il codice della classe che gestirà la creazione del pulsante:
Public Class RoundButton
Inherits System.Windows.Form.Button
Private Function GetRoundedPath(Byval rect as rectangle, byval radius as Int32) As GraphicsPath
Dim roundrect As New GraphicsPath
roundrect.addline(rect.Left + radius, rect.Top, rect.Right - radius, rect.Top)
roundrect.Addarc(rect.Right - 2 * radius, rect.Top, radius * 2, radius * 2, 270,90)
roundrect.AddLine(rect.Right, rect.Top + radius, rect.Right, rect.Bottom -10)
roundrect.Addarc(rect.Right - 2 * radius, rect.Bottom - radius * 2, radius * 2, radius * 2,0,90)
roundrect.AddLine(rect.Right 2 * radius, rect.Bottom, rect.Left + radius, rect.Bottom)
roundrect.Addarc(rect.Left, rect.Bottom - radius * 2, radius * 2, radius * 2,90,90)
roundrect.AddLine(rect.Left, rect.Bottom - radius, rect.Left, rect.Top + radius)
roundrect.Addarc(rect.Left, rect.Top, radius * 2, radius * 2,180,90)
Return roundrect
End Function
Protected Overrides Sub OnPaint(byval pa as System.Windows.Form.PaintEventArgs)
MyBase.OnPaint(pa)
Dim new_rectangle As rectangle = Me.Clientrectangle
new_rectangle.Inflate(-3,-3)
Dim ButtonPath As GraphicsPath = GetRoundedPath(new_rectangle, 10)
pa.Graphics.SmoothingMode = Smoothing.Antialias
pa.Graphics.DrawPath(New Per(Color.Gray, 4), buttonpath)
Me.region = New
System.Drawing.Region(buttonpath)
End Sub
Come poter sapere quanti giorni mancano ad una certa data
vedi figura:
Nell'evento click del button andiamo a scrivere il segeuente codice:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim datafinale As DateTime = New DateTime
datafinale = Me.DateTimePicker1.Value
Dim differenza As TimeSpan = datafinale.Subtract(DateTime.Now)
Dim giorni As Integer = differenza.Days
Dim ore As Integer = differenza.Hours
Dim minuti As Integer = differenza.Minutes
Me.Label1.Text = giorni.ToString() & ":" & ore.ToString() & ":" & minuti.ToString()
End Sub
End Class
Backup e Restore con MSDE
Imports System.Data.SqlClient
Dim SqlConn As New SqlConnection()
Dim SqlCmd As New SqlCommand()
SqlConn.ConnectionString="Data Source=(local);Initial Catalog=master;Integrated Secutity=SSPI"
SqlConn.Open()
Rem -----Backup
SqlCmd.Connection=SqlConn
SqlCmd.CommandType=CommandType.Text
SqlCmd.CommandText="BACKUP DATABASE [nomedb] TO DISK = N'D:\nomedb.bak' WITH INIT,NAME = N'nomedb Backup'"
Try
SqlCmd.ExecuteNonQuery()
Catch
Msgbox(err.description)
ENd Try
SqlCmd.Dispose()
Rem -----restore
SqlCmd.Connection=SqlConn
SqlCmd.CommandType=CommandType.Text
SqlCmd.CommandText = "RESTORE DATABASE [nomedb] FROM DISK = N'D:\nomedb.bak' WITH FILE =1,RECOVERY,MOVE N'nomedb TO N'C:\Programmi\Microsoft Sql Server\MSSQL\data\nomedb.mdf', MOVE N'nomedb_log' TO N'C:\Programmi\Microsoft Sql Server\MSSQL\data\nomedb_log.ldf'"
Try
SqlCmd.ExecuteNonQuery()
Catch
Msgbox(err.description)
ENd Try
SqlCmd.Dispose()
SqlConn.Dispose()
SqlConn.Close()
Metodi per la lavorazione di stringhe in Vb .Net
Dim saluto As String
Me.TextBox1.Text="Fabio"
saluto="Ciao" & " " & Me.TextBox1.Text
ma dobbiamo dire che in Net si possono utlizzare al metodi per l'elaborazione delle stringhe; possiamo fornirci dei metodi delle versioni precedenti di Visual Basic (Mid,Ucase,LCase ecc.) oppure avvarlerci dei metodi forniti dal .NET Framework (SubString, ToUpper, ToLower ecc.). Di seguito illustro in breve qualche metodo del .NET framework con relativo esempio:
ToUpper in Visual Basic 6 era la funzione UCase, permette di cambiare le lettere di una stringa in maiuscole.
Dim nome,nome1 As String
nome = "fabio"
nome1 = nome.ToUpper
il risultato sarà: nome1=FABIO
ToLower in Visual Basic 6 era la funzione LCase, permette di cambiare le lettere di una stringa in minuscole.
Dim nome,nome1 As String
nome = "FABIO"
nome1 = nome.ToLower
il risultato sarà: nome1=fabio
Length in Visual Basic 6 era la funzione Len, permette di determinare il numero di caratteri di una stringa.
Dim nome As String ="Fabio"
Dim sizename As Short
sizename = nome.Length
il risultato sarà: 5
SubString in Visual Basic 6 era la funzione Mid, permette di restituire un numero fisso di caratteri di una stringa da un determinato punto di inizio(in una stringa il primo "elemento" ha indice=0).
Dim nome As String ="Fabio Cirillo"
Dim cognome As String
cognome=nome.SubString(6,7)
il risultato sarà: cognome=Cirillo
IndexOf in Visual Basic 6 era la funzione InStr, permette di trovare il punto di inizio di una stringa all'interno di una stringa più lunga.
Dim name As String ="Stefano"
Dim inizio As Short
inizio=name.IndexOf("f")
il risultato sarà: inizio=3
Trim in Visual Basic 6 era la funzione Trim, permette di rimuovere sia gli spazi iniziali che finali di una stringa.
Dim nome,nome1 As Stringa
nome=" Fabio "
nome1=nome.Trim
il risultato sarà: nome1="Fabio"
Remove è una nuova funzione presente in .NET e permette di rimuovere i caratteri all'interno di una stringa
Dim nome,nome1 As String
nome="Fabio78"
nome1=nome.Remove(5,2)
il risultato sarà: nome1="Fabio"
Insert è una funzione nuova presente in .NET e permette di aggiungere caratteri all'interno di una stringa.
Dim nome,nome1 As String
nome="Fabio"
nome1=nome.Insert(5,"78")
il risultato sarà: nome1="Fabio78"
Piccoli trucchi nei sistemi operativi
A) Come rimuovere il nome di un programma dal menu Installazioni/Applicazioni di Windows:
1. Aprire il registro di configurazione(RegEdit) -----Start/Esegui/Regedit
2. Posizionarsi sulla seguente chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Unistall
Qui trovere l'intera lista dei nomi dei programmi che compaiono nella sezione Installazioni/Applicazioni; per rimuovere dalla lista una voce di programma basta eliminare la sua corrispondente chiave.
B) Per velocizzare delle operazioni su Windows possiamo senza l'utilizzo del mouse avvalerci di alcune combinazioni di tasti (valido in tutti i sistemi operativi):
1. Tasto Windows: Permette di visualizzare il Menu Start
2. Tasto Windows + D: Minimizza o ripristina tutte le finestre attive
3. Tasto Windows + E: Permette di visualizzare le risorse del sistema
4. Tasto Windows + F: Permette di visualizzare la finistra TROVA per la ricerca di file o cartelle
5. Tasto Windows + Ctrl + F: Permette di visualizzare la finestra TROVA per la ricerca di un computer
6. Tasto Windows + R: Permette di visualizzare la finestar Esegui
7. Tasto Windows + Shift + M: Ripristina tutte le finestre minimizzate
8. Tasto Windows + L: Permette di bloccare l'accesso al sistema
9. Tasto Windows + U: Permette di aprire le Utility Manager
C) Come cambiare il serial number di windows 2003:
1. Aprire il registro di configurazione(RegEdit) ----Start/Esegui/Regedit
2. Posizionarsi sulla seguente chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\Current Version\WPAEvents
Qui cliccare con il tasto di destra sulla chiave OOBETimer e selezionare la voce "modifica dato binari"; a questo punto modoficare e eliminare uno dei seguenti dati come di seguito illustro (DE 4D F1 ----basta solamente modificare DE). Chiudere il registro, andare di nuovo su Start, Esegui e scrivere: %systemroot%\system32\oobe\msoobe.exe /a
Partirà l'utility di per l'attivazione di Windows, dovrete selezionare "attivazione via telefono", "cambia codice prodotto". Inserite il nuovo codice e cliccate su CAMBIA.
Terminata la procedura dovrete riavviare il computer e ritornerete su Windows andate su Start, Esegui e digitate il seguente codice: %systemroot%\system32\oobe\msoobe.exe /a-
Panoramica su Ado .Net
A) I DataSet e DataTable che sono oggetti ottimizzati allo scopo di gestire insiemi disconnessi di dati tra Internet ed Intranet;
B) I tradizionali oggetti Connection e Command ed il nuovo oggetto DataReader. Nel dettaglio in Ado.Net troviamo l'OleDbConnection e l'SqlConnection che rappresentanto le connessioni ai database come era in passato per l'oggetto Connection di Ado;
C) l'OleDbCommand e l'SqlDbCommand che rappresentano le stringhe di testo Sql da inviare direttamente al database e assomigliano all'oggetto Command di Ado;
D) Gli oggetti OleDbDataAdapter e SqlDbDataAdapter, i quali contengono i comandi Select, Insert, Update e Delete di gestione del Database. Questi oggetti sono utilizzabili per collegare il Database all'oggetto Dataset;
E) l'oggetto Dataset contiene una copia dei dati effettivi e da questo punto di vista è simile all'oggetto RecordSet disconnesso di Ado. Nell'oggetto DataSet possono essere inseriti gli oggetti DataRelation e Contraint, che rappresentano, rispettivamente, le relazioni tra le tabelle dati e le limitazioni cui sono soggetti i dati che vi sono contenuti. L'oggetto DataSet può inoltre contenere oggetti DataTable, che a loro volta possono contenere oggetti DataColumn e DataRow. Utilizzando gli oggetti DataTableMapping e DataColumnMapping, è possibile fare in modo che un dataset associ le tabelle e le colonne di un database agli oggetti DataTable e DataColumn rispettivi
F) Gli oggetti SqlDataReader e OleDbReader rappresentano lettori di dati connessi, di tipo forward-only e di sola lettura. Si rivelano particolarmente utili se siete in grado di mantenere una connessione costante a un database e desiderate semplicemente leggere, e non modificare, i dati, caso in cui la creazione di un oggetto DataSet non è necessaria. Un lettore di dati assomiglia a un oggetto Recordset connesso, di tipo forward-only e di sola lettura di ADO
Formattazione numerica dei TextBox
Di seguito illustro alcuni esempi di formattazione di una valore numerico inserito in NET:
1 - Restituire un numero evente il separatore delle migliaia e dei decimali:
Me.Textbox1.Text = String.Format("Il valore è {0:N}", 1000.789)
quindi come risultato nella Text avremo: "Il valore è 1.000,79"
2 - Restituire un numero avente separatore delle migliaia e almeno 4 cifre decimali:
Me.Textbox1.Text = String.Format("Il valore è {0:N4}", 1000.789)
quindi come risultato nella Text avremo: "Il valore è 1.000,7890"
3 - Restituire un numero avente il separatore delle migliaia e almeno 6 cifre decimali:
Me.Textbox1.Text = String.Format("Il valore è {0:N6}", 1000.789564378)
quindi come risultato nella Text avremo: "Il valore è 1.000,789564"
4 - Restituire un numero di otto cifre, anteponendo ad esso una serie di 0:
Me.Textbox1.Text = String.Format("Il valore è {0:D8}", 1000)
quindi come risultato nella Text avremo: "Il valore è 00001000"
5 - Restituire un numero di dieci cifre, anteponendo ad esso una serie di 0:
Me.Textbox1.Text = String.Format("Il valore è {0:D10}", 1000)
quindi come risultato nella Text avremo: "Il valore è 0000001000"
6 - Restituire un numero in forma scientifica:
Me.Textbox1.Text = String.Format("Il valore è {0:E}", 1000.789)
quindi come risultato nella Text avremo: "Il valore è 1,000789E+003"
7 - Restituire un numero in forma percentuale, aggiungendo il simbolo %:
Me.Textbox1.Text = String.Format("Il valore è {0:P}", 0.7895)
quindi come risultato nella Text avremo: "Il valore è 78,95%"
Creazione di un Setup in .Net e controllo durante l'installazione della presenza del Framework 1.1 e dell'MDAC
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=627921a0-d9e7-43d6-a293-72f9c370bd19
http://support.microsoft.com/default.aspx?scid=kb;it;888469
Una volta scarica ed installato il plug-in potrete iniziare la procedura per la creazione del vostro Setup di installazione come di seguito vi illustrerò....
Le fasi da seguire potrebbero essere molteplici in quanto il .Net permette all'operatore di una potenzialità non indifferente per la gestione ecreazione di un pacchetto di Setup, ma io vi semplificherò la vita....
1 - Aggiungere al progetto generale WindowsApplication un nuovo progetto per la creazione di un pacchetto di installazione (vedi figura)
2
FRAMEWORK
4) Per far si che il vostro progetto di Setup esamini la presenza sul computer di destinazione sia del Framework 1.1 e dell'MDAC 2.6 o superiore o in mancanza di essi procedere alla loro installazione automaticamente, bisogna procedere in questo modo:
Aprire l'editor delle condizioni di avvio. (vedi figura)
Folder = Specifica la cartella in cui verrà avviata la ricerca del file
Property = Specifica la proprietà denominata a cui è possibile accedere al momento dell'installazione per modificare l'installazione in base ai risultati di ricerca.
MDAC
6) Cliccare con il tasto di destra del mouse sulla voce “Condizioni di avvio” e scegliere Aggiungi condizione di avvio. (vedi figura)
InstallUrl = Collegamenti ad una risorsa contenente informazioni per l'installazione di un componente esterno
Message = Specifica il messaggio da visualizzare quando una condizione viene valutata = False al momento dell'installazione
8) Fatto questo bisogna cliccare con il tasto destra del mouse sulla voce: "Cerca nel computer di destinazione" ed aggiungere la seguente voce: "Ricerca Registro di sistema" dal menu a tendina. (vedi figura)
RegKey = Specifica la chiave del Registro di sistema da ricercare.
Root = Specifica la chiave principale per una ricerca nel Registro di sistema.
Value = Specifica il valore del Registro di sistema da ricercare.
Eseguite tutte le fasi elencate precedentemente, il quadro delle condizioni di avvio(Setup1) apparirà in questo modo: (vedi figura)
[Bootstrap]
MsiPath=Setup1.msi
ProductName=
MdacVersion=2.81 (per esempio setto la versione 2.8)
BootstrapFx=true
FxInstallerPath=d:\ (directory in cui si trova il file dotnetfx.exe)
LanguageID=1040
BootstrapLangPack=true
LangPackInstallerPath=d:\ (directory in cui si trova il file langpack.exe)
BootstrapMdac=true
MdacInstaller Path=d:\ (directory in cui si trova il file mdac_typ.exe)
Sql: Le funzioni principali...
- DDL (Data Definition Language) - permette di creare e cancellare database o di modificarne la struttura
- DML (Data Manipulation Language) - permette di inserire, cancellare e modificare i dati
- DCL (Data Control Language) - permette di gestire gli utenti e i permessi
Operatori
Gli operatori, messi a disposizione dal SQL standard si dividono in quattro categorie:
- Operatori di confronto
- Operatori aritmetici
- Operatori condizionali
- Operatori logici
Operatori di confronto
Gli operatori di confronto servono a determinare uguaglianze e disuguaglianze tra valori e ad effettuare ricerche all'interno dei dati. Di seguito uno schema tabellare:
1. = Esprime uguaglianza tra due valori
2. LIKE Esprime somiglianza tra due valori
3. <> Stabilisce se un valore è maggiore di un altro
5. <= Stabilisce se un valore è minore o uguale di un altro 6. >= Stabilisce se un valore è maggiore o uguale di un altro
7. <> Stabilisce se due valori sono diversi tra loro
8. BETWEEN Recupera un valore compreso tra due valori
9. IN Stabilisce se un valore è contenuto in una lista di valori possibili
10. EXISTS Stabilisce se un determinato record esiste
Operatori aritmetici
Gli operatori aritmetici effettuano calcoli all'interno di una ricerca. Di seguito uno schema tabellare:
1. + Effettua un'addizione
2. - Effettua una sottrazione
3. * Effettua una moltiplicazione
4. / Effettua una divisione
Operatori condizionali
L'unico operatore condizionale di SQL è WHERE (DOVE) e serve a definire criteri di ricerca mirati. Nei prossimi capitoli lo vedremo spesso in azione.
Operatori logici
Gli operatori logici di SQL sono AND (E), OR (O, OPPURE) e NOT (non); possono essere ripetuti più volte all'interno dell'elenco delle condizioni di ricerca.
L'operatore logico AND, che lega due (o più) condizioni, serve ad indicare alla ricerca di restituire tutte le tuple per le quali le due (o più) condizioni espresse sono tutte vere contemporaneamente.
L'operatore logico OR, che lega due (o più) condizioni, serve ad indicare alla ricerca di restituire tutte le tuple per le quali anche soltanto una delle due (o più) condizioni espresse è vera.
L'operatore NOT inverte il valore ad esso associato: se è vero restituisce un valore falso, mentre se è falso restituisce un valore vero.
L'uso delle parentesi tonde ( ) all'interno dell'elenco delle condizioni di ricerca consente di combinare condizioni differenti utilizzando entrambi i tipi di operatori logici per creare condizioni complesse.
Manipolazione dei dati
DML fornisce i comandi per inserire, modificare, eliminare o leggere i dati all'interno delle tabelle di un database. La struttura di questi dati deve già essere stata definita tramite il DDL. Inoltre, il permesso di accedere a tali dati deve essere assegnato all'utente tramite il DCL.
Select
Col comando select abbiamo la possibilità di estrarre i dati, in modo mirato, dal database.
Sintassi del comando select
SELECT [ ALL | DISTINCT ] elementi_selezione
FROM riferimenti_tabella
[ WHERE espressione_condizionale ][ ORDER BY ];
dove elementi_selezione è l'elenco dei campi da estrarre, riferimenti_tabella è l'elenco delle tabella da cui estrarre i dati, espressione_condizionale rappresenta l'elenco delle condizioni, ovvero dei desiderata dell'interrogazione lista_colonne è la colonna o le colonne che devono essere prese come riferimento per l'ordinamento dei dati in uscita.
Un esempio è il seguente:
SELECT cognome, nome, citta_residenza
FROM utenti
WHERE anni >= 18
ORDER BY citta_residenza
Questa query estrae l'elenco di tutti gli utenti maggiorenni ordinando l'output in base alla città di residenza.
La definizione di select è comunque molto più ampia, prevede molte altre opzioni ma in linea di massima con queste opzioni si compongono la maggior parte delle interrogazioni.
INSERT
Il comando insert ha la funzione di inserire i dati nelle tabelle.
Le colonne (o campi) di destinazione dei valori possono essere o meno dichiarate nel comando. Se non vengono dichiarate, è necessario passare al comando un valore per ogni colonna della tabella, rispettando rigorosamente l'ordine delle colonne stesse. Se, invece, le colonne di destinazione vengono dichiarate, è possibile indicare le sole colonne per le quali vengono passati dei valori, purchè vengano inseriti comunque i valori per tutte le colonne not null (che non possono essere nulle) della tabella.
Di per sé il comando insert opera inserendo in tabella una sola riga per volta. È possibile, però, inserire più di una riga "in modo automatico" passando all'insert una serie di righe (o tuple) risultanti da un comando di select, purchè tali righe siano compatibili con le colonne della tabella su cui si inseriscono i dati.
Sintassi del comando insert
Insert semplice:
INSERT INTO nome_tabella
VALUES (elenco valori, tutti, rispettando l'ordine dei campi della tabella);
oppure
INSERT INTO nome_tabella (elenco dei campi interessati dall'inserimento)
VALUES (elenco valori, tutti, rispettando l'ordine dei campi dichiarati sopra);
Insert mediante select:
INSERT INTO nome_tabella (elenco dei campi interessati dall'inserimento)
SELECT ...;
UPDATE
Il comando update ha la funzione di modificare i dati delle tabelle.
Il nome di ogni campo che deve essere modificato va dichiarato dopo la parola chiave SET e deve essere seguito dal simbolo " = " (uguale) e dal nuovo valore che deve assumere.
È possibile modificare più campi della stessa riga in un unico comando update, separandoli l'uno dall'altro con il simbolo " , " (virgola).
Il comando generico aggiorna tutte le righe della tabella. È possibile restringerne il numero applicando la parola chiave aggiuntiva WHERE, che permette di effettuare una selezione qualitativa delle righe imponendo delle condizioni sui dati presenti nelle righe prima dell'aggiornamento.
Sintassi del comando update
Update generico:
UPDATE nome_tabella SET nome_campo1 = valore1_nuovo, nome_campo2 = valore2_nuovo,...;
Update con condizione:
UPDATE nome_tabella
SET nome_campo1 = valore1_nuovo,
nome_campo2 = valore2_nuovo
WHERE nome_campo3 = valore;
DELETE
Delete generico:
Delete From nome_tabella;
Delete con codizione:
Delete From nome_tabella WHERE nome_campo1=valore;
Crystal Report in .Net
Uno di questi è il CRYSTAL REPORT, software creato dalla famosa casa produttrice Segate e che Microsoft ha integrato in Visual Studio Net.
Tutti i compilatori della famiglia Visual Studio .NET (Vb.Net - C# - C++.net – J++.Net) sono funzionali e compatibili su sistemi basati e realizzati con tecnologia NT, quindi a loro volta tutti i software realizzati con questi compilatori saranno funzionali su sistemi tipo Windows 2000 – NT – Windows Xp e Windows 2003 Server ecc. di conseguenza anche tutto ciò che verrà realizzato con Crystal Report .Net sui sistemi appena citati non determinerà alcun problema.
Ma il grosso dilemma nasce quando ognuno di noi realizza un software con le sue rispettive stampe il quale è destinato anche ad essere utilizzato su piattaforma Windows 98.
Per chi ha riscontrato dei problemi nella funzionalità delle proprie stampe su Windows 98 è bene che segua le procedure che verranno illustrate successivamente e vedrete che i vostri problemi con Crystal Report .Net su Win 98 verranno risolti.
Fase 1
Per prima cosa nel momento in cui andate a realizzare i pimi dei progetti di stampa con Crystal Report .Net quest’ultimo dovrà essere registrato.
Ogni programmatore avrà a disposizione un Codice chiamato License Key il quale dovrà essere inserito in un file .msm ossia un modulo unione che permetterà di licenziare tutti i progetti di stampa
Crystal_regwiz2003.msm
MergeModuleProperties.
Una volta registrato il prodotto si procederà nella realizzazione e progettazione delle stampe. Terminata tale realizzazione, ogni programmatore per poter far visualizzare sul proprio programma un’anteprima di stampa dovrà usufruire del componente CrystalReportViewer
Ed utilizzare il seguente codice:
Imports CrystalDecisions.CrystalReports.Engine
Dim prova As New ReportDocument
prova.Load("C:\esempio.rpt")
CrystalReportViewer1.ReportSource = prova
Invece nel caso di sistemi Windows 98 – 98Se – 98Me non serve solo ciò che si è detto prima ma occorrere in ordine effettuare le seguenti installazioni:
1. Internet Explorer
2. MDAC 2.8
3. Framework
4. Programma(applicativo)
5. Copiare nella cartella C:\Windows\System32 il seguente file: dbghelp.dll
N.B. Questo file si troverà nel proprio personal computer sul quale è installato il compilatore Vb net
domenica 11 marzo 2007
Stringhe di connessione ai database
SQL Server
- ODBC
"Driver={SQL Server};Server=Zues;Database=Northwind;Uid=sa;Pwd=prova;"
"Driver={SQL Server};Server=Zeus;Database= Northwind;Trusted_Connection=yes;"
- OLE DB, OleDbConnection (.NET)
"Provider=sqloledb;Data Source=Zeus;Initial Catalog= Northwind;User Id=sa;Password=prova;"
"Provider=sqloledb;Data Source=Zeus;Initial Catalog= Northwind;Integrated Security=SSPI;"
"Provider=sqloledb;Data Source=100.100.200.300,1433;Network Library=DBMSSOCN;Initial Catalog= Northwind;User ID=sa;Password=prova;"
(1433 è la porta di default di connessione di Sql Server)
- SqlConnection (.NET)
"Data Source=Zeus;Initial Catalog= Northwind;User Id=sa;Password=prova;"
- or -
"Server=Zeus;Database= Northwind;User ID=sa;Password=prova;Trusted_Connection=False"
Connessione Trusted connection:
"Data Source=Zeus;Initial Catalog= Northwind;Integrated Security=SSPI;"
- or -
"Server=Zeus;Database= Northwind;Trusted_Connection=True;"
Connessione tramite indirizzo IP:
"Data Source=100.100.200.300,1433;Network Library=DBMSSOCN;Initial Catalog= Northwind;User ID=sa;Password=prova;"
-------------------------------------------
SQL Server 2005
- SQL Native Client ODBC Driver
"Driver={SQL Native Client};Server=Zeus;Database= Northwind;UID=sa;PWD=prova;"
"Driver={SQL Native Client};Server=Zeus;Database= Northwind;Trusted_Connection=yes;"
- SQL Native Client OLE DB Provider
"Provider=SQLNCLI;Server=Zeus;Database= Northwind;UID=sa;PWD=prova;"
Provider=SQLNCLI;Server=Zeus;Database= Northwind;Trusted_Connection=yes;"
- SqlConnection(.NET)
"Data Source=Zeus;Initial Catalog= Northwind;User Id=sa;Password=prova;"
- or -
"Server=Zeus;Database= Northwind;User ID=sa;Password=prova;Trusted_Connection=False" Connessione Trusted connection:
"Data Source=Zeus;Initial Catalog= Northwind;Integrated Security=SSPI;"
- or -
"Server=Zeus;Database= Northwind;Trusted_Connection=True;"
giovedì 8 marzo 2007
Aggiornamento da Visual Basic 6.0 a Visual Basic Net
Visual basic .Net ed il Framework permettono di gestire delle problematiche del tutto nuove come l’ADO .NET che espone il nuovo modello di programmazione disconnessa, diverso dal classico modello ADO. Quando si aggiorna un progetto Visual Basic 6.0, la procedura di aggiornamento non riuscirà a convertire il codice in ADO .NET ma utilizzerà come mediatore i componenti COM come l’ADO.
Visual Basic .Net permette di gestire servizi di Windows ma, durante la fase di aggiornamento questi non traggono alcun vantaggio, quindi un’eventuale aggiornamento di un progetto Visual Basic 6.0 non riuscirebbe a sfruttare in pieno i nuovi servizi che offre il Framework.
Infine in ogni caso, la procedura di aggiornamento guidato non è in grado di aggiornare alcuni tipi di progetti scritti in Visual Basic 6.0 come ad esempio applicazioni DHTML e le associazioni tra DAO e RDO.
Premesso tutto ciò che ho appena citato, per eseguire la procedura guidata di aggiornamento, basta apri il file di progetto Visual Basic 6.0 (file con estensione .vbp) in Visual Basic .Net e attenersi alle istruzioni che verranno di seguito illustrate graficamente.
La procedura guidata di aggiornamento procederà nell’analizzare il codice ed eseguire direttamente la conversione dei tipi di dati, ad esempio, dal Long a Integer e da Variant ad Object.
Inoltre per facilitare l’operatore sul controllo della procedura di aggiornamento, quest’ultima inserisci all’interno dei messaggi di avviso, errore o di documentazione. Al termine dell’aggiornamento nel progetto viene creato un file HTML di riepilogo, che mostra ogni singolo errore e fornisce informazioni su come risolvere il problema.
mercoledì 7 marzo 2007
Realizzare una connessione DSN di sistema con .NET
In .Net si possono realizzare connessioni DSN di sistema con notevole semplicità ovviamente sfruttando il driver ODBC.(consiglio la vers. 3.51) e, tramite l'uso di un' API di Windows.
L'esempio seguente illustrerà come è possibile realizzare direttamente da una WinForm una connessione Dsn.
Module Module1
Public Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Integer, ByVal fRequest As Short, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Integer
Public Declare Function SQLCreateDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Integer, ByVal lpszDSN As String) As Integer
Public Const ODBC_ADD_DSN As Short = 1
Public Const ODBC_ADD_SYS_DSN As Short = 4
End Module
-------------------------------------------
Private Sub Conferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Conferma.Click
Dim odbcs As String
Dim RISULTATO As Integer
If WizardCheck.CheckState = System.Windows.Forms.CheckState.Checked Then
odbcs = NomeDSN.Text
RISULTATO = SQLCreateDataSource(Me.Handle.ToInt32, odbcs)
Else
odbcs = "DSN=" + NomeDSN.Text + ";"
odbcs = odbcs + "DBQ=" + PathDB.Text + ";"
odbcs = odbcs + "DESCRIPTION=" + Descrizione.Text +";"
odbcs = odbcs + "UID=" + Utente.Text +";"
odbcs = odbcs + "PWD=" + Password.Text +";"
odbcs = odbcs + "DATABASE=" + DatabasePred.Text +";"
odbcs = odbcs + vbNullChar
If _TipoDSN_1.Checked = True Then
RISULTATO = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, NomeDriver.Text, odbcs)
End If
End If
If RISULTATO <> 0 Then
MsgBox("Creazione DSN riuscita con successo")
Else
MsgBox("Creazione DSN fallita?)
Me.Close()
End If
End Sub
-------------------------------------------
Private Sub WizardCheck_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles WizardCheck.CheckStateChanged
Dim STATO As Boolean
STATO = (WizardCheck.CheckState = System.Windows.Forms.CheckState.Unchecked)
ParametriFrame.Enabled = STATO
NomeDriverLabel.Enabled = STATO
NomeDriver.Enabled = STATO
PathDBLabel.Enabled = STATO
PathDB.Enabled = STATO
DescrizioneLabel.Enabled = STATO
Descrizione.Enabled = STATO
UtenteLabel.Enabled = STATO
Utente.Enabled = STATO
PasswordLabel.Enabled = STATO
Password.Enabled = STATO
DatabasePredLabel.Enabled = STATO
DatabasePred.Enabled = STATO
_TipoDSN_1.Enabled = STATO
End Sub
-------------------------------------------
Una prova del nove potrete farla verificando dal pannello di controllo l'effettiva creazione del Dsn di sistema