Newsgroup: it.comp.www.asp
Titolo: [DB] STO IMPAZZENDO!!

Lavoro con le ASP da un pezzo ma per pigrizia non ho mai usato database, in
questo periodo ho un po' di tempo libero e sto riorganizzando varie sezioni
del mio sito con dei database, però ho un grosso problema con l'inserimento
di nuovi record in una tabella, ho provato a copiare l'esempio su
http://www.asp-it.com
 ma non riesco a capire come mai non va
L'errore (rilevato usando il comando err.description) è il seguente:
[Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti
nell'espressione criterio.
Di seguito riporto la sezione della pagina ASP che gestisce il db (prima ci
sono tutti i vari request)
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver
(*.mdb)};dbq="&Server.MapPath("../news.mdb")
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
on error resume next
SQL = "INSERT INTO news (data, autore, email_autore, titolo,
breve_descrizione, articolo, visualizza) "
SQL = SQL & "VALUES ('" & data & "','" & autore  & "','" & email_autore &
"','" & titolo & "','" & breve_descrizione & "','" & articolo & "','" &
visualizza & "')"
rs.Open SQL, conn
Grazie mille a chiunque risponda e scusate il disturbo
--
=> Fabio883 <=
Webmaster di 
http://www.883network.com
ICQ 5320334


L'errore, cosě a occhio, č nell'inserimento della data che deve essere fatta
tra "#" nel formtato (mm/gg/aaaa). Cosě:
SQL = SQL & "VALUES ("#" & data & "#,'" & autore  & "','" & email_autore &
"','" & titolo & "','" & breve_descrizione & "','" & articolo & "','" &
visualizza & "')"
Il resto mi sembra tutto perfetto... Ma non ne sono sicuro al 100%, in
questi 2 giorni di Pasqua ho mangiato troppo! ;-)
Ciao!
Andrew

visualizza & "')"
Con SQL non puoi tentare di inserire un valore stringa in un campo di
tipo datetime.
In luogo di 
  "VALUES ('" & data & "',
devi scrivere
  "VALUES ({d '" & data & "'},
oppure
  "VALUES (#" & data & "#,
a seconda di come è formattata la data che inserisci (aaaa-mm-gg
funziona di sicuro nel primo caso, nel secondo dovrebbe andare anche
roba come gg-mm-aa o gg/mm/aa o gg/mm/aaaa).
Insomma:
  INSERT into tabella (data, nome) values ({d '2000-04-24'}, 'Pippo');
o anche
  INSERT into tabella (data, nome) values ({d '2000-04-24 18:22:35'},
'Pippo');
--
----------------------------------------------------------------------
Marco Coletti
Network Admin, Webmaster, Tuttologo :)
PGP public key:
http://keys.pgp.com:11371/pks/lookup?op=get&exact=on&search=0x96A79061
Fingerprint: 9F E5 80 61 F6 9F 05 2D  EA 53 6F 2D 82 8B C7 C2
----------------------------------------------------------------------

 tra "#" nel formtato (mm/gg/aaaa). Cosě:
Innanzitutto grazie a  te e anche a Marco Coletti per la risposta.
Ho provato a fare come dite voi ma l'errore continua ad esserci, cmq ho
risolto la questione in un'altra maniera, non so se č corretta ma funziona:
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "driver={Microsoft Access Driver
(*.mdb)};dbq="&Server.MapPath("../news.mdb")
Set RS=Server.CreateObject("ADODB.Recordset")
RS.Open "news",OBJdbConnection,3,3
RS.AddNew
rs("data")=data
rs("autore")=autore
rs("email_autore")=email_autore
rs("titolo")=titolo
rs("breve_descrizione")=breve_descrizione
rs("articolo")=articolo
rs("visualizza")=visualizza
rs.update
RS.Close
OBJdbConnection.Close
voi che ne dite?
Grazie ancora
--
=> Fabio883 <=
Webmaster of 
http://www.883network.com
ICQ 5320334
*******************************************************
"Time passes for everyone, you know
nobody will take it back
not even us"

Grazie ancora
Che se ti funzia e se non ti dŕ problemi, va piů che bene. Il Recodset ti
consente di fare tutte le operazioni che utilizzavi con un'unica linea di
comando con piů comandi, con maggior perdita di tempo e prestazioni (il
server deve elaborare tutte queste istruzioni e convertirle nel formato che
tu volevi utilizzare prima con il problema della sintassi leggermente piů
complessa e "pignola" nell'inserimento dei dati). Ma se non hai partiolari
pretese, tieni tutto cosě com'č.
Ciao!
Andrew