Newsgroup: it.comp.www.asp
Titolo: MovePrevious

Non riesco a fare il MovePrevious su un recordset Access con ODBC, cioe' con
il DataSource creato dal pannello di controllo.
Qual'e' la stringa di connessione per accedere al database usando i metodi
"nativi"?

 ha scritto nel messaggio
news:a64qd1$bh7b3$1...@ID-130040.news.dfncis.de...

Io di solito per generare la stringa di connessione procedo cosi':
- Tasto destro su desktop, Nuovo, Documento di testo.
- Chiamare il nuovo documento come "test.udl"
- Doppio click su test.udl
- Nella tabella Provider, selezionare il tipo di connessione da utilizzare.
Per Access, ad esempio, Microsoft Jet 4.0 OLE DB Provider
- Cliccare Avanti
- Selezionare con il tasto [...] il file MDB da impostare come DataBase.
- Cliccare "Verifica Connessione"
- Se la verifica va a buon fine, dare OK
- Rinominare il file test.udl in test.udl.txt
- Aprire il file. Ci troviamo dentro qualcosa del genere:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WINDOWS\Deluxecd.mdb;Persist
Security Info=False
- Copiarsi la linea da "Provider..." in poi e sbatterla come Stringa di
connessione...
Facile, no?
Ciau
Claudio Valerio
Analista Programmatore
XXI.it S.r.l.
www.xxi.it


Moderatore di it.comp.www.asp
http://www.aspitalia.com
 Enjoy the .NET community!
http://www.dev2dev.it
 La rete ha connesso nuove particelle!

 rs.
Eh, lo so ... il problema e' trovarli...

Grazie!
In effetti e' facile, a sapere l'alchimia...
Ho provato, e per collegarsi si collega, peccato che non riesco a fargli
digerire il parametro adOpenDynamic
"con" e' la connection (aperta con la tua stringa)
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Inetpub\wwwroot\snif\database\GMP_Tables.mdb;Mode=ReadWrite|Share
Deny None;Persist Security Info=False"
"rs"e' il recordset:
L'istruzione "rs.open sqlstring, con, adOpenDynamic, adLockReadOnly" non
viene digerita proprio, infatti ottengo l'errore:
Error Type:
ADODB.Recordset (0x800A0CB3)
Object or provider is not capable of performing requested operation.
Ma nessuno usa Access con delle cose un po' piu' sofisticate di una select?

Niente da fare... Anche usando SQL SERVER:
Apro un recordset, faccio due movenext, un moveprevious e ottengo l'errore:
a.. Error Type:
ADODB.Recordset (0x800A0C93)
Operation is not allowed in this context.
/snif/browse1_sqlserver.asp, line 40
Il codice e':
set Con=server.createobject ("adodb.connection")
con.open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;User ID=administrator;Initial
Catalog=snif;Data Source=GMOWS055"
set RS = server.createobject ("adodb.recordset")
rs.pagesize=1
sqlstring = "  .... la mia stringa SQL select ..."
rs.open sqlstring, con, adOpenDynamic
if not RS.EOF then
rs.movenext
rs.movenext
rs.moveprevious
<< ERRORE >>


usa
rs.open strsql, cn, 3 'adopenstatic

 rs.open strsql, cn, 3 'adopenstatic
il problema non č poterlo fare, quanto il cercare di evitare di farlo.
lock type e cursor type di default sono i piů performanti in assoluto, per
cui se proprio bisogna andare indietro nel rs, ci sono altri sistemi.
per esempio, ordinare al contrario il recordset, oppure infilarlo in un
array.
