Aiuto per favore !

sabato 21 novembre 2009 - 14.35

michelebay Profilo | Newbie

Salve a tutti sono nuovo di questo forum, per cui porgo i miei saluti a tutti.
Ho uno script asp che mi sta facendo impazzire (poi è la solita cavolata che manca):
Lo script è per l'inserimento delle news in un sito attraverso <!--#include file="inc_news.asp"--> nella pagina desiderata.
inc_news.asp é:

<!--#INCLUDE FILE="DBCONN.ASP"-->
<%DIM RSSHOWNEWS,COUNT,COUNTNEWS
COUNT = 0
SET RSSHOWNEWS = SERVER.CREATEOBJECT("ADODB.RECORDSET")
RSSHOWNEWS.OPEN "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE = " & True & " ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC", DBCONN, 3, 3
COUNTNEWS = RSSHOWNEWS.RECORDCOUNT
%>
<TABLE WIDTH="150" HEIGHT="15" BGCOLOR="#CCBBCD" CELLSPACING="1" CELLPADDING="2" BORDER BORDERCOLOR="000080" ALIGN="CENTER">
<TR>
<TD ALIGN="CENTER" BGCOLOR="#AA89C2">
<FONT SIZE="2" CLASS="FONT"><B>SITE NEWS </B></FONT>
</TD>
</TR>
<%IF COUNTNEWS <= 3 THEN
DO UNTIL RSSHOWNEWS.EOF%>
<TR>
<TD BGCOLOR="#CCBBCD">
<FONT SIZE="2" CLASS="FONT"><B><%=RSSHOWNEWS("NEWS_TITLE")%> </B><BR>Posted On : <%=RSSHOWNEWS("NEWS_ADDED_DATE")%> <HR COLOR="000080"> <%=RSSHOWNEWS("NEWS_SHORT_DESC")%>... <A HREF="NEWS.ASP?ID=<%=RSSHOWNEWS("NEWS_ID")%>">Read Full Story</A> </FONT>
</TD>
</TR>
<%COUNT = COUNT + 1%>
<%RSSHOWNEWS.MOVENEXT%>
<%LOOP%>
<%ELSE%>
<%DO UNTIL COUNT = 3%>
<TR>
<TD BGCOLOR="#CCBBCD">
<FONT SIZE="2" CLASS="FONT"><B><%=RSSHOWNEWS("NEWS_TITLE")%> </B><BR>Posted On : <%=RSSHOWNEWS("NEWS_ADDED_DATE")%> <HR COLOR="000080"> <%=RSSHOWNEWS("NEWS_SHORT_DESC")%>... <A HREF="NEWS.ASP?ID=<%=RSSHOWNEWS("NEWS_ID")%>">Read Full Story</A> </FONT>
</TD>
</TR>
<%COUNT = COUNT + 1
RSSHOWNEWS.MOVENEXT
LOOP%>
<%END IF%>
<TR>
<TD ALIGN="CENTER" BGCOLOR="#AA89C2">
<font size="2" class="font"><%IF COUNTNEWS <= 3 THEN%>Showing <%=COUNT%> of <%=COUNTNEWS%> <%ELSE%> Showing last <%=count%> of <%=countnews%><%END IF%> <BR><A HREF="NEWS.ASP">Show All News</A></FONT>
</TD>
</TR>

l'errore è:
Microsoft JET Database Engine (0x80040E10)
Nessun valore specificato per alcuni parametri necessari.
/news/inc_news.asp, line 5

Mi aiutate per favore ??????

Brainkiller Profilo | Guru

>Microsoft JET Database Engine (0x80040E10)
>Nessun valore specificato per alcuni parametri necessari.
>/news/inc_news.asp, line 5
>Mi aiutate per favore ??????

L'errore sembra chiaro. C'è un problema nella Query, prova a copiarla ed eseguirla da Access. Probabilmente hai sbagliato un nome di colonna oppure è errata la concatenazione con il True.
Ciao

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

michelebay Profilo | Newbie

"prova a copiarla ed eseguirla da Access"

Puoi essere più chiaro ?
Grazie

Brainkiller Profilo | Guru

>"prova a copiarla ed eseguirla da Access"
>Puoi essere più chiaro ?
>Grazie

Penso tu stia usando un file .mdb (JET) come database visto che non l'hai indicato. Sbaglio ?
In ogni caso dopo la riga:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Prova a fare un:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In modo che ti stampa la query prima dell'esecuzione.
A questo punto la copi e la esegui da dentro Access o dal database che stai usando.
Secondo me va in errore perchè c'è un problema nella query.
Ciao

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

michelebay Profilo | Newbie

DB_CONN, la connessione inclusa, ha il seguente codice:
<%
DIM CONNECT,DBCONN,SQL
CONNECT="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("DBASE/NEWS.MDB")
Set DBCONN=Server.CreateObject("ADODB.Connection")
DBCONN.OPEN CONNECT
%>

Se hai bisogno di altre informazioni sono qui a sbattere la testa per capire dove devo mettere l'interrogazione che mi hai mandato......!!!!!
Se la metto cos'

<%DIM RSSHOWNEWS,COUNT,COUNTNEWS
COUNT = 0
SET RSSHOWNEWS = SERVER.CREATEOBJECT("ADODB.RECORDSET")
RSSHOWNEWS.OPEN "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE = " & True & " ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC", DBCONN, 3, 3
COUNTNEWS = RSSHOWNEWS.RECORDCOUNT
%>
<%= "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE = " & True & " ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC" %>


mi restituisce ovviamente l'errore:

Tipo di errore:
Microsoft JET Database Engine (0x80040E10)
Nessun valore specificato per alcuni parametri necessari.
/news/inc_news.asp, line 5

mi potresti far vedere come, secondo te, dovrebbe essere la pagina inc_news.asp ?

Brainkiller Profilo | Guru

Vedi o no che stai usando il file dbase\news.mdb ?
E' un file che puoi aprire in Microsoft Access.
Sei capace di usare Access ? Immagino di sì.

Crea una query, e copia e incolla la query che viene generata qui:

>RSSHOWNEWS.OPEN "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE =
>" & True & " ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC",

ed esegui vedrai che ti darà errore. mettila a posto e poi sostituiscila nel file .asp.
freeteo suggerisce di sostituire Active = " & True & " con Active=1
Prova così.
Ciao

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

michelebay Profilo | Newbie

Al solito il fattore "C" l'ha vinta......! Ho fatto come mi hai detto con la query in access, e si, mi dava errore, non capivo quale.....!
Poi ho SMANETTATO e ho scritto:

RSSHOWNEWS.OPEN "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE = true ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC", DBCONN, 3, 3

al posto di

RSSHOWNEWS.OPEN "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE = " & True & " ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC", DBCONN, 3, 3

.....Funziona !

Mi spieghi perchè ???????

Brainkiller Profilo | Guru

>Mi spieghi perchè ???????

Evidentemente quel tipo di concatenazione " & True & " non va bene come ti dicevo sopra prova a fare =1 invece che =True dovrebbe andare lo stesso.
Ciao


David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

michelebay Profilo | Newbie

Ho provato con 1, ma mi da zero news su zero, mentre dentro il DB ce ne sono più di tre.....!

Brainkiller Profilo | Guru

>Ho provato con 1, ma mi da zero news su zero, mentre dentro il
>DB ce ne sono più di tre.....!

Ma la prova che stai facendo è sempre dalla pagina ASP o da Access ?
Prova dalla pagina ASP a mettere sia where campo=true e where campo=1 e vedi quale funziona correttamente.
Dopo quando trovi il valore corretto da passare lo concateni.
Ciao

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

michelebay Profilo | Newbie

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

La prova la sto facendo dalla pagina ASP; se metto where campo=true funziona tutto a meraviglia, mentre con campo=1 la pagina ASP dice che non ci sono news.
Scusa ma che intendi con "concateni" ?

Brainkiller Profilo | Guru

>La prova la sto facendo dalla pagina ASP; se metto where campo=true
>funziona tutto a meraviglia, mentre con campo=1 la pagina ASP
>dice che non ci sono news.
>Scusa ma che intendi con "concateni" ?

Prova così:

RSSHOWNEWS.OPEN "SELECT * FROM SITE_NEWS WHERE NEWS_ACTIVE = " & "True" & " ORDER BY NEWS_ADDED_DATE DESC, NEWS_ADDED_TIME DESC", DBCONN, 3, 3

Cioè metti gli apici anche prima e dopo True, Così "True".
Così dovrebbe funzionare.

Concatenate = mettere assieme più stringhe di testo

"Active " & "True" & " ORDER BY"

è una concatenazione.

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

michelebay Profilo | Newbie

Funziona sia con WHERE NEWS_ACTIVE = " & "True" & " che con WHERE NEWS_ACTIVE = True ! Devo lasciare le virgolette e & ?
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5