11 messaggi dal 20 giugno 2003
Ciao ho fatto questo script con un command parametrizzato che scrive su del tipo:

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

Dim cnn
dim str
dim strsql
dim abstract
dim cmd
abstract = request("Txtnews")
abstract = Left(abstract,150)

strsql = "insert into Tblnews (testonews,data,title,abstract,topic) values('" + request("Txtnews") + "','" + request("Lbldata") + "','" + request("Txttitle") + "','" + abstract + "','" + request("Txtargomento") + "')"
set cmd = Server.CreateObject("ADODB.Command")
set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "provider=microsoft.jet.oledb.4.0; data source=C:\Inetpub\wwwroot\intranet\news\news.mdb;Persist Security Info = False"
' response.Write(strsql)
cmd.activeconnection = cnn
cmd.CommandType = adCmdText
cmd.CommandText = strsql

cmd.Parameters.Append cmd.CreateParameter ("testonews", adVarChar, adParamInput, 65536)
cmd.execute
cnn.Close
set cnn = nothing
cmd.close
set cmd = nothing

11.886 messaggi dal 09 febbraio 2002
Contributi
non sono al corrente delle prestazioni del command ma se fai un cn.Execute non fai prima? ne guadagna anche la leggibilità del codice

set cnn = Server.CreateObject("ADODB.Connection")
cnn.Open "provider=microsoft.jet.oledb.4.0; data source=C:\Inetpub\wwwroot\intranet\news\news.mdb;"
cnn.Execute "insert into Tblnews (testonews,data,title,abstract,topic) values('" & request("Txtnews") & "','" & request("Lbldata") & "','" & request("Txttitle") & "','" & abstract & "','" & request("Txtargomento") & "')"
cnn.Close
set cnn = nothing

usa sempre l'operatore & quando devi concatenare le stringhe.
tornando all'errore, penso si riferisca al fatto che stai tentando di inserire una stringa in un campo numerico (ad esempio), o viceversa.
Adesso che guardo la insert potrebbe essere che il campo data sia una data mentre nella insert il valore si trova tra gli apici.
Sostituiscili con i cancelletti #" & Request("Lbldata") & "#

Enjoy learning and just keep making
11 messaggi dal 20 giugno 2003
Siccome nella stringa che vado a memorizzare ho degli apici questi creano problemi che con il command dovrei superare!
11.886 messaggi dal 09 febbraio 2002
Contributi
Gli apici devono sempre essere raddoppiati, altrimenti creno confusione nella insert

Replace(request("Txtnews"),"'","''")


Enjoy learning and just keep making
3.122 messaggi dal 16 maggio 2002
Raddoppia gli apici se il dbms usato è Access o SQL Server. Se invece è MySql fai precedere ogni apice singolo dal carattere \
(ennesimo post su questo argomento)

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
11 messaggi dal 20 giugno 2003
Lo so che è possibile duplicare gli apici e risolvo il problema ma per quello che devo fare mi ordinano di fare in un modo più elegante
11.886 messaggi dal 09 febbraio 2002
Contributi
in modo più elegante?
ORDINARE?????

che vuol dire in modo più elegante? non so, fagli contattare la microsoft per proporre di cambiare il suo linguaggio di scripting. Altrimenti non so che altro consigliarti.
Quello che bisogna capire è che raddoppiare gli apici è solo una convenzione per dire al motore di scripting di trattarli LETTERALMENTE. se vai a guardare nel database l'apice sarà uno solo, non due.

elegante... come se gli utenti dovessero andare a leggere il codice... neanche ci si preoccupa delle prestazioni ma dell'ELEGANZA...
senti, imponiti, dimostragli la tua dignità e la tua abilità nella programmazione. Io sinceramente mi sono rotto le scatole di ricevere ordini per realizzare cose poco produttive o addirittura inutili. Usa il tuo buonsenso e combatti per farti valere, in Italia non esiste la schiavitù.
Modificato da BrightSoul il 24 luglio 2003 12.16 -

Enjoy learning and just keep making

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.