Access e asp

martedì 02 settembre 2008 - 18.15

dottorno Profilo | Newbie

Ho necessità che qualcuno mi aiuti a completare il seguente codice, che interfaccia il mio centralino voip a il mio database aziendale
Il centralino mi passa il numero telefonico che e = calling
il codice ha lo scopo a partire dal numero di telefono di trovare il cliente su una tabella che si chiama tbclienti e poi andare a scrivere alcuni dati su una tabella che si chiama telefonate

Il codice di cui sotto gia funziona per quanto riguarda la prima parte, adesso ho necessita di andare a scrivere i dati che ho appena trovato.

Qualcuno mi può aiutare.
Grazie

<%

strChiamante = request ("calling")
a="ciao"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\Inetpub\wwwroot\clienti2002.mdb")

Set objRs = Server.CreateObject("ADODB.Recordset")
set objRs = objconn.execute ( "SELECT * FROM tbClienti WHERE Telefono = '" & Replace(strChiamante, "'", "''") & "' OR Cellulare = '" & Replace(strChiamante, "'", "''") & "'")

Do while NOT objRs.EOF
response.write "nome = " & objRs("Cognome") & "<br>"
response.write "Via = " & objRs("indirizzo") & "<br>"
response.write "Telefono = " & objRs("telefono") & "<br>"
response.write "idcliente = " & objRs("idCliente") & "<be>"
response.write "<hr size='1' color='midnightblue' width='40%' align='left'>"
objRs.Movenext
Loop

objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing


%>

Dainesi Profilo | Senior Member

Completa il codice così:

<%

Dim rs

strChiamante = request ("calling")
a="ciao"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= C:\Inetpub\wwwroot\clienti2002.mdb")

Set objRs = Server.CreateObject("ADODB.Recordset")
set objRs = objconn.execute ( "SELECT * FROM tbClienti WHERE
Telefono = '" & Replace(strChiamante, "'", "''") & "' OR Cellulare = '" & Replace(strChiamante, "'", "''") & "'")

Set rs = Conn.Execute("SELECT * FROM tbTelefonate")

Do while NOT objRs.EOF
response.write("nome = " & objRs("Cognome") & "<br>")
response.write("Via = " & objRs("indirizzo") & "<br>")
response.write("Telefono = " & objRs("telefono") & "<br>")
response.write("idcliente = " & objRs("idCliente") & "<br>")
response.write("<hr size='1' color='midnightblue' width='40%' align='left'>")
'Scrivi i record nella tabella telefonate
rs.AddNew
rs.Fields("IdCliente") = objRs("idCliente")
rs.Fields(" ... ") = ....
rs.Update

objRs.Movenext
Loop

objRs.Close
rs.Close
Set objRs = Nothing
Set rs = Nothing

objConn.Close
Set objConn = Nothing


%>

Prova e fammi sapere !

dottorno Profilo | Newbie

Mi da questo errore su comando rs.Update

ADODB.Recordset (0x800A0CB3)
Il set di record corrente non supporta l'aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.

Grazie

Dainesi Profilo | Senior Member

Il problema può avere due risposte:

1) la tabella tblTelefonate non ha nemmeno un indice (Soluzione: crea un indice, magari inserendo un campo contatore)
2) il recordset deriva la proprietà ReadOnly dalla connessione

Per il punto 2 la soluzione è:

<%

Dim rs

strChiamante = request ("calling")
a="ciao"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= C:\Inetpub\wwwroot\clienti2002.mdb")

Set objRs = Server.CreateObject("ADODB.Recordset")
Set rs= Server.CreateObject("ADODB.Recordset")

set objRs = objconn.execute ( "SELECT * FROM tbClienti WHERE
Telefono = '" & Replace(strChiamante, "'", "''") & "' OR Cellulare = '" & Replace(strChiamante, "'", "''") & "'")

rs.ActiveConnection = objConn
rs.CursorType = 2 'adOpenDynamic
rs.CursorLocation = 2 'asUseServer
rs.LockType = 3 'adLockOptimistic
rs.Source = "SELECT * FROM tbTelefonate"
rs.Open

Do while NOT objRs.EOF
response.write("nome = " & objRs("Cognome") & "<br>")
response.write("Via = " & objRs("indirizzo") & "<br>")
response.write("Telefono = " & objRs("telefono") & "<br>")
response.write("idcliente = " & objRs("idCliente") & "<br>")
response.write("<hr size='1' color='midnightblue' width='40%' align='left'>")

'Scrivi i record nella tabella telefonate
rs.AddNew
rs.Fields("IdCliente") = objRs("idCliente")
rs.Fields(" ... ") = ....
rs.Update

objRs.Movenext
Loop

objRs.Close
rs.Close
Set objRs = Nothing
Set rs = Nothing

objConn.Close
Set objConn = Nothing


%>

dottorno Profilo | Newbie

Grazie mille, problema risolto avevo problemi con autorizzazione iis

Dainesi Profilo | Senior Member

Sono contento che tu abbia risolto però ricorda che messaggi del tipo "Il set di record corrente non supporta l'aggiornamento" non sono legati a permessi in IIS ma a proprietà del db o degli oggetti ADO.

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