Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Problema con ADO
lunedì 26 aprile 2004 - 10.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Seagull
Profilo
| Newbie
11
messaggi | Data Invio:
lun 26 apr 2004 - 10:33
Ho un problema riguardante l'aggiornamento di un campo di una tabella con ADO. Se provo ad aggiornare o modificare tale campo attraverso un form ASP mi viene restituito il seguente errore:
Error: -2147217904
Parametri insufficienti. Previsto 3.
Premesso che le query SQL ed i riferimenti alle tabelle del database (Access) sono corretti, ho provato anche a modificare la gestione degli errori, ma il risultato non cambia.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 27 apr 2004 - 23:08
Seagull wrote:
> Error: -2147217904
> Parametri insufficienti. Previsto 3.
Ciao Seagull,
in genere questo errore è generato quando JET non riesce ad identificare il nome di un campo che di conseguenza considera come parametro.
Il consiglio che ti posso dare è quello di verificare la sintassi del comando di aggiornamento ed i nomi delle varie colonne.
Dato che non hai postato alcuna riga di codice non sono in grado di aiutarti ulteriormente.
Sarebbe utile conoscere la struttura della tabella, la definizione delle colonne che la compongono (data type, lunghezza, constraints, ecc...) e la sezione di script che utilizzi per effettuare l'aggiornamento.
Io consiglio *SEMPRE* di accedere ad un database .mdb tramite gli oggetti QueryDef che sfruttano la tecnologia Rushmore presente in JET e creano un livello di astrazione tra la tua applicazione ed il database.
Per un esempio di codice guarda questo post:
http://tinyurl.com/obsv
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
Seagull
Profilo
| Newbie
11
messaggi | Data Invio:
mer 28 apr 2004 - 14:52
Anzitutto grazie della risposta; riguardo al database, queste sono le "features" della
tabella in questione:
Nome della Tabella: Categoria
Campi della Tabella "Categoria":
ID (Chiave primaria) --> Contatore (Intero Lungo)
Genere --> Testo (50)
la mia Funzione Update() che, essendo public si trova all'interno di un modulo ASP esterno al form,
è la seguente:
Public Function Update()
Dim objCmd
On Error Resume Next
Set objCmd = Server.CreateObject("ADODB.Command")
With objCmd
.CommandText = "prc_updCategoria"
.CommandType = adCmdStoredProc
Set .ActiveConnection = objCn
.Parameters.Append .CreateParameter("pID", adInteger, adParamInput, 4, m_lngID)
.Parameters.Append .CreateParameter("pGenere", adVarWChar, adParamInput, 50, m_strGenere)
.Execute , , adExecuteNoRecords
End With
If Err <> 0 Then
m_strErrorDescription = Err.Description
Update = Err.number
Else
m_strErrorDescription = ""
Update = 0
End If
End Function
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 28 apr 2004 - 15:04
Seagull wrote:
> ID (Chiave primaria) --> Contatore (Intero Lungo)
<SNIP>
> .Parameters.Append .CreateParameter("pID", adInteger, adParamInput, 4, m_lngID)
Ciao Seagull,
dato che ID è autonumber verrà incrementato automaticamente da JET, quindi non devi specificare il parametro di input pID.
Per il resto il codice mi sembra OK (sempre che m_strGenere sia definita a livello di pagina e valorizzata correttamente, objCn sia un oggetto ADODB.Connection valido e che la query prc_updCategoria sia corretta).
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
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 !