Newsgroup: it.comp.lang.visual-basic
Titolo: Ado... :((((

Salve,
Sto disperatamente cercando di metter su un'app di test per ADO, ma senza
grandi risultati.
Ecco il mio codice:
Private Sub Form_Load()
  Dim RS As Recordset
  Set RS = Adodc1.Recordset
  RS.Open
  Text1.Text = RS.Fields.Item(1).Name
End Sub
Dove sbaglio? Tenete conto che la stringa di connessione è sicuramente
corretta.
Grazie,
Andrea

 wrote in message
news:ata1m7$11seft$1...@ID-170738.news.dfncis.de...


 corretta.
quale č il problema? se non capisco male questo codice dovrebbe far apparire
(in text1) il nome del campo(1) (se c'č) del recordset associato al
controllo adodc, cosa mostra, invece?
Salutoni
Sergio

[Luigi]
(snip)
azz.... hai ragione tu!!
Salutoni
Sergio


ripensandoci, però...... non è vero: che senso avrebbe istanziarlo ad un
nuovo recordset quando poi lo si riferisce ad un recordset esistente.....
Salutoni
Sergio

 nuovo recordset quando poi lo si riferisce ad un recordset
esistente.....
mi sa anche a me. in 5 anni di dao ho sempre usato
    dim rs as recordset
    set rs
    rs.index
    set dc.recordset=rs
e direi funzioni (*) anche in ado
mo' vedo se ne vale anche la pena.
(*) "funzionare": si fa per dire. nel tempo della connessione ado, in
dao avevo gia' fatto, sulla stessa base, apertura, seek, shellexec
(sono url), unload....
aspetto positivo: con ado ho il tempo di portar fuori j.

 wrote in message
news:ata22t$11lr49$1...@ID-173193.news.dfncis.de...


CSSoft ha scritto:

Infatti.
Semmai Dim RS As ADODB.Recordset    'Per evitare eventuali con DAO
coesistente
  Set RS = Adodc1.Recordset        'Il problema è questo: Cosa c'è in
adodc1.Recordset?
  RS.Open    'Mi perplime: Se ho già il recordset (SETtato su RS) perchè
riaprirlo?
  Text1.Text = RS.Fields.Item(1).Name    'Toglierei anche .Item

 Sergio
Ciao,
Andrea

 il recorset è un oggetto per valorizzarlo devi istanziarlo
ben vero, e quello che si fa con:
set rs = adodc1.recordset
(ma appena dopo aver postato il messaggio vado a provarlo....)
Salutoni
Sergio

   Text1.Text = RS.Fields.Item(1).Name    'Toglierei anche .Item
Oki
Andrea

 Errore run-time 91: variabile oggetto o variabile blocco non impostata.
ideona!
non è che il problema è dovuto al fatto che sei nell'evento load della
maschera, quando i controlli non sono ancora stati completamente creati?
Salutoni
Sergio
p.s. leggi anche il post di lupo: dovrebbe essere inutile fare l'open del
recordset....

 del recordset....
Provveduto
Ciao
Andrea

 perchè riaprirlo?
RS.Open COSA?
Come sono settate le proprietà esplicite (visto che non sono sulla stessa
riga di RS.Open), ovvero quelle previste in questa sintassi:
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
?


La connectionstring è
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=LAVITA_Svi;Data Source=SERVER1"
Tutte le altre sono a default.
Andrea

The DeerBear ha scritto:

L'unica che non interessava. Credo che manchi un tot di roba!
Fai una cosa. Mantieni l'apertura di RS e togli la riga che fa riferimento a
adodc1.
Secondo te che succede?

 Nu :((((
scusa... cosa vuol dire Nu? hai provato a mettere lo stesso codice
nell'evento click di un bottone e a vedere cosa succede con la pressione del
bottone?
Salutoni
Sergio

 Sergio
Ciao
Andrea

 Secondo te che succede?
Mettendo una query ed una connectionstring valide, funziona tutto.
Andrea

 Esatto.
allora direi che il problema č dovuto al fatto che non hai nessun controllo
che usa l'adodc1 come datasource
Salutoni
Sergio

[CSSoft]
(snip)
Aggiungo che il controllo adodc č_una_brutta_bestia
ho dovuto fare qualche prova per capire il tuo problema, e la soluzione non
č per nulla "razionale"
Salutoni
Sergio

 Text1.Text = RS.Fields.Item(1).Name
text1.text=rs.fields("nomecampo")
oppure
text1.text=RS!nomecampo
per posizionarti su un recordset che vuoi ..
rs.move=numerorecordset ..
enjoy ..
[t]Eo
--
|| TORNO SUBITO ||
" .. Sono fuori di testa. Tornerò tra cinque minuti .."

The DeerBear ha scritto:

Bene, non ne dubitavo. Allora, se proprio non puoi fare a meno di un
controllo data (adodc1), prova a togliere la open di RS (che hai già settato
prima). Se non va ancora significa che non è possibile fare il Set di RS con
adodc1.Recordset. Forse, al posto di Recordset occorre il comando SQL, per
esempio Source o RecordSource.

per essere un filino + preciso .. visto che alcuni di voi sono stati davvero
gentili con me .. e mi hanno sempre aiutato ..
Dim myConn As New adodb.Connection
Dim myRS As New Recordset
myConn.Open "setta la connessione" 'apro la connessione
'stringa sql
myrs.open "SELECT * FROM quello che vuoi", myconn
myrs.move=10            'mi posiziono sul record 10
msgbox myrs!campo1    'stampo il campo(campo1) del record 10
'chiudo il recordset
myrs.close
'chiudo la connessione
myconn.close
ecco cosi dovrebbe essere a posto  ... spero di averti aiutato


 ha scritto

dunque, e' il mio primo ado, quindi fara' schifo
(chi ne ha voglia dia pure delle dritte)
pero' la tabella la apre (con molta calma) e i combo e list li popola.
essendo a pari esperienza con la tua, magari ti serve.
il datacontrol e' settato su un mdb con una stringa creata da vb.
a manina ho tolto il percorso dalla stringa dentro il .frm, lasciandoo
solo il nome del db. non mi sento di consigliare questo metodo, ma
intanto va e non rompe col percorso.
i textbox sono collegati in design al datacontrol. l'ho sempre fatto
con dao per non impazzire col codice ed e' sempre andato. anche qui
sembra funzionare.
una cosa che mi piacerebbe intanto capire e' se la griglia puo' tenere
la riga nera sul record anche quando perde il fuoco.
e quella che chiedevo l'altro giorno, non riesco a caricare solo un
list/combo e duplicarlo negli altri due ?
hth
'bas
Public Function sConn(sDb As String, Optional sPwd As String)
    If sDb = "" Then
        MsgBox "forse e' maglio passare il nome di un db..."
        Exit Function
    End If
    sConn = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & sDb & ";"
        If sPwd <> "" Then _
            sConn = sConn & "Password=" & MyQUOT & sPwd & MyQUOT & ";"
        sConn = sConn & "Persist Security Info=False"
End Function
'frm
Private Sub Form_Load()
    Set db = New Connection
    db.CursorLocation = adUseClient
    db.Open sConn("net2.mdb")
    Dim rs As New Recordset
    rs.Open "select area from aree order by area", db, adOpenStatic,
adLockOptimistic
    With rs
        .MoveFirst
        Do While Not .EOF
            cboArea.AddItem !area
            cboUrlArea.AddItem !area
            lstArea.AddItem !area
            .MoveNext
        Loop
        .Close
    End With
    Set rs = Nothing
    BuildSql 'costruisce la query sulla base di tre combo
    rsInd.Open sSql, db, adOpenStatic, adLockOptimistic
    Set dcUrl.Recordset = rsInd
    dcUrl.Refresh
    setDbgWidth
End Sub

 Public Function sConn(sDb As String, Optional sPwd As String)
Dov'è il tipo di ritorno?
Andrea

 Dov'è il tipo di ritorno?
bella domanda. in realta' e' una sub. tanto vb e' di manica larga e
non distingue granche' :)
ciao