RecordSet

giovedì 15 luglio 2004 - 10.54

AntCiar Profilo | Expert

Ciao
Avrei bisogno di creare un recordset per poter leggere dati da un db Access. I dati che deve contenere il recordset devono essere selezionati tramite istruzione SQL. Ho inserito nel mio progetto il riferimento ad DAO (versione 3.6) ed ho provato a scrivere qualcosa ma con esito negativo. Potreste darmi voi qualche riga di codice?

PS So che esistono anche i datareader e già li ho usati, ma purtroppo sono vincolato a dover usare il recordset

Grazie

alextyx Profilo | Expert

Ma devi usare per forza dei recordset DAO o t vanno bene anche gli ADODB.Recordset (io uso ADO)?

AntCiar Profilo | Expert

Non so se il controllo a cui devo associarli funzioni. Tentare non nuoce. Ok, quale righe devo inserire per aprirne uno con ADODB?

alextyx Profilo | Expert

Intanto devi riferire:

Microsoft ActiveX Data Objects 2.7 Library

Poi devi aprore una connessione al database:

StrConn="Provider=Microsoft.jet.OLEDB.4.0;" & "Data Source= e:\backup\aea\datinet\Dati_1.1\GinNet.mdb"

Dim Cn As New ADODB.Connection

Cn.Open(StrConn)

Poi puoi dichiarare e usare i recordset:

Dim rs As New ADODB.Recordset

Dim sql As String

sql = "SELECT NumeroDocumento FROM TabRegistrazioni WHERE IDRegistrazione=" & IDReg.ToString

rs.Open(sql, Cn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockReadOnly)

rs.MoveFirst()

FnzNumeroFatturaDaIDReg = rs.Fields("NumeroDocumento").Value

rs.Close()
rs = Nothing

Spero che serva a darti un'idea. Resto a disposizione x eventuali chiarimenti.
Quello che mi preme sottolineare è che i controlli nn sono associati (data binding) al database, ma è il codice che legge e scrive nei controlli. Se usi il data binding, di codice devi scriverne meno, ma nn so aiutarti...nn l'ho mai fatto!

Brainkiller Profilo | Guru

Ciao Antciar,
vedo che stai sviluppando in VB.NET.
Il concetto di Recordset non esiste più, è anche paradossale che tu vada ad utilizzare ADO 2.8 o classi precedenti in un progetto VB.NET.
Se stai usando VB 6.0 invece può andare bene anche ADO.

Si, infatti in ADO.NET il Recordset ha cambiato nome e si chiama DataReader che però è un po' diverso.

ciao
david

alextyx Profilo | Expert

In effetti, se tornassi indietro passerei anch'io all'uso di ADO.NET, ma visto che ormai l'applicazione cui sto lavorando l'ho partorita con ADO, continuo con lui.:-)
Penso, tuttavia, che il vantaggio di ADO.NET si veda soprattutto con il lavoro Off-Line, quando si lavora sulla copia del database che il dataset rappresenta. Sicuramente ADO.NET ha strumenti più potenti, ma ADO ne ha di molto semplici. Comunque la discriminante fu il decidere di poter usare il locking pessimistico. A dire il vero, a posteriori, nn mi sembra più così importante, ma al momento mi sembrava diversamente. Per ottenere un lock pessimistico con ADO.NET, credo esista una specie di trucco basato su un certo uso delle Transazioni, ma si tratta di una brutta forzatura. Comunque sia, fortuna ha voluto ch'io abbia deciso così, a torto o a ragione....mi permette di aiutare altri amici vincolati (nn ho capito perchè) all'uso dei recordset :-)))
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5