problema strano con procedura di controllo da database, di dati immessi in un form asp

  • Creatore Discussione Creatore Discussione Toscano
  • Data di inizio Data di inizio

Toscano

Utente Attivo
27 Apr 2012
31
0
0
Firenze
Ciao a tutti.
Circa un anno fa ho utilizzato il forum per costruire un'app gratuita per la mia scuola che permette di prenotare i colloqui con gli insegnanti online.
La cosa funziona ed è stata molto gradita dagli utenti.
Quest'anno ho fatto alcune modifiche che avrebbero dovuto migliorare il servizio offerto ma, è una settimana che batto la testa su un problema a cui non trovo soluzione.

Per prenotare ho un file asp per ogni classe. Questo visualizza un elenco di studenti - che l'utente sceglie con menù a tendina.
All'utente poi si richiede di inserire un codice numerico che corrisponde alla matricola studente.
Il cognome lo vede e lo sceglie mentre il codice lo digita.

Voreri impostare un controllo tra questi due dati e quelli presenti nella scheda classe sul dbase.

Il controllo lo faccio così:
Codice:
if b = ""  or MID((b),1,1) = " " then 
Response.Write"Inserire la Matricola  "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
Dim strDB
strDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/sede.mdb")
 
Dim cn
Set cn = CreateObject("ADODB.Connection")
cn.Open strDB

Dim rs1
Set rs1 = Server.CreateObject("ADODB.Recordset")

' Confronto dato inserito con quello presente nel db


strSQL="SELECT IDElencoIndirizzi FROM [1D] WHERE StrComp([Cognome],'" & [a] &  "', 0) = 0  AND StrComp([Matricola],'" & [b] &  "', 0) = 0"
rs1.Open strSQL,cn

if rs1.eof then 
rs1.close
set rs1 = nothing
set cn = nothing
Response.Write "Il dato inserito non e' presente nel nostro Database" 
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if


Il dbase ha una tabella per ogni classe con i campi Cognome e Matricola, una tabella Nome insegnante con i nomi di tutti i docenti, una tabella Contatti dove vengono scritti i record per gli appuntamenti con i campi Cognome, Matricola, Email, Telefono e Nome insegnante


Ora, la costa strana è che le tabelle sono uguali, e per una classe tutto funziona alla perfezione mentre per le altre no!
Specifico che i files (2) ad es 1C.asp (con i form che vede l'utente) e S1C. asp (che è quella che spedisce) li ho creati tutti a partire da quelli che funzionano andando solo a sostituire la lettera della classe.
E' un mistero perché nella classe che funziona se metto la matricola giusta scrivo sul dbase il record e viceversa mentre nelle altre classi la matricola non viene mai riconosciuta come giusta.

Secondo me è un problema di database
 
...davvero inspiegabile, l'unico dettaglio è questo:
Codice:
strSQL="SELECT IDElencoIndirizzi FROM [1D] WHERE StrComp([Matricola],'" & [b] &  "', 0) = 0"
se nella query tolgo il controllo del cognome (a) il tutto funziona.
Perchè???? ci impazzisco ancora un po domani...
 
...senti Toscano,
ho utilizzato dal menu Strumenti >> Utilità DataBase >> Compatta e ripristina Database
...come per magia funziona, effettivamente il problema era nel DB.

Bho! misteri miscrosoft...
 
Grazie 1000 Paolo,
anch'io però avevo provato a fare l'operazione che hai consigliato sul d base ma a me non ha dato lo stesso risultato.
Ho provato con access 2000

Boh....??
 
Grazie 1000 Paolo,
anch'io però avevo provato a fare l'operazione che hai consigliato sul d base ma a me non ha dato lo stesso risultato.
Ho provato con access 2000

Boh....??
..uso Access 2003.
Prima di questa operazione, ho modificato un cognome.
Non so se la modifica del cognome o il controllo del DB, sta di fatto che ora mi funziona.

...non so spiegarti come ma la query non leggeva la colonna 'cognome'.

Paolo
 

Discussioni simili