Ciao a tutti,
sono nuova nel forum. Ho praticamente scaravoltato tutto Internet ma non sono riuscita a trovare una soluzione al mio problema; premetto che programmo da pochissimo con VB.NET quindi può anche darsi che io non abbia capito niente, per cui vi chiedo di avere pazienza.
Allora: ho crato un'applicazione che si connette a un database Access [2002] molto semplice. Riesco a popolare il database tranquillamente attraverso OleDbConnection e le varie query di selezione, update, delete ecc. Il problema sorge nel momento in cui cerco di eseguire una query di selezione che utilizza una funzione che ho creato io all'interno di un modulo. Vi posto il codice della query e del modulo che contiente la funzione incriminata chiamata Levenshtein:
TermineRiga(x) fa parte di un array di stringhe che viene esaminato attraverso un ciclo For in cui cerco di eseguire la query che dovrebbe utilizzare TermineRiga(x) per confrontarla con i record della mia tabella.
Module Algoritmo
Function Min3(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
Dim temp As Integer
temp = a
If b < temp Then temp = b
If c < temp Then temp = c
Min3 = temp
End Function
'algoritmo di Levenshtein per calcolare la similitudine tra due stringhe
Public Function Levenshtein(ByVal a As String, ByVal b As String) As Integer
Dim d(,) As Integer
Dim i As Integer, j As Integer
Dim c As Integer
If Len(a) = 0 Then
Levenshtein = Len(b)
Exit Function
End If
If Len(b) = 0 Then
Levenshtein = Len(a)
Exit Function
End If
ReDim d(0 To Len(a), 0 To Len(b))
For i = 0 To Len(a)
d(i, 0) = i
Next i
For j = 0 To Len(b)
d(0, j) = j
Next j
For i = 1 To Len(a)
For j = 1 To Len(b)
If Mid$(a, i, 1) = Mid$(b, j, 1) Then
c = 0
Else
c = 1
End If
d(i, j) = Min3(d(i - 1, j) + 1, d(i, j - 1) + 1, d(i - 1, j - 1) + c)
Next j
Next i
Levenshtein = d(Len(a), Len(b))
End Function
End Module
Nel programma la funzione Levenshtein viene vista tranquillamente il problema è che quando cerco di eseguire la query cmd.ExecuteNonQuery()
mi si presenta il seguente errore: Funzione 'Levenshtein' non definita nell'espressione.
Ora è molto probabile che io stia sbagliando qualcosa, ma non ho trovato nulla che possa aiutarmi a capire come devo fare per utilizzare questa funzione nella query. Mi potete aiutare?
Abbiate pazienza!
ciao, carlotta