105 messaggi dal 25 dicembre 2004
Salve, ho fatto questo script, dove praticamente , ho una pagina mi mostra delle immagine, il cliente può acquistare il prodotto oppure andando sul link edit, modificarlo, anche decidere il prezzo, quantità o come lo vuole.
Lo script è questo:

<!--#include file="adovbs.inc" -->



<%
Sub AddRecord(whichData)
  Dim con
  Dim rsNews
  Dim BolFound
  Dim Operazione
  Dim Rec_ID
  Rec_ID = Request.Form("ID")
  
  set con = OpenDatabase()
  set rsNews = CreateRecordset(con, whichData)
  
  Do Until rsNews.EOF OR BolFound
   if (StrComp(rsNews("ID"), Rec_ID, vbtextCompare) = 0) then 
     BolFound = True 
     Else rsNews.MoveNext
   End If
  Loop
  operazione =  Request.Form("Type")
  Select Case operazione
       
    Case "Add"
      rsNews.AddNew
      StoreData rsNews, whichData
      rsNews.Update
      'rsNews.Close
      con.Close
      
    Case "Edit"
      StoreData rsNews, whichData
      rsNews.Update
      rsNews.Close
      con.Close
      
    Case "Del"
      rsNews.Delete
      rsNews.Close
      con.Close
    
  End Select
  
End Sub

Function OpenDatabase()

  

Dim con
Dim strDatabaseLocation
Dim User1
  Dim Foto
  Foto = Request.QueryString("Photo")
  User1 = Request.QueryString("User")
  TipoOp = Request.QueryString("Type")
  
  strDatabaseLocation = server.MapPath("mdb-database/jewel.mdb")
  
  set con = Server.CreateObject("ADODB.Connection")
  con.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & "Persist Security Info=False; DBQ=" & strDatabaseLocation
  
  con.Open db  
  Set MakeConnection = con
Set rsNew= Server.CreateObject("ADODB.recordset")
rsNew.ActiveConnection = Con
Set OpenDatabase = con









End Function

Function CreateRecordset(dcnDB, whichData)
  Dim rsNews
  Dim strSQL
  
  Dim Rec_ID
  Rec_ID = Request.Form("ID")
  
  
  Set rsNew= Server.CreateObject("ADODB.recordset")
  strSQL = "Select * FROM" & whichData
    'rsNew.Open strSQL
  
  
  
  'set CreateRecordset = rsNews




End Function



Sub StoreData(rsNews, whichData)

  'rsNews("Rec_ID") = request.Form("Rec_ID")
  rsNews("Nome") = request.Form("Nome")
  rsNews("Gender") = request.Form("Gender")
  rsNews("Body") = request.Form("Body")
  rsNews("Price") = request.Form("Price")   
  rsNews("Stone") = request.Form("Stone") 
  rsNews("Stones") = request.Form("Stones") 
End Sub





' -----------------------------------
'  Sub Main()
' -----------------------------------

Sub Main()

  Dim con       ' As ADODB.Connection
  Dim rsData       ' As ADODB.Recordset
  Dim intPageNum    ' As Integer
  'Dim strAction    ' As String
  'Dim mySession    ' As Array
  Dim whichData      ' As String
  
  
  TipoOp = Request.Form("Type")
  Record = Request.Form("ID")
  Linea = Request.Form("Linea")
  
  
  'mySession = Session("LoggedIn")
  whichData = Linea
  
  AddRecord whichData

  
End Sub

'
' Dopo aver letto tutto, Esegue Main
'
Call Main
%>

L'errore lo fa nella riga 34 , che è questa:

set rsNews = CreateRecordset(con, whichData)

il tipo d'errore è questo

Errore di run-time di Microsoft VBScript (0x800A01A8)
Necessario oggetto: 'CreateRecordset(...)'
/DeleteRec.asp, line 34


Come posso risolvere grazie per le risposte
Modificato da werwolfe il 30 dicembre 2005 14.45 -
La funzione "CreateRecordset" non ritorna nulla. Togli il commento alla riga di assegnazione del valore della funzione alla variabile "rsNews":

Function CreateRecordset(dcnDB, whichData) 
 ...
 ...
 Set CreateRecordset = rsNews 
End Function 


Tra l'altro mi sa che c'è anche qualche problema in quella funzione (il recordset rsNews non viene aperto...)

Matteo Casati
GURU4.net
105 messaggi dal 25 dicembre 2004
Grazie per la risposta, ho fatto ocme hai detto ma adesso l'errore me lo da alla riga 108, ti posto los cript cambiato e l'errore.

<%
Sub AddRecord(whichData)
  Dim con
  Dim rsNews
  Dim BolFound
  Dim Operazione
  Dim Rec_ID
  Rec_ID = Request.Form("ID")
  
  set con = OpenDatabase()
  set rsNews = CreateRecordset(con, whichData)
  
  Do Until rsNews.EOF OR BolFound
   if (StrComp(rsNews("ID"), Rec_ID, vbtextCompare) = 0) then 
     BolFound = True 
     Else rsNews.MoveNext
   End If
  Loop
  operazione =  Request.Form("Type")
  Select Case operazione
       
    Case "Add"
      rsNews.AddNew
      StoreData rsNews, whichData
      rsNews.Update
      'rsNews.Close
      con.Close
      
    Case "Edit"
      StoreData rsNews, whichData
      rsNews.Update
      rsNews.Close
      con.Close
      
    Case "Del"
      rsNews.Delete
      rsNews.Close
      con.Close
    
  End Select
  
End Sub

Function OpenDatabase()

  

Dim con
Dim strDatabaseLocation
Dim User1
  Dim Foto
  Foto = Request.QueryString("Photo")
  User1 = Request.QueryString("User")
  TipoOp = Request.QueryString("Type")
  
  strDatabaseLocation = server.MapPath("mdb-database/jewel.mdb")
  
  set con = Server.CreateObject("ADODB.Connection")
  con.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & "Persist Security Info=False; DBQ=" & strDatabaseLocation
  
  con.Open db  
  Set MakeConnection = con
Set rsNew= Server.CreateObject("ADODB.recordset")
rsNew.ActiveConnection = Con
Set OpenDatabase = con









End Function

Function CreateRecordset(dcnDB, whichData)
  Dim rsNews
  Dim strSQL
  
  Dim Rec_ID
  Rec_ID = Request.Form("ID")
  
  
  Set CreateRecordset = rsNews 

  strSQL = "Select * FROM" & whichData
  
  
  
  
 




End Function



Sub StoreData(rsNews, whichData)
 
  rsNews("Nome") = request.Form("Nome")
  rsNews("Gender") = request.Form("Gender")
  rsNews("Body") = request.Form("Body")
  rsNews("Price") = request.Form("Price")   
  rsNews("Stone") = request.Form("Stone") 
  rsNews("Stones") = request.Form("Stones") 
End Sub





' -----------------------------------
'  Sub Main()
' -----------------------------------

Sub Main()

  Dim con       ' As ADODB.Connection
  Dim rsData       ' As ADODB.Recordset
  Dim intPageNum    ' As Integer
  'Dim strAction    ' As String
  'Dim mySession    ' As Array
  Dim whichData      ' As String
  
  
  TipoOp = Request.Form("Type")
  Record = Request.Form("ID")
  Linea = Request.Form("Linea")
  
  
  'mySession = Session("LoggedIn")
  whichData = Linea
  
  AddRecord whichData

  
End Sub

'
' Dopo aver letto tutto, Esegue Main
'
Call Main
%>

l'errore come avevi già preventivato è questo
Tipo di errore:
Errore di run-time di Microsoft VBScript (0x800A01A8)
Necessario oggetto: 'rsNews'
/DeleteRec.asp, line 108



corrispondente a
Set CreateRecordset = rsNews 

grazie sempre per l'aiuto
105 messaggi dal 25 dicembre 2004
Scusate come posso risolvere, il problema allo script?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.