ObjRS: nome contenente spazio

il_betto

Utente Attivo
23 Mar 2007
42
0
0
Salve, ho un problema:

- ho creato un database Access con un campo chiamato "leader"; se eseguo la seguente pagina ins_db.asp riesco a inserire nel database il valore che digito tramite una form esterna; e fin qui tutto bene:

<%@ Language=VBScript %>
<%
Option Explicit
Dim objConn, objRS
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=sal.dsn"
objConn.Open
'
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "t_sal", objConn, , 3, 2
objRS.AddNew
objRS("leader") = Request.Form("field1")
objRS.Update
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>

<HTML>
<BODY>
<SCRIPT language="JavaScript">
alert("Message Well Received!");
window.location='http://nome_serverl/index.asp';
</SCRIPT>
</BODY>
</HTML>

il problema e':
se nel database Access modifico il nome del campo "leader" in "Project Leader" e cambio la sintassi della pagina ins_db.asp cosi':
......
objRS.AddNew
objRS("Project Leader") = Request.Form("field1")
objRS.Update
.....


mi da' errore. come mai ????

Grazie mille per l' aiuto !!!
Angelo
 
Perchè generalmente non si usa lasciare spazi in una intestazione di campo è si usa il trattino basso.

Project_Leader

Se proprio non ne puoi fare a meno, ma non ne vedo il motivo, prova a mettere %20 tra Project e Leader ma non sono sicuro che funzioni.
 
Grazie x la risposta, senza lo spazio e' tutto OK. Purtroppo ho l' esigenza di usare proprio lo spazio....

Ho provato a scrivere
objRS("Project%20Leader") = Request.Form("leader") oppure
objRS("[Project Leader]") = Request.Form("leader")
ma mi da' il seguente errore:

Tipo di errore:
ADODB.Recordset (0x800A0CC1)
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
 
Ti ringrazio, ho gia' provato in tutti questi modi ma ho sempre errore:

Se scrivo:

- objRS('Project Leader') = Request.form("field1")
mi da' l' errore
Errore di compilazione di Microsoft VBScript (0x800A03EA)
Errore di sintassi

- objRS([Project Leader]) = Request.form("field1")
mi da' l' errore:
'Project Leader' variabile non definita

- se scrivo objRS("[Project Leader]") = Request.form("field1")
mi da' l' errore:
ADODB.Recordset (0x800A0CC1)
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
 
Ho provato ma l' errore e' simile al precedente:

ADODB.Recordset (0x800A0CC1)
Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto :dipser:
 
Allora, ho fatto una prova con MySql ed ho risolto con l'inserimento di questo apicetto.

`
e quindi

objRS(`Project Leader`) = Request.Form("leader")

Purtroppo access si è impallato e non posso provare, intanto prova cos' e fammi sapere.
 
Ti ringrazio tantissimo per il tuo aiuto.

Ho provato come mi hai detto ma ottengo.
Errore di compilazione di Microsoft VBScript (0x800A0408)
Carattere non valido :incazz2:
 
Mi pare che Access non voglia spazi quando nomini i campi delle tabelle...o forse è sconsigliato proprio per questi problemi che arrivano al momento che fai una query su di esso. Il carattere ` mi sa che è nativo dell'SQL di MySql ed è per quello che ti da l'errore di compilazione di VBscript...mi sa che sei destinato a non mettere spazi in Access...ma scusa perchè non puoi eliminare lo spazio?
 
Grazie x la dritta !!!

Con tutti sti problemi per 1 spazio che ho incontrato, ho optato a malincuore per creare nel db di Access un field chiamato Project_Leader
Fortunatamente il carattere "_" non da' alcun problema.

:byebye:
 
Grazie x la dritta !!!

Con tutti sti problemi per 1 spazio che ho incontrato, ho optato a malincuore per creare nel db di Access un field chiamato Project_Leader
Fortunatamente il carattere "_" non da' alcun problema.

:byebye:

Come disse il nostro caro Pazzaglia:D
Gia che ci siamo...mi sapete dire perchè questa insert non mi insert un c...o?:D

INSERT INTO eventi (titolo_evento, testo_evento, data_ins_evento, id_evento) VALUES ('titolo','testo','2007/03/30', '')

Non inserisce nulla eppure l'avevo gia usata in passato.

Help:confused:
 
Hai per caso cambiato nel Db il formato dei campi ??

Hai provato a mettere i doppi apicetti sui nomi dei campi ??
 
Wellàz! :D

Ciao Metal, posta anche il codice ASP di connessione al DB, difficile aiutarti guardando solo la query ;)

:byebye:

Ciao Pole ben ritrovato:beer:
Non è ASP ma PHP la connessione è ok sono sicuro perchè la uso in altri file e funziona...ecco il codice:

Codice:
$data_ins = date("Y/m/d");
$titolo_evento = $_POST['titolo_evento'];
$testo_evento = $_POST['testo_evento'];    
$query = "INSERT INTO eventi (titolo_evento, testo_evento, data_ins_evento, id_evento) VALUES ('".$titolo_evento."','".$testo_evento."','".$data_ins."', '')";
     @mysql_query($query);

:dormo:
 
Risolto...facevo un casino nel DB e sbagliavo a creare il campo con la chiave primaria auto incrementante:D:elvis:
 

Discussioni simili