576 messaggi dal 30 aprile 2003
Ciao, ho una query SQL che mi funziona sempre tranne quando imposto un parametro uguale a un determinato valore.

Quando visualizzo i dati (all'interno di un ciclo) mi da l'errore "Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record."

Il fatto è che questa query non ha errori di sintassi (perché in SQLPlus mi funziona), e il RecordSet viene caricato con il giusto numero di record (ho verificato con la proprietà RecordCount).

Cosa potrebbe comportarne il malfunzionamento?
(sto sbattendo la testa da ieri.  )

Prima o poi diventerò un guru!
15 messaggi dal 02 agosto 2002
Dall'errore che ti da direi che semplicemente non trova quel valore, sicuro che ci sia sul DB ?
Se si che tipo di valore è (stringa, numerico, data) e come glielo passi ?

Luana
576 messaggi dal 30 aprile 2003
Si, il valore (numerico) è presente sul DB.

Ti spiego meglio.
Sto lavorando su 2 forum che utilizzano lo stesso DB.
La query visualizza un elenco dei messaggi del Forum selezionato.
Se però imposto un determinato filtro (es. visualizza i topics completati), allora mi da quell'errore... ma solo in un forum!
Nell'altro tutto funziona perfettamente, è per questo che sono sicuro che non sia un problema di SQL.
Modificato da aletheia il 03 settembre 2003 11.26 -

Prima o poi diventerò un guru!
15 messaggi dal 02 agosto 2002
Potresti postarmi le due query ? cosi non riesco a capirci molto :)
576 messaggi dal 30 aprile 2003
La query è la stessa per entrambi i forum. In uno funziona, nell'altro no... quando T_STATUS = 4.

strSQL = strSQL + "SELECT A.CAT_ID, A.FORUM_ID, A.TOPIC_ID, A.T_STATUS, A.T_SUBJECT, A.T_MESSAGE, "
strSQL = strSQL + "A.T_AUTHOR, A.T_REPLIES, A.T_VIEW_COUNT, T_TIME_POST_THIS, A.T_LAST_POST_DATE, A.T_DATE_POST_THIS, "
strSQL = strSQL + "A.T_LAST_POSTER,  A.T_IP, A.T_LAST_POST_AUTHOR, A.T_ARCHIVE_FLAG, A.ASSIGNEDTO, A.DATECOMPLETED, B.COGNOMENOME "
'strSQL = strSQL + "FROM TAB502 A, TAB001 B WHERE FORUM_ID = " & rsForum("FORUM_ID") 
strSQL = strSQL + "FROM TAB502 A, TAB001 B WHERE FORUM_ID = " & strRqForumID 
strSQL = strSQL + " AND A.T_AUTHOR = B.ID"

If Request("Days") = "" Then
  strSQL = strSQL + " AND T_STATUS <> 4"
Else
  if Request("Days") <> "-1" Then strSQL = strSQL + " AND T_STATUS = " & Request("Days") End If
End If

If Request("Order") = "0" Then
  strSQL = strSQL & " ORDER BY TOPIC_ID DESC"  
ElseIf Request("Order") = "1" Then
  strSQL = strSQL & " ORDER BY PRIORITA"
Else  'primo caricamento della pagina
  strSQL = strSQL & " ORDER BY TOPIC_ID DESC"
End If


P.S. ho fatto delle Move sul RecordSet fino a quando mi ha restituito lo stesso errore (su due record). E' possibile che -per qualche strano motivo- quei record abbiano qualcosa di anomalo?

Prima o poi diventerò un guru!
15 messaggi dal 02 agosto 2002
Potrebbe anche essere che il Db abbia degli errori però ho visto che nel codice dove c<arichi quel valore :

if Request("Days") <> "-1" Then strSQL = strSQL + " AND T_STATUS = " & Request("Days")
End If

fra l'uguale e il " c'è uno spazio, cosa che potrebbe darti quell'errore.

Modificato da Charmin il 03 settembre 2003 14.24 -
576 messaggi dal 30 aprile 2003
Mistero risolto...

Alcuni messaggi (i record che scatenavano l'errore) erano stati assegnati ad alcuni utenti che erano stati cancellati dalla tabella.

Cambiano l'ID l'errore scompare.

Prima o poi diventerò un guru!

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.