|
Query parametriche con DAO
Pur essendo assai datato esistono ancora molti applicativi scritti in VB6, ad esempio, che si interfacciano con database Access attraverso DAO (Data Access Object).Ad esempio, se volessimo estrarre tutti i clienti dal classico database Northwind.mdb scriveremmo qualcosa del genere:
Private Sub myTest Dim MyDB As DAO.Database Dim MySet As DAO.Recordset Set MyDB = CurrentDB() Set MySet = MyDB.OpenRecordset("Select * from Employees", dbOpenDynaset)E Leggi tutto il post...
venerdì, 29 mag 2009 Ore. 16.55
Verificare l'esistenza di un controllo in VB6 (Exists)
Può capitare, anche non lavorando necessariamente con oggetti creati a run-time, di dover verificare se all'interno della nostra form esiste già un determinato controllo.Per l'occorrenza ecco qui una routine un po' datata, ma sempre efficace.
Ad esempio, supponiamo di dover verificare se esiste l'elemento di indice 5 di un array di controlli.
Leggi tutto il post...
martedì, 14 apr 2009 Ore. 11.29
Recuperare il numero di elementi contenuti in un array. (getArrayDim)
Dato un ipotetico array, sia esso di valori o di controlli, la funzione restituisce il numero di elementi che lo compongono.La funzione restituirà -1 qualora l'elemento passato non fosse un array
AggiornamentoLa funzione getArrayDim era già stata trattata nel post "Verificare se un array è nothing". Nella versione proposta qui di seguito, è stata aggiunta la possibilità di analizzare anche array di controlli.
Per completezza si consiglia di consultare tale post dove, tra le altre cose, veniva Leggi tutto il post...
venerdì, 10 apr 2009 Ore. 16.14
Verificare se un array è nothing
Di un Array possiamo conoscere l'indice superiore o quello inferiore, ridimensionarne la struttura, scorrerne gli elementi ecc. ecc.. Tramite la funzione isArray() è anche possibile ricavare se una variabile è un array oppure no. Dim mioArray() Leggi tutto il post...
venerdì, 13 feb 2009 Ore. 14.38
Pad (riempimento) in VB6
A differenza di Vb.Net che espone le proprietà .PadLeft e .PadRight di una stringa, VB6 non ha una funzione Pad (riempimento) simile e, alla fine, bisogna un po' arrangiarsi.
La funzione Pad qui riportata si preoccupa di effettuare tale operazione.Ho preferito non utilizzare due funzioni distinte per il PadLeft e PadRight, ma una sola Pad che discriminasse le due operazioni in base al valore dei parametri passati.Più precisamente, se passo un numero negativo come lunghezza della stringa ri Leggi tutto il post...
lunedì, 19 mag 2008 Ore. 15.10
Errore 53 (File Not Found) chiamando una funzione di DLL custom.
Questo errore viene sollevato nel momento in cui si fa riferimento ad una funzione di una DLL caricata attraverso la dichiarazione:Private Declare Function theFunction Lib "custom.DLL" (Byval par1 as string, par2 as string ....) as long
Il messaggio d'errore "File Not Found" indicherà il nome stesso della nostra DLL anche se questa è regolarmente presente nella directory specificata od in una di quelle del path di ricerca.In realtà non è la DLL a non essere trovata bensì una sua dipendenza.
Pe Leggi tutto il post...
venerdì, 14 mar 2008 Ore. 17.04
Array multidimensionali in VB6
Ancora qualche precisazione sull'utilizzo degli array in VB6.Nel post precedente abbiamo visto come era possibile impostare gli indici inferiori e superiori di un array e come fosse possibile recuperarne le informazioni attraverso le funzioni Lbound e Ubound.
Proseguiamo con altre precisazioni.Atrraverso l'istruzione ReDim è possibile riallocare lo spazio di memorizzazione per un array dinamico, ma solo se questo è stato dichiarato senza dimensioni.Es.Dim myArray() As IntegerReDim myArray(0 To Leggi tutto il post...
mercoledì, 25 lug 2007 Ore. 15.20
Valore massimo di un array - getMax
Nell'ultimo periodo mi è giunta più di una richiesta per ottenere il valore massimo all'interno degli elementi di un array o, più semplicemente, tra due valori posti a confronto.Ecco qui una semplicissima quanto rozza funzione che può tornare utile.
La funzione ha un unico parametro obbligatorio denominato Value1 di tipo variant che potrà rappresentare il nostro insieme di array o semplicemente il primo valore di confronto.Se si passa un array di elementi, verrà attuato un contronto in funzione Leggi tutto il post...
martedì, 12 giu 2007 Ore. 15.01
Array - alcune precisazioni
In VB6 quando si dimensiona un array è possibile specificarne sia l'indice inferiore che quello superiore.Es.Dim myArray(4 to 9) as Integer Questa dichiarazione dimensionerà un array di interi di 6 elementi avente indice inferiore uguale a 4 e quello superiore a 9.Omettendo l'indice inferiore si assume come tale quello definito nella dichiarazione Option Base [0/1]
Es.Option Base 0Dim myArray(9) as Integer L'array di interi conterrà 10 elementi ed avrà come indice inferiore 0
Option Base 1Dim Leggi tutto il post...
mercoledì, 06 giu 2007 Ore. 11.03
Attenzione ai loop mal gestiti.
Istrizione utilizzata per ripetere un blocco di codice fino a quando una condizione booleana resta o non diventa True.
Fino a qui nulla di strano. Il problema può nascere da un suo improprio utilzzo.Che cosa accade alla nostra applicazione se la condizione di uscita dal loop non si presentasse mai?Mi spiego meglio: ho visto che molto spesso si tende ad utilizzare questo loop come cuore dell'applicazione, vale a dire che al suo interno vi sono una serie di operazioni che continuano ad essere rip Leggi tutto il post...
giovedì, 15 mar 2007 Ore. 13.39
Verificare se un file è aperto in modo esclusivo.
Ecco un paio di sistemi molto semplici per verificare se è possibile accedere ad un file o se questo è stato aperto in modo esclusivo da qualche altra applicazione.
I sorgenti sono compatibili con Visual Basic 5 e Visual Basic 6
La prima funzione sfrutta le consuete API di Windows:
Private Const GENERIC_READ As Long = &H80000000Private Const INVALID_HANDLE_VALUE As Long = -1Private Const OPEN_EXISTING As Long = 3Private Const FILE_ATTRIBUTE_NORMAL As Long = &H80
Private De Leggi tutto il post...
lunedì, 05 mar 2007 Ore. 17.23
Recuperare il nome della directory temporanea di Windows
Ancora un'API di Windows, questa volta per recuperare il nome della directory temporanea del sistema.Il sorgente è compatibile con Visual Basic 5 e Visual Basic 6
Public Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long }}--> }}-->Public Function GetTempDir() As String }}-->'*********************************************************************************** }}-->'Func.: }}--> &n Leggi tutto il post...
giovedì, 01 mar 2007 Ore. 17.29
Recuperare il nome del pc attualmente in uso.
Altro semplice esempio questa volta per recuperare il nome del computer in uso.Il sorgente è compatibile con Visual Basic 5 e Visual Basic 6
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
Public Function GetPCName() As String'**************************************************************************'Func.: GetPCName (Creazione SB-29/03/2000; Mod.: )'Desc.: Restituisce il nome del PC in uso'Par. :'Ret. : Il nome Leggi tutto il post...
martedì, 27 feb 2007 Ore. 15.06
Recuperare il nome dell'utente attualmente loggato
Questo semplice esempio restituisce il nome dell'utente attualmente loggato a Windows.Il sorgente è compatibile con Visual Basic 5 e Visual Basic 6
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, byRef nSize As Long) As Long
Public Function GetUName() As String'***********************************************************************'Func.: GetUName (SB-29/03/2000; Mod.: )'Desc.: Restituisce l'user name d'accesso a Windows'Par Leggi tutto il post...
martedì, 27 feb 2007 Ore. 13.55
Altro metodo per il calcolo della Pasqua - EasterDay in VB
Dopo aver visto come calcolare il giorno di Pasqua con SQL Server ora diamo un'occhiata a questa semplice funzione VB6 che, in modo molto simile, ottiene lo stesso risultato.
Private Function EasterDay(Optional ByVal Y As Integer = 2007) As Date'***********************************************************************************'Func.: EasterDay (Mod SB-16/02/2007; Mod.: )'Desc.:   Leggi tutto il post...
venerdì, 16 feb 2007 Ore. 18.28
Anno bisestile in VB6
Dopo aver visto come ricavare se un anno è bisestile o no in SQL Server, vediamo come fare la stessa operazione con Visual Basic 6.Eseguendo lo stesso calcolo la nostra funzione diventa:
Function IsLeapYear(ByVal yr As Integer) As Boolean IsLeapYear = (Day(DateAdd("d", -1, "1/3/" & yr)) = 29)End Function
Altra possibilità è quella di eseguire un calcolo più dettagliato sull'anno in questo modo:
Private Function IsLeapYear(ByVal yr As Integer) As Boolean 'Controlla se l'a Leggi tutto il post...
mercoledì, 17 gen 2007 Ore. 18.14
Pixel RGB color under cursor
Come possiamo recuperare il valore RGB del pixel che si trova sotto il cursore del mouse?Nell'esempio seguente sfrutteremo tre API di Windows e poche riche di codice.Apriamo un nuovo progetto VB6 con un form ed un controllo timer in esso e copiamo il seguente codice. Una volta avviato nella caption del titolo della form verranno riportati i valori RGB del pixel sotto il puntatore del mouse, in qualsiasi parte dello schermo esso si trovi.Option ExplicitPrivate Type POINTAPI X As Leggi tutto il post...
venerdì, 05 gen 2007 Ore. 17.36
Come sapere se sono in debug mode. Review
Nel precedente post avevo trattato la possibilità di verificare se il nostro codice in esecuzione fosse in modalità debug oppure no.Mi sono accorto, però, che le routine d'esempio avevano qualche problema rendendo inutile la funzione isDebugMode. Il motivo è proprio nella chiamata debug.assert.Diamo un'occhiata al codice difettoso:Public Function isDebugMode() As Boolean Debug.Assert Not myCheck(isDebugMode)End FunctionPrivate Function myCheck(ByVal bValue As Boolean) As B Leggi tutto il post...
martedì, 10 ott 2006 Ore. 18.57
Come sapere se sono in debug mode.
Scrivendo applicazioni in VB6 potrebbe tornar utile sapere se il codice in esecuzione è in modalità debug oppure no, magari per far eseguire particolari istruzioni solo una volta che il programma sarà compilato.Un sistema veloce è quello di affidarsi all'oggetto debug; infatti sappiamo che le istruzioni debug.print e debug.assert vengono scartate una volta compilato il nostro sorgente e le seguenti due routine sfruttano proprio tale situazione.Public Function isDebugMode() As Boolean Leggi tutto il post...
venerdì, 29 set 2006 Ore. 12.15
Oggetto Printer e caratteri asiatici.
Su alcuni applicativi realizzati in VB6 SP5 (ma sembra anche con SP6) che dovevano stampare font asiatici, nel mio caso ideogrammi coreani, si sono riscontrati gravi errori di stampa su alcuni modelli di stampanti HP recenti. (Il test è stato fatto su una HP DeskJet D2300)Più precisamente, la pagina stampata conteneva solo alcuni dei caratteri inviati all'oggetto Printer!Anche l'installazione dei più recenti drivers non ha dato nessun esito.Il sito ufficiale HP, newsgroup e Microsoft non ripotav Leggi tutto il post...
giovedì, 14 set 2006 Ore. 11.14
|
Statistiche |
- Views Home Page: 111.534
- Views Posts: 568.258
- Views Gallerie: 117.516
- n° Posts: 227
- n° Commenti: 222
|
|