Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sql - problema con un punto e virgola..

261 views
Skip to first unread message

Augusto Ballardini

unread,
Aug 13, 2001, 6:02:24 PM8/13/01
to
Non ho idea di quello che succeda. io di sql so poco-niente (mi aveva dato
alcune informazioni skunk tempo fa..)
vi posto il codice


'Dim cn As ADODB.Connection
'Dim strConnString As String
'
'Set cn = New ADODB.Connection
'
'strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"
'strConnString = strConnString & "Data Source=c:\connessioni.mdb"
'cn.ConnectionString = strConnString
'cn.Open
'
'Dim connessioni As ADODB.Recordset
'Set connessioni = New ADODB.Recordset
'
'connessioni.ActiveConnection = cn
'connessioni.CursorType = adOpenForwardOnly
'connessioni.Source = "SELECT * FROM connessioni"
'connessioni.Open
'
'Dim comando As ADODB.Command
'Dim strSQL As String
'
'Set comando = New ADODB.Command
'strSQL = "INSERT INTO connessioni VALUES(connessione, sconnessione,
commenti) VALUES (1, 2,Proviamo)"
'
'comando.ActiveConnection = cn
'comando.CommandText = "INSERT INTO connessioni VALUES(connessione,
sconnessione, commenti) VALUES (1, 2,Proviamo)"
'
'cn.BeginTrans
'
'comando.Execute <<<<<<<<<< ERRORE!!!
'
'cn.CommitTrans
'
'Set comando = Nothing
'Set connessioni = Nothing


l'errore è qui sopra. e sentite che errore!

Errore di run-time '-2147217900 (80040e14)':
Punto e virgola (;) mancante alla fine dell'istruzione SQL

provo a cliccare sulla guida ? ed

Impossibile trovare l'argomento della guida richiesto.. bla bla bla

Sapete dov'è l'errore? e quale sia?
Grazie a tutti, Augusto


MarioH

unread,
Aug 13, 2001, 7:11:18 PM8/13/01
to

> 'Set comando = New ADODB.Command
> 'strSQL = "INSERT INTO connessioni VALUES(connessione, sconnessione,
> commenti) VALUES (1, 2,Proviamo)"

insert into non vuole la parola VALUES anche quando elenchi i fields (se non
sbaglio).
quindi elimina il primo VALUES.

poi, "proviamo" andrebbe tra virgolette, ovviamente visto usi ado sono
virgolette singole:

strSQL = "INSERT INTO connessioni (connessione, sconnessione,
commenti) VALUES (1, 2,'Proviamo')"

le virgolette vanno messe se si tratta di un campo-stringa. quindi si
presume che connessione e sconnessioni siano campi numerici...

MarioH


NonSonoStatoIo

unread,
Aug 13, 2001, 7:39:23 PM8/13/01
to

"Augusto Ballardini"

> Non ho idea di quello che succeda. io di sql so poco-niente

E si vede. Ma recupereremo!
Con un po' di pazienza diventerai un esperto. ;-)

Iniziamo con un buon coniglio: F1

> 'Dim cn As ADODB.Connection
[bla bla bla]


> 'cn.Open
> '
> 'Dim connessioni As ADODB.Recordset

[bla bla bla]


> 'connessioni.Source = "SELECT * FROM connessioni"
> 'connessioni.Open
> '
> 'Dim comando As ADODB.Command
> 'Dim strSQL As String

[bla bla bla]


> 'strSQL = "INSERT INTO connessioni VALUES(connessione, sconnessione,
> commenti) VALUES (1, 2,Proviamo)"

La sintassi corretta l'ho presa volutamente dalla guida di Access

INSERT INTO destinazione [(campo1[, campo2[, ...]])]
VALUES (valore1[, valore2[, ...])

destinazione:

Nome della tabella o della query a cui accodare i record.

campo1, campo2:

Nomi dei campi a cui accodare i dati, se seguono un argomento destinazione
oppure i nomi dei campi da cui ottenere i dati, se seguono un argomento
origine.

valore1, valore2, ...

Valori da inserire nei campi specifici del nuovo record. Ogni valore viene
inserito nel campo che corrisponde alla posizione del valore nell'elenco:
valore1 viene inserito nel campo1 del nuovo record, valore2 nel campo2 e
così via. I valori devono essere separati da virgole e i campi di testo
devono essere racchiusi tra virgolette (' ').

2.o coniglio: F1

> 'comando.ActiveConnection = cn
> 'comando.CommandText = "INSERT INTO connessioni VALUES(connessione,
> sconnessione, commenti) VALUES (1, 2,Proviamo)"

Arrère!...che 'dalle mie parti' vuoli dire 'di nuovo!'

Direi che basta scrivere:
comando.CommandText = strSQL

3.o coniglio: osare.


> l'errore è qui sopra. e sentite che errore!
>
> Errore di run-time '-2147217900 (80040e14)':
> Punto e virgola (;) mancante alla fine dell'istruzione SQL

DATI:
1) Il ";" serve per separare due istruzioni SQL.
2) Access non supporta le query multiple

ELABORAZIONE:
....................................................................

RISULTATO
In Access il ";" non è obbligatorio.

"Ma allora perché restituisce un simile errore?" -dirai-

CONSIDERAZIONI:
Il fatto che in Access il ";" non sia obbligatorio non significa che non ne
conosca il 'ruolo'!
Quindi con ogni probabilità Jet si aspetta una query multipla.
Forse, dunque, gliene hai dato modo!

Prova a confrontare la sintassi corretta con ciò che hai scritto tu e vedrai
che la presenza di 2 calusole VALUES ingannerebbero anche te! [si fa per
dire!]...ingannerebbero anche skunk!

4.o e 5.o coniglio: laddove si può è sempre meglio non peccare di
ingenuità. - mai fidarsi ciecamente di un copia-incolla.

> provo a cliccare sulla guida ? ed

bene!

> Impossibile trovare l'argomento della guida richiesto.. bla bla bla

e ti sei fermato qui?!? ;(
6.o, 7.o, 8.o, ...., n.simo coniglio: osare...F1...F1...F1...

> Sapete dov'è l'errore?

si

> e quale sia?

si

> Grazie a tutti, Augusto

prego, nonsonostatoio.

P.S.: io scherzo, eh!

P.P.S.: Qualcuno ha visto una coppia di conigli?
Sono fuggiti dal cappello e...bhe...sarebbe meglio non lasciarli troppo
soli!
Sapete come vanno queste cose, no?


Sir Jo

unread,
Aug 14, 2001, 2:44:13 AM8/14/01
to
> > Non ho idea di quello che succeda. io di sql so poco-niente
>
> Iniziamo con un buon coniglio: F1
^^^^^^

non sapevo che Bugs Bunny fosse esperto di Sql..................

Ciao

Sir Jo

Augusto Ballardini

unread,
Aug 14, 2001, 5:29:59 AM8/14/01
to
'strSQL = "INSERT INTO connessioni VALUES(connessione, sconnessione,
commenti) VALUES (1, 2,Proviamo)"


beh.. l'errore è tutto qua.

'strSQL = "INSERT INTO connessioni VALUES(connessione, sconnessione,
commenti) VALUES (1, 2,Proviamo)"

^^^^^^^^

questo values non ci va e poi funza tutto!grazie del CONIGLI!
augusto


0 new messages