Ciao a Tutti !!
Ho il seguente problema "attanagliante "
Ho la pagina index.asp, che apro con Explorer, che contiene diversi moduli che richiamano i valori dei campi di un database Access ...
Tale pagina contiene un pulsante "Salva" che fa l' aggiornamento di tali campi una volta che uno ha scelto i valori giusti all' interno dei vari menu' a tendina
fin qui tutto OK !!
Pero' mi e' sucesso che, inserendo nel Database piu' di 101 campi, al momento dell' aggiornamento del Database col pulsante "Salva" mi e' apparso l' errore
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Espressione troppo complessa
aggiorna.asp, line 120
Mi e' sembrato un limite di buffer, vuoi che la funzione Update di un Recorset non riesca a supportare un numero di campi > 101 ?? E' per questo che chiedo il vostro aiuto perche' non so cosa devo fare
Ho provat oanche con response.buffer ma niente !!
Ho letto poi nel sito della microsoft che e' un problema legato all' uso di ADODB.Recordet che e' limitato;
Sono costretto in tutti i modi a ricorrere ad una UPDATE classica (il cui codice non conosco) oppure IN QUALCHE MODO si puo' salvare questo lavoro che ho fatto e che mi e' costato dei mesi ??
Grazie mille per l' aiuto !!!
Pagina Index.asp
<%@ Language=VBScript %>
<% Option Explicit
Dim check, nr, objConn, objRS, objRS2, rec, strSQL
'
check = 0
nr = 0
rec = 1
'
if trim(request("rec"))<>"" then rec = Request("rec")
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>SSD</title>
<Script Language="JavaScript">
function notify(n) {
if (n==0) {
var answer = confirm("Salvare le modifiche?")
if (answer) {
document.FrontPage_Form.action = "aggiorna.asp"
document.FrontPage_Form.submit();
return true; } }
}
</script>
</head>
<body>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=ssd09.dsn"
objConn.Open
'
Set objRS2 = Server.CreateObject("ADODB.Recordset")
objRS2.Open "t_check", objConn, , 3, 2
Do While Not objRS2.EOF
If (objRS2("Numero") = Cint(rec)) Then
strSQL = "SELECT * FROM t_check WHERE Numero = " & rec
Set objRS = objConn.Execute(strSQL)
check = check + 1
End If
objRS2.MoveNext
nr = nr + 1
Loop
If (check = 0) Then
rec = 1
strSQL = "SELECT * FROM t_check WHERE Numero = " & rec
Set objRS = objConn.Execute(strSQL)
End If
'
%>
<form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form">
<table>
<td width="104" align="center" height="24">
<p style="margin-top: 10px">
<select size="1" name="arrivo_camp" id="arrivo_camp" style="font-family: Arial; font-size: 10 pt; width: 80">
<option selected><%=objRS("Arrivo_Camp")%></option>
<option>184</option>
<option>190</option>
<option>P291</option>
<option>P294</option>
</select></td>
....................
<input type="submit" name="salva" value="Salva" onClick="notify(0)">
.......................
</table></form>
<%
objRS.Close
objRS2.Close
objConn.Close
Set objConn = Nothing
%>
Pagina aggiorna.asp
<%@ Language=VBScript %>
<%
Option Explicit
Dim objConn, objRS, rec
'
rec = Cint(Request.Form("rec_mod"))
'
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=ssd09.dsn"
objConn.Open
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "t_check", objConn, , 3, 2
'
Do While Not objRS.EOF
If (objRS("Numero")=rec) Then
objRS("Arrivo_Camp") = Request.Form("arrivo_camp")
objRS("Arrivo_Proc") = Request.Form("arrivo_proc")
...... di questi ne ho piu' di 100 !!! <----
'
objRS.Update
'
End If
objRS.MoveNext
Loop
'
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<HTML>
<BODY> ...... ... </BODY>
</HTML>
Ho il seguente problema "attanagliante "
Ho la pagina index.asp, che apro con Explorer, che contiene diversi moduli che richiamano i valori dei campi di un database Access ...
Tale pagina contiene un pulsante "Salva" che fa l' aggiornamento di tali campi una volta che uno ha scelto i valori giusti all' interno dei vari menu' a tendina
fin qui tutto OK !!
Pero' mi e' sucesso che, inserendo nel Database piu' di 101 campi, al momento dell' aggiornamento del Database col pulsante "Salva" mi e' apparso l' errore
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Espressione troppo complessa
aggiorna.asp, line 120
Mi e' sembrato un limite di buffer, vuoi che la funzione Update di un Recorset non riesca a supportare un numero di campi > 101 ?? E' per questo che chiedo il vostro aiuto perche' non so cosa devo fare
Ho provat oanche con response.buffer ma niente !!
Ho letto poi nel sito della microsoft che e' un problema legato all' uso di ADODB.Recordet che e' limitato;
Sono costretto in tutti i modi a ricorrere ad una UPDATE classica (il cui codice non conosco) oppure IN QUALCHE MODO si puo' salvare questo lavoro che ho fatto e che mi e' costato dei mesi ??
Grazie mille per l' aiuto !!!
Pagina Index.asp
<%@ Language=VBScript %>
<% Option Explicit
Dim check, nr, objConn, objRS, objRS2, rec, strSQL
'
check = 0
nr = 0
rec = 1
'
if trim(request("rec"))<>"" then rec = Request("rec")
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>SSD</title>
<Script Language="JavaScript">
function notify(n) {
if (n==0) {
var answer = confirm("Salvare le modifiche?")
if (answer) {
document.FrontPage_Form.action = "aggiorna.asp"
document.FrontPage_Form.submit();
return true; } }
}
</script>
</head>
<body>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=ssd09.dsn"
objConn.Open
'
Set objRS2 = Server.CreateObject("ADODB.Recordset")
objRS2.Open "t_check", objConn, , 3, 2
Do While Not objRS2.EOF
If (objRS2("Numero") = Cint(rec)) Then
strSQL = "SELECT * FROM t_check WHERE Numero = " & rec
Set objRS = objConn.Execute(strSQL)
check = check + 1
End If
objRS2.MoveNext
nr = nr + 1
Loop
If (check = 0) Then
rec = 1
strSQL = "SELECT * FROM t_check WHERE Numero = " & rec
Set objRS = objConn.Execute(strSQL)
End If
'
%>
<form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form">
<table>
<td width="104" align="center" height="24">
<p style="margin-top: 10px">
<select size="1" name="arrivo_camp" id="arrivo_camp" style="font-family: Arial; font-size: 10 pt; width: 80">
<option selected><%=objRS("Arrivo_Camp")%></option>
<option>184</option>
<option>190</option>
<option>P291</option>
<option>P294</option>
</select></td>
....................
<input type="submit" name="salva" value="Salva" onClick="notify(0)">
.......................
</table></form>
<%
objRS.Close
objRS2.Close
objConn.Close
Set objConn = Nothing
%>
Pagina aggiorna.asp
<%@ Language=VBScript %>
<%
Option Explicit
Dim objConn, objRS, rec
'
rec = Cint(Request.Form("rec_mod"))
'
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=ssd09.dsn"
objConn.Open
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "t_check", objConn, , 3, 2
'
Do While Not objRS.EOF
If (objRS("Numero")=rec) Then
objRS("Arrivo_Camp") = Request.Form("arrivo_camp")
objRS("Arrivo_Proc") = Request.Form("arrivo_proc")
...... di questi ne ho piu' di 100 !!! <----
'
objRS.Update
'
End If
objRS.MoveNext
Loop
'
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<HTML>
<BODY> ...... ... </BODY>
</HTML>