Newsgroup: it.comp.www.asp
Titolo: Recordset.AddNew in VBScript

Saluti a tutti, sto realizzando un piccolo VBscript,  da inserire in una
pagina ASP, che dovrebbe connettersi ad un DB Access e, semplicemente,
accodare ad una tabella un nuovo record.
Per l'oggetto recordset esiste un metodo 'AddNew' che fa il suo dovere in
VBA, ma non troppo con le ADO in VBS, infatti ad ogni tentativo ottengo un
messaggio del tipo 'l'applicazione ha richiesto un metodo non supportato dal
provider', mentre per altri metodi l'ogetto ADODB.Recordset in questione
funziona a dovere.
Devo settare i qualche maniera particolare la ADODB.Connection? o forse il
problema e' esterno (NT, ASP...)? o e' il Recordset stesso a dover essere
dichiarato in qualche modo specifico (visto che anche il metodo .Update e
pochi altri danno lo stesso problema)?
Vi rigrazio per la pazienza...
Alberto

Ho trovato questo!!!!! E' dalle 21.00 che mi sto scervellando (serviva pure
a me) e in 2 secondi di navigazione (mi è servito un caffé per ricordarmi di
Internet) ho trovato ciò che mi serviva !!!!!!!!!!!!
Questo è per aggiungere un nuovo record con ADO:
<html><head>
<title>dbnewrec.asp</title></head>
<body bgcolor="#FFFFFF">
<% ' My ASP program that allows you to append a record %>
<form name="myauthor" action="dbnewADOrespond.asp" method="GET">
<p>Author ID: <input type="TEXT" name="id"></p>
<p> Author Name: <input type="TEXT" name="name"></p>
<p> Year Born: <input type="TEXT" name="year"></p>
<p> <input type="SUBMIT"> </p>
</form></body></html>
The form responder looks like this:
<TITLE>dbnewADO.asp</TITLE>
<body bgcolor="#FFFFFF">
<HTML>
<!--#INCLUDE VIRTUAL="/ADOVBS.INC" -->
<%
'on error resume next
auname=request.querystring("name")
auyear=request.querystring("year")
auID=request.querystring("ID")
If  auid<9000 then
   auid=auid+9000
end if
conn="DSN=Student;uid=student;pwd=magic"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "authors",Conn,adopenstatic,adlockoptimistic
RS.AddNew
RS("AU_ID")=auid
RS("Author") = auname
RS("Year_Born")= int(auyear)
RS.Update
RS.Close
set rs=nothing
If  err.number>0 then
      response.write "VBScript Errors Occured:" & "<P>"
      response.write "Error Number=" & err.number & "<P>"
      response.write "Error Descr.=" & err.description & "<P>"
      response.write "Help Context=" & err.helpcontext & "<P>"
      response.write "Help Path=" & err.helppath & "<P>"
      response.write "Native Error=" & err.nativeerror & "<P>"
      response.write "Source=" & err.source & "<P>"
      response.write "SQLState=" & err.sqlstate & "<P>"
else
      response.write "Record was added Fine!<P>"
end if
%>
</BODY>
</HTML>
Piu' tardi lo proverò e vi dirò se funziona, intanto lo posto qui così in
caso ci fossero errori mi date una mano a correggerlo ;-D
Bye, Manuel

RS.Open "authors",Conn,adopenstatic,adlockoptimistic
il default e' adlockreadonly... per cui niente ADD...
ciao,

Anche io ho trovato qualcosa, non ho ancora provato ma credo che il problema
stava nell'apertura del recordset.
<!-- #include file="adovbs.inc" -->
<%
  ' Create a RecordSet object
  Set Rs = Server.CreateObject("ADODB.RecordSet")
  ' Open the table
  Rs.Open "tUsers", "AutoExample", adOpenKeySet, adLockPessimistic,
adCmdTable
  ' Add a new record
  Rs.AddNew
    Rs("UserName") = Request.Form("USERNAME")
    Rs("UserEmail") = Request.Form("USEREMAIL")
  ' Update the record
  Rs.Update
  ' Retrive the ID
  lUserID = Rs("UserID")
  ' Close the RecordSet
  Rs.Close
  Set Rs = Nothing
%>
<HTML>
<BODY BGCOLOR=FFFFFF>
<H3>Autonumber Example</H3>
<P>
Thank you, <% =Request.Form("USERNAME") %>! Your ID is <% =lUserID %>.
</P>
<P>Visit <A HREF="
http://www.kamath.com/
">Active Server Corner</A> for more
examples.
</BODY>
</HTML>