|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Sep 2005
Messaggi: 1
|
GROSSO problema con DATBASE acces per asp
![]() Ora su aruba ho visto che bisogna cambiare qualche scritta nello scipt, ma non riesco a capire dove. di seguito il mio script a seguire le indicazioni di aruba, qualcuno potrebbe aiutarmi. GRAZIE mille Nome file: ManageEMail.asp <% Option Explicit Response.AddHeader "pragma","no-cache" Response.CacheControl = "no-cache" Response.Expires = -1500 Response.Buffer = True Const IN_DEBUG = False %> <!--#INCLUDE VIRTUAL="/include/Constants.inc"--> <!--#INCLUDE VIRTUAL="/include/Formats.inc"--> <% Dim sPagError Dim sPagGrazie Dim sPagIncompleto sPagError = Request.Form("PAGINA_ERRORE") sPagGrazie = Request.Form("PAGINA_GRAZIE") sPagIncompleto = Request.Form("PAGINA_INCOMPLETO") Dim sCodice If Not IsEmpty(Request.Form("CODICE")) Then sCodice = UCase(CStr(Request.Form("CODICE"))) Else Response.Redirect sPagError End If Dim cnn Dim rds Dim sSQL Dim Rec Dim iNum Dim sEMailAg, sEMailAgPr Const I_FLD_IDUTENTE = 0 Const I_FLD_UTNOME = 1 Const I_FLD_UTCOGNOME = 2 Const I_FLD_UTMAILREF = 3 Const I_FLD_UTMAILAVV = 4 Const I_FLD_UTCODICE = 5 Const I_FLD_UTINVPACK = 6 Const I_FLD_UTCODROT = 7 Rec = Null Set cnn = Server.CreateObject("ADODB.Connection") cnn.ConnectionString = Application("StrConn") cnn.CursorLocation = adUseClient cnn.Open Set rds = Server.CreateObject("ADODB.Recordset") Set rds.ActiveConnection = cnn rds.CursorType = adOpenForwardOnly rds.LockType = adLockReadOnly If sCodice = "AA0000" Then sSQL = "SELECT * FROM UTENTI WHERE CodRuotante = true" Else sSQL = "SELECT * FROM UTENTI WHERE UtCodiceAccesso = """ & sCodice & """" End If rds.open sSQL If NOT rds.EOF Then Rec = rds.GetRows () End If rds.close If Not IsNull(Rec) Then iNum = 0 If UBound(Rec,2) => 1 Then If sCodice = "AA0000" Then sSQL = "SELECT NumeroRotazione FROM ROTAZIONE" rds.CursorType = adOpenKeyset rds.LockType = adLockOptimistic rds.open sSQL If Not rds.EOF Then iNum = rds(0) If iNum => UBound(Rec,2) Then iNum = 0 rds(0) = iNum rds.update Else iNum = iNum + 1 rds(0) = iNum rds.update End If End If End If rds.close Else ' Response.Redirect sPagError End If Set rds = Nothing cnn.Close Set cnn = Nothing sEMailAg = Rec(I_FLD_UTMAILREF, iNum) sEMailAgPr = Rec(I_FLD_UTMAILAVV, iNum) If SendEMail(sEMailAg, sEMailAgPr) then Response.Redirect sPagGrazie Else Response.Redirect sPagError End if Else Response.Redirect sPagError End if %> <script runat=server language=vbscript> '*********************************************** Function SendEMail(sEMailAg, sEMailAgPr) Dim sBody Dim sFileName Dim sEMail Dim obj, objMail, objFile Dim sError Dim x, iTipo Dim sSubject Dim sDato 'On Error Resume Next SendEMail = False sEMail = Request.Form("EMAIL") sFileName = "/cgi-bin/" & Request.Form("SESSO") & Request.Form("NOME_PACCHETTO") If Rec(I_FLD_UTINVPACK,iNum) Then Set obj = Server.CreateObject("Scripting.FileSystemObject") Set objFile = obj.OpenTextFile(Server.MapPath(sFileName), ForReading) sBody = objFile.ReadAll objFile.Close Set objFile = Nothing Set obj = Nothing sDato = sEMailAg sBody = Replace(sBody, "{EMAILAGENTE}", sDato) sDato = UCase(Request.Form("CODICE")) sBody = Replace(sBody, "{CODICE}", sDato) sDato = Request.Form("COME") sBody = Replace(sBody, "{COME}", sDato) sDato = Request.Form("NOME") sBody = Replace(sBody, "{NOME}", sDato) sDato = Request.Form("COGNOME") sBody = Replace(sBody, "{COGNOME}", sDato) sDato = Request.Form("SESSO") sBody = Replace(sBody, "{SESSO}", sDato) sDato = Request.Form("INDIRIZZO") sBody = Replace(sBody, "{INDIRIZZO}", sDato) sDato = Request.Form("CITTA") sBody = Replace(sBody, "{CITTA}", sDato) sDato = Request.Form("PROVINCIA") sBody = Replace(sBody, "{PROVINCIA}", sDato) sDato = Request.Form("CAP") sBody = Replace(sBody, "{CAP}", sDato) sDato = Request.Form("STATO") sBody = Replace(sBody, "{STATO}", sDato) sDato = Request.Form("TELEFONO") sBody = Replace(sBody, "{TELEFONO}", sDato) sDato = Request.Form("FAX") sBody = Replace(sBody, "{FAX}", sDato) sDato = Request.Form("EMAIL") sBody = Replace(sBody, "{EMAIL}", sDato) sDato = Request.Form("PERCHE") sBody = Replace(sBody, "{PERCHE}", sDato) sDato = Request.Form("IN_PROPRIO") sBody = Replace(sBody, "{IN_PROPRIO}", sDato) sDato = Request.Form("GUADAGNO") sBody = Replace(sBody, "{GUADAGNO}", sDato) sDato = Request.Form("PAESI") sBody = Replace(sBody, "{PAESI}", sDato) sDato = Request.Form("LAVORO_ATTUALE") sBody = Replace(sBody, "{LAVORO_ATTUALE}", sDato) sDato = Request.Form("ISTRUZIONE") sBody = Replace(sBody, "{ISTRUZIONE}", sDato) sDato = Request.Form("RAGIONI") sBody = Replace(sBody, "{RAGIONI}", sDato) sDato = Request.Form("ATTRAZIONI") sBody = Replace(sBody, "{ATTRAZIONI}", sDato) sDato = Request.Form("VANTAGGI") sBody = Replace(sBody, "{VANTAGGI}", sDato) sDato = Request.Form("TEMPO") sBody = Replace(sBody, "{TEMPO}", sDato) sDato = Request.Form("COMMENTI") sBody = Replace(sBody, "{COMMENTI}", sDato) If Not IN_DEBUG Then Set objMail = Server.CreateObject("CDO.Message") SendEMail = (Err.number = 0) If Not ObjMail Is Nothing Then With ObjMail .Subject = "Informazioni" .HTMLBody = sBody .From = sEMailAg .To = sEMail '.BodyFormat = 0 '.MailFormat = 0 '.Importance = 1 ' 0 Low 1 Normal 2 High .Send SendEMail = (Err.number = 0) End with Set objMail = nothing Else SendEMail = False End If End If End If sBody = "NOME_PACCHETTO: " & Request.Form("NOME_PACCHETTO") & Chr(10) sDato = UCase(Request.Form("CODICE")) sBody = sBody &"CODICE: " & sDato & Chr(10) sDato = Request.Form("COME") sBody = sBody &"COME: " & sDato & Chr(13) sDato = Request.Form("NOME") sBody = sBody &"NOME: " & sDato & Chr(13) sDato = Request.Form("COGNOME") sBody = sBody &"COGNOME: " & sDato & Chr(13) sDato = Request.Form("SESSO") sBody = sBody &"SESSO: " & sDato & Chr(13) sDato = Request.Form("INDIRIZZO") sBody = sBody &"INDIRIZZO: " & sDato & Chr(13) sDato = Request.Form("CITTA") sBody = sBody &"CITTA: " & sDato & Chr(13) sDato = Request.Form("PROVINCIA") sBody = sBody &"PROVINCIA: " & sDato & Chr(13) sDato = Request.Form("CAP") sBody = sBody &"CAP: " & sDato & Chr(13) sDato = Request.Form("STATO") sBody = sBody &"STATO: " & sDato & Chr(13) sDato = Request.Form("TELEFONO") sBody = sBody &"TELEFONO: " & sDato & Chr(13) sDato = Request.Form("FAX") sBody = sBody &"FAX: " & sDato & Chr(13) sDato = Request.Form("EMAIL") sBody = sBody &"EMAIL: " & sDato & Chr(13) sDato = Request.Form("CONFERMA_EMAIL") sBody = sBody &"CONFERMA_EMAIL: " & sDato & Chr(13) sDato = Request.Form("PERCHE") sBody = sBody &"PERCHE: " & sDato & Chr(13) sDato = Request.Form("IN_PROPRIO") sBody = sBody &"IN_PROPRIO: " & sDato & Chr(13) sDato = Request.Form("GUADAGNO") sBody = sBody &"GUADAGNO: " & sDato & Chr(13) sDato = Request.Form("PAESI") sBody = sBody &"PAESI: " & sDato & Chr(13) sDato = Request.Form("LAVORO_ATTUALE") sBody = sBody &"LAVORO_ATTUALE: " & sDato & Chr(13) sDato = Request.Form("ISTRUZIONE") sBody = sBody &"ISTRUZIONE: " & sDato & Chr(13) sDato = Request.Form("RAGIONI") sBody = sBody &"RAGIONI: " & sDato & Chr(13) sDato = Request.Form("ATTRAZIONI") sBody = sBody &"ATTRAZIONI: " & sDato & Chr(13) sDato = Request.Form("VANTAGGI") sBody = sBody &"VANTAGGI: " & sDato & Chr(13) sDato = Request.Form("TEMPO") sBody = sBody &"TEMPO: " & sDato & Chr(13) sDato = Request.Form("COMMENTI") sBody = sBody &"COMMENTI: " & sDato & Chr(13) sDato = Date() sBody = sBody &"DATA_PRIMO_PACCHETTO: " & sDato If Not IN_DEBUG Then Set objMail = Server.CreateObject("CDO.Message") SendEMail = (Err.number = 0) If Not ObjMail Is Nothing Then With ObjMail .Subject = "RICHIESTA INFORMAZIONI" .TextBody = sBody .From = "infolavoro@lavoro-casa.com" .To = sEMailAgPr .Send SendEMail = (Err.number = 0) End With Set objMail = nothing End If End If If IN_DEBUG Then SendEMail = True response.write sEMailAg & "<br>" & sEMailAgPr & "<br>" response.write sBody End If End Function </script> ALTRO FILE: Global.asa <script runat=server language=vbscript> Const NOME_DATABASE = "\mdb-database\lavoro.mdb" Sub Application_OnStart Dim StrConn On Error resume Next ' ******* StrConn = "Provider=Microsoft.Jet.Oledb.4.0;data source=" & Server.MapPath(NOME_DATABASE) Application("StrConn") = StrConn End Sub </script> Indicazioni di Aruba: Questo tipo di connessione a partire dal nome indica che per collegarsi al database non usa file DSN di sistema, ma una connessione diretta al database sul server, indicandone il percorso: nello specifico usando l'oggetto Server e il suo metodo CreateObject generiamo innanzitutto l'oggetto di ADO ADODB.Connection Dim conn Set conn = Server.CreateObject("ADODB.Connection") quindi ora e' possibile tramite l'oggetto creato connettersi fisicamente al nostro database che risiedera' nella cartella speciale apposita mdb-database e quindi aprirlo: la stringa di connessione contera' tutti i parametri per raggiungere il database conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/database.mdb") Tramite SQL possiamo interrogare ed interagire con il database usando apposite query : al termine delle interrogazioni vanno chiusi immediatamente (non al termine della pagina) gli eventuali oggetti recordset utilizzati e soprattutto va chiusa la connessione al database Conn.Close Set Conn=Nothing Quanto piu' celermente si chiudono oggetti e connessione, prima tornano disponibili sul server gli oggetti e le risorse necessarie all'ottimale gestione dei database da parte di tutti gli utenti: per il medesimo motivo si indica di non richiamare gli oggetti Connection e Recordset all'interno degli oggetti Session o Application istanziabili nel file global.asa |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:36.