| Pier Paolo Pandolfi |
inserimenti in database access
Salve a tutti.
Ho un problema con un insert in accessa tramite datareader. La seguanti stringa: "insert into utente (user,pwd,ruolo,id_societa) values ('" & duplicaApici(Me.txtUser.Text) & "','" & duplicaApici(Me.txtPw.Text) & "','" & Me.cmbRuolo.Text & "'," & ID_Soc & ")" è equivalente alla sua runtime: "insert into utente (user,pwd,ruolo,id_societa) values ('pp','pp','Rilevazione presenze',1)" La variabile ID_Soc è integer.... il campo id_societa è numerico... Eseguendo la query direttamente in access funziona. Se la eseguo da programma, il costrutto try catch mi indica un errore nella sintassi INSERT INTO della query. Stiamo impazzendo in tre! Aiuto! Grazie anticipatamente |
| Corrado Cavalli |
Re: inserimenti in database access
La query sembra ok, però se fossi in te userei i parametri anzichè creare le query direttamente le quali oltre ad essere illeggibili posso dare origine a problemi di sicurezza
HTH Corrado |
| Marco Barzaghi |
Re: inserimenti in database access
> Ho un problema con un insert in accessa tramite datareader.
> La seguanti stringa: in che senso insert e datareader? > "insert into utente (user,pwd,ruolo,id_societa) values ('" & > duplicaApici(Me.txtUser.Text) & "','" & duplicaApici(Me.txtPw.Text) & "','" & > Me.cmbRuolo.Text & "'," & ID_Soc & ")" Attenzione a concatenare parametri per fare stringa SQL. Prova dare un occhio in giro ai problemi di "SQL injection", problema molto fastidioso soprattutto se si parla di contesto web. E' prefereibile l'uso dei parametri. > è equivalente alla sua runtime: > "insert into utente (user,pwd,ruolo,id_societa) values ('pp','pp','Rilevazione > presenze',1)" la sintassi sembra corretta prova dare un occhio se il support segnala qualche problema/bug/tips: http://www.google.com/search?hl=it&ie=UTF-8&q=site%3Asupport.microsoft.com+%22Syntax+Error+in+INSERT+INTO%22+access&lr= HTH M.rkino -- Marco Barzaghi - [MVP - MCP] http://mvp.support.microsoft.com - http://italy.mvps.org UGIDotNet - User Group Italiano .NET, http://www.ugidotnet.org Read my WebLog: http://blogs.ugidotnet.org/markino |
| Pier Paolo Pandolfi |
Re: inserimenti in database access
Ho risolto.
Sembra incredibile, ma nella tabella access se dò il nome "user" ad un campo, l'insert fallisce ma solo da applicazione!!!! Ho verificato che non ci siano alias in tutta l'applicazione. Rinominando il campo da "user" a "user_id" (o qualsiasi altro nome) l'insert FUNZIONA! Misteri della fede. |
| Alessandro Scardova |
Re: inserimenti in database access
Ciao,
USER è una reserved Keyword sia del T-SQL che di ODBC, non lo è per il JET. Il QueryParser del provider OLEDB per il jet però la considera una keyword (come "name") e quindi rialscia un syntax error. Dovresti usare nel SQL Command le parentesi quadre [USER]. Alternativamente potresti fare una Query con Parametri in access e usarla dall'applicativo come fosse una Stored di SQL. ciao AS |