Newsgroup: it.comp.lang.visual-basic
Titolo: SQL - Ueeeeeee

Ciao a tutti
Ho il seguente problema che non so risolvere. 
Sto cercando di modificare alcune cose del progetto che ho scritto
avventurandomi
con il linguaggio SQL.
Premetto che prima delle modifiche prendevo i valori di alcune variabili
da alcune matrici statiche che avevo scritto a livello di modulo ( per
l’esattezza le avevo messe nella Property Get di alcune proprietà di
oggetti e funzionano perfettamente)
Il fatto di averle li mi rende però la vita difficile qualora debba fare
delle modifiche e quindi zac… ho pensato di mettere questi valori dentro
un database Access.
Vengo al problema.
Ho una proprietà denominata Aliquota e nella Property Get ho messo una
chiamata ad una Sub che ho messo dentro un Modulo.bas. Già qui mi sa che
ho sbagliato e sarebbe più idoneo chiamare la Sub FindAliquote da
un'altra parte vero?
Comunque il problema è che non ho nessun tipo di errore ma anche se
cambia la qualifica e l’anzianità la riga “Aliquota.Servizio =
rs!AlServizio” mi da sempre lo stesso risultato ossia il primo dato del
database.
Ufffffffffffffffffffffffff  mi date una mano a capire l’errore?
Vi lascio il codice sotto!
---------------------------------
[CAliquote]
Public Property Get Servizio() As Double
FindAliquote CInt(Anz.AnzianitàVariabile), CStr(Impiegato.Qualifica)
Servizio = dblServizio
End Property
Public Property Let Servizio(ByVal vnewvalue As Double)
dblServizio = vnewvalue
End Property
-------------------------------
Public Sub FindAliquote(Anzianità As Integer, Qualifica As String)
Dim AnzianitàFisso As Integer
OpenDBAL
If Qualifica <> "NULL" Then
    rs.Open "ServizioEuro", Conn1, , , adCmdTable
    strSQL = "SELECT * FROM ServizioEuro WHERE Anzianità =" & _
Anz.AnzianitàVariabile & _  "AND Qualifica=" & Impiegato.Qualifica
    '
    MDIForm1.Data1.RecordSource = strSQL
    MDIForm1.Data1.Refresh
    Aliquota.Servizio = rs!AlServizio
End If
End Sub
----------------------------------
Sub OpenDBAL()
  '--------------------------------------------------------------------
  'Connessione al Database
  '--------------------------------------------------------------------
  Set Conn1 = New ADODB.Connection
  Set rs = New ADODB.Recordset
  rs.CursorType = adOpenKeyset
  rs.LockType = adLockOptimistic
  rs.CursorLocation = adUseClient
  Dim DBPath As String
  '--------------------------------------------------------------------
  ‘Il DB è nella stessa directory del programma.
  '--------------------------------------------------------------------
  If Right(App.Path, 1) <> "\" Then
    DBPath = App.Path & "\"
  Else
    DBPath = App.Path
  End If
 
  DBPath = DBPath & "Aliquote.mdb"
  ' strCnn is the Connection String
  strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;"
  strCnn = strCnn & "Data Source=" & DBPath & ";"
  strCnn = strCnn & "Mode=Read|Write;Persist Security Info=False"
  Conn1.Open strCnn
 
End Sub
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

     Aliquota.Servizio = rs!AlServizio
Pensaci bene... cosa c'entra il data control Data1 con il recordset rs?
Non è che invece dovevi utilizzare la stringa SQL direttamente nella open del
Recordset, oppure al limite utilizzare rs.Filter?
Bye
Raf

 con il linguaggio SQL.
If Qualifica <> "NULL" Then
    rs.Open "ServizioEuro", Conn1, , , adCmdTable
    strSQL = "SELECT * FROM ServizioEuro WHERE Anzianità =" & _
Anz.AnzianitàVariabile & _  "AND Qualifica=" & Impiegato.Qualifica
    '
fatti una print della strSQL e prova ad eseguirla direttamente sul database 
e vedi che ti restituisce
ciao Carlo
---
www.oxwen.it
 

> Ciao a tutti
"Ueee..."
Aoh, a me sti subject mi indispettiscono davvero una cifra...
caxxo.

 Recordset, oppure al limite utilizzare rs.Filter?
Raf non iniziare eh!
Ora ti rispondo senza aver la possibilità  di fare ulteriori prove.
Il codice che vedi è il primo in assoluto  che scrivo per operare su un
database .
Pensavo fossi obligata a mettere un datacontrol sul Form anche usando
direttamente comandi SQL
PS.
Oggi ho fatto un super lavorone per te.. hehehe... Poi ti dico in private.
Debby

 
Beh! Scusa non era mio volere indispettirti, spero che "caxxo" sia la tua
firma perché a me indispettiscono le censure ipocrite e chi dice parolacce
;)
Baci Akuma caxxo senza rancore 
Debby 

 Oggi ho fatto un super lavorone per te.. hehehe... Poi ti dico in private.
nonono', adesso lo dici in pubblico :)

 Debby
Quante belle parole.
SI chiama Netiquette.
Insegna un sacco di cose su come comportarsi su Usenet.
Tu oltre a essere permalosa,
hai violato la netiquette,
e le regole del Ng.
Prima di parlare, informati. 

 Debby
Aspetto di vedere cosa hai "combinato" =:-) al venerdì sera invece di uscire per
una pizza e/o a ballare... Mah...
Bye
Raf

 Prima di parlare, informati.
Tu prima di scrivere connetti il cervello
Debby

 una pizza e/o a ballare... Mah...
Hai presente quel famoso progetto?
Siccome te lo devo spedire ho pensato di ripulirlo tutto tutto e di
ricostruire le classi con il sistema
che mi hai indicato tu in modo di andare per gradi e di darti una cosa piu
pulita. Allora ho aperto un nuovo progetto
mi sono scritta tutta la progettazione su un file word e piano piano sto
riscrivendo tutto ( non puoi capire le cose
inutili che ho trovato - codice scritto provato e dimenticato)
Comunque venerdi non mi andava di uscire e la mail l'avevo scritta nel
pomeriggio ma mi ero dimenticata
di spedirtela
Debby

 Debby
Ciao
Raf

 parlando"
O "netiquetticamente"? :)
Tutti nervosetti in questi giorni eh? :)
Cerchiamo di abbassare i livelli di indisponibilità, perchè può essere che i 
post ultimamente non siano particolarmente interessanti, ma questo non 
giustifiaca i post cafoni di risposta che sto leggendo a *decinaia* in 
questo periodo.
Ciao

 Ottima inizativa, un po' di refactoring non può che fare bene...
Si indubbiamente è un bel lavoro perchè di spazzatura ce n'era davvero tanta
Mi vergogno un pò a farti vedere il mio lavoro in quel modo. Ma non sono
ancora
pronta a mostrartelo devo prima fare ulteriore pulizia. Se no poi non ci
capisci
nulla.
Sto andando di pari passo con la progettazione scritta. Quando arrivo
all'evento
di un pulsante scrivo tutta la logica che ho messo.
Azz se trovi errori oltre che pessima prorammatrice mi dirai purte che sono
stupida =)
Grazie
Debby

 questo periodo.
???? Io di certo non sono stata cafona, stupido č chi stupido fa.
Miao miao
Debby

 ???? Io di certo non sono stata cafona, stupido č chi stupido fa.
Non mi riferivo a te.
Ciao 

 Debby
Ciao

Sbagliavo i parametri del metodo rs.open
Li ho provati tutti fino a che ho trovato il modo di leggerli alla fine
ho scritto questa funzione e sembra vada bene o meglio legge i parametri
giusti
Public Function TrovaDati(strSQL As String)
'Dim vConString As String
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
'Si assicura che la connessione non sia gia aperta
If cn.state <> 0 Then cn.Close
'Apre la Connessione
cn.Open strCnn
With rs
    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic
    rs.Open strSQL, cn, , , adCmdText
End With
Debug.Print rs(0).Value
TrovaDati = rs(0).Value
End Function
Per la cronaca questo problema mi ha fermata per una settimana


> mmmh... come hai fatto a scoprire la mia identitŕ? ;)
Beh! Non ci vuole un genio eh! 
Smack
Debby
PS
Domani andrň allo Sheraton per il Microsoft Mobility Conference,
hehehe...
Vi chiederete " ma che ci vai a fare se non sei neanche l'1% di un
programmatore?"
Giusto! Ma io ci vado lo stesso magari mi regalano qualcosa, qualche
gadget
o trovo un bel fustacchione ( senza occhiali stile NERDS) che mi
sopporta e
che io spolpo per bene per farmi da tudor personale ghghgh.....
 
Notte ragazzuoli
Debby
