Errore query INserc INNER JOIN ACCESS

mercoledì 10 dicembre 2008 - 12.36

ventu Profilo | Newbie

Errore di esecuzione query diche che manca un ; alla fine della query

INSERT INTO Utenti ( Utente, [Password], Categoria ) VALUES
('cane','topo','somaro')
Utenti.Utente, Utenti.Password, Utenti.Categoria
FROM Utenti INNER JOIN Accessi ON Utenti.ID = Accessi.IDUtente;

scusate mi sono dimenticato la descrizione del database
e composto da 2 tabelle:
La prima tabella (Utenti)ha 4 Colonne:
-ID
-Utente (Testo)
-Password (Testo)
-Categoria (Testo)
La seconda tabella (Accessi)ha 4 colonne:
-ID
-IDUtenti (numerico)
-Entrata (datetime)
-Uscita (datetime)

Ed è stata creata un relazione uno a molti:
Fra Utenti.ID e Accessi.IDUtenti

Ciao e grazie in anticipo (Se vi serve il codice e scritto in c# postabile a richiesta)

lbenaglia Profilo | Guru

>Errore di esecuzione query diche che manca un ; alla fine della
>query
>
>INSERT INTO Utenti ( Utente, [Password], Categoria ) VALUES
>('cane','topo','somaro')
>Utenti.Utente, Utenti.Password, Utenti.Categoria
>FROM Utenti INNER JOIN Accessi ON Utenti.ID = Accessi.IDUtente;

Ciao Marco,

La sintassi di questo comando è errata.
Il problema è che non riesco a capire cosa stai cercando di fare


>scusate mi sono dimenticato la descrizione del database
>e composto da 2 tabelle:
>La prima tabella (Utenti)ha 4 Colonne:
>-ID
>-Utente (Testo)
>-Password (Testo)
>-Categoria (Testo)
>La seconda tabella (Accessi)ha 4 colonne:
>-ID
>-IDUtenti (numerico)
>-Entrata (datetime)
>-Uscita (datetime)
>
>Ed è stata creata un relazione uno a molti:
>Fra Utenti.ID e Accessi.IDUtenti

OK, abbiamo due tabelle, ma tu cosa vuoi fare?

>Ciao e grazie in anticipo (Se vi serve il codice e scritto in
>c# postabile a richiesta)
Il codice C# non ci serve, ma dobbiamo sapere con quale DBMS stai lavorando, i comandi CREATE TABLE delle due tabelle, alcune righe di prova (INSERT INTO) ed il risultato che vorresti ottenere con quei dati.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ventu Profilo | Newbie

Io voglio inserire un NUOVO utente al mio database, ti spiego meglio:
-colonna Utente = User
-colonna Password = Password
-colonna Categoria = categoria
passando dei parametri

Il database e access 2007 cmq metto il codice non si sa mai

Le tabelle sono gia state create dalla configurazione grafica di access 2007 come le relazioni

La prima tabella (Utenti)ha 4 Colonne:
-ID
-Utente (Testo)
-Password (Testo)
-Categoria (Testo)
La seconda tabella (Accessi)ha 4 colonne:
-ID
-IDUtenti (numerico)
-Entrata (datetime)
-Uscita (datetime)

Ed è stata creata un relazione uno a molti:
Fra Utenti.ID e Accessi.IDUtenti


string myConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Documents and Settings\ventu\Documenti\Visual Studio
2005\WebSites\Acessi\App_Data\Accessi.mdb";
OleDbConnection con = new OleDbConnection(myConnString);
string sql = "INSERT INTO Utenti (Utente,[Password],Categoria) VALUES ('cane','topo','somaro') Utenti.Utente, Utenti.Password, Utenti.Categoria FROM Utenti INNER JOIN Accessi ON Utenti.ID=Accessi.IDUtenti";
OleDbCommand cmd = new OleDbCommand(sql, con);
//OleDbParameter param = new OleDbParameter();
//param.ParameterName = "@Utente";
//param.Value = txtUtente.Text;
//cmd.Parameters.Add(param);
//param = new OleDbParameter();
//param.ParameterName = "@Password";
//param.Value = txtPassword.Text;
//cmd.Parameters.Add(param);
//param = new OleDbParameter();
//param.ParameterName = "@Categoria";
//param.Value = dlCategoria.SelectedItem;
//cmd.Parameters.Add(param);
//try
//{
if (con.State != ConnectionState.Connecting)
{
con.Open();

}
cmd.ExecuteNonQuery();
//}
//catch
//{

//}
//finally
//{
// if (con.State != ConnectionState.Connecting)
// {
// con.Close();

// }
//}
questo e il codice e mi da errore cmd.ExecuteNonQuery(); dicendo che manca un ; alla fine della query

lbenaglia Profilo | Guru

>Io voglio inserire un NUOVO utente al mio database, ti spiego
>meglio:
>-colonna Utente = User
>-colonna Password = Password
>-colonna Categoria = categoria
>passando dei parametri
>
>string myConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
>Source=C:\Documents and Settings\ventu\Documenti\Visual Studio
>2005\WebSites\Acessi\App_Data\Accessi.mdb";

OK, stai usando Access.
Ripeto che quel comando di INSERT è sintatticamente errato (oltre ad avere poco senso).
In questo thread troverai un esempio di INSERT parametrica con Access:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=13913

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ventu Profilo | Newbie

Scusa Ultima cosa perche e sintatticamente errato
INSERT INTO nometabella (nomecolonna, nomeColonna) VALUES ('ciao', 'ciao') e fin qui tutto bene anche nel topic da te sugggerito è cosi.
in problema è che la tabella ha una relazione e quindi nell' insrimento mi richiede il collegamento fra tabelle effettuato tramite l'
inner join

Utenti.Categoria FROM Utenti INNER JOIN Accessi ON

te la riscrivo:
INSERT INTO Utenti (Utente,[Password],Categoria)
VALUES ('cane','topo','somaro')
Utenti.Categoria FROM Utenti INNER JOIN Accessi ON
Utenti.ID=Accessi.IDUtenti";
ed e qui che sorge il problema.

Se conosci l'errore sintattico me lo poi Scrivere grazie che nell'atro topic non l'ho trovato

Se non collego le tabelle da Errore. Invece qui dice che manca un ; alla fine della query

Grazie in anticipo

lbenaglia Profilo | Guru

>Scusa Ultima cosa perche e sintatticamente errato
>INSERT INTO nometabella (nomecolonna, nomeColonna) VALUES ('ciao',
>'ciao') e fin qui tutto bene anche nel topic da te sugggerito
>è cosi.
Certo.

>in problema è che la tabella ha una relazione e quindi nell'
>insrimento mi richiede il collegamento fra tabelle effettuato
>tramite l' inner join
>Utenti.Categoria FROM Utenti INNER JOIN Accessi ON
Intendi dire che PRIMA devi eseguire una INSERT nella tabella dalla parte 1 della relazione e poi una seconda INSERT nella tabella dalla parte molti della relazione?

>te la riscrivo:
>INSERT INTO Utenti (Utente,[Password],Categoria)
>VALUES ('cane','topo','somaro')
>Utenti.Categoria FROM Utenti INNER JOIN Accessi ON
>Utenti.ID=Accessi.IDUtenti";
>
>ed e qui che sorge il problema.
Appunto, quel comando è sbagliato.

>Se non collego le tabelle da Errore e qui dice che manca un ;
>alla fine della query
Cosa intendi con "Se non collego le tabelle"?

>Grazie in anticipo
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ventu Profilo | Newbie

Vuole dire che essendoci una relazione ACCESS anche se aggiorno una sola tabella con dei valori richiede il collegamneto con l'atra tabella, essendoci una relazione non mi chiedere il perchè se faccio una semplice query di INSERT INTO Utenti (Utente) VALUES ('ciao')

Da errore perche non è collegata trammite l'inner join

Non mi chiedere il preche non e la prima volta che lavoro con i database, una semplice query in sql funziona in access no.....

lbenaglia Profilo | Guru

>Vuole dire che essendoci una relazione ACCESS anche se aggiorno
>una sola tabella con dei valori richiede il collegamneto con
>l'atra tabella, essendoci una relazione non mi chiedere il perchè
>se faccio una semplice query di INSERT INTO Utenti (Utente) VALUES
>('ciao')
Non ho capito niente di quello che hai scritto
Io mi sono limitato a dire che per inserire una riga nella tabella dalla parte molti della relazione, DEVE esistere una riga "padre" corrispondente nella tabella dalla parte 1.

>Da errore perche non è collegata trammite l'inner join
Ma che c'entrano le JOIN?

>Non mi chiedere il preche non e la prima volta che lavoro con
>i database, una semplice query in sql funziona in access no.....
Guarda, stai tranquillo che quella sintassi NON FUNZIONA né in SQL Server né con qualunque altro DBMS

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

ventu Profilo | Newbie

Scusa se mi sono spiegato male, voglio semplicamente inserire un nuovo record(un nuovo utente nella mia tabella.

Grazie
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5