Discussione:
problema con insert e identity insert on
(troppo vecchio per rispondere)
Angelo
2005-08-25 08:18:03 UTC
Permalink
salve,
mi accade la seguente stranezza:
in una tabella T di sql server via odbc da access a volte succede che quando
cerco di inserire delle righe compare il seguente messaggio:
odbc:operazione insert non riuscita su tabella collegata "T"
quando identity_insert è on è necessario specificare il valore esplicito per
la colonna identity della tabella "T"

in T il campo identity è anche chiave primaria per cui si
autovalorizza;inoltre il messaggio di errore non compare sistematicamente.
Su altre tabelle con la stessa struttura questo errore non compare,quindi
non credo che sia collegato a qualche proprietà del database.
grazie
Lorenzo(pyx)
2005-08-25 21:18:07 UTC
Permalink
Post by Angelo
salve,
in una tabella T di sql server via odbc da access a volte succede che
odbc:operazione insert non riuscita su tabella collegata "T"
quando identity_insert è on è necessario specificare il valore
esplicito per la colonna identity della tabella "T"
in T il campo identity è anche chiave primaria per cui si
autovalorizza;inoltre il messaggio di errore non compare
sistematicamente. Su altre tabelle con la stessa struttura questo
errore non compare,quindi non credo che sia collegato a qualche
proprietà del database.
Ciao,
Il messaggio sarebbe corretto se volutamente e' stata attivata
una set identity_insert in modo da poter forzare la colonna
di autoincremento (su microsoft.public.it.sql ti possono dare
maggiori informazioni oppure nella guida in linea SQL)
Il fatto che sia una chiave primaria non implica che sia
necessariamente un campo contatore.

Prova a cancellare il link alla tabella e a rifarlo ex novo.

Ciao
--
Lorenzo
Angelo
2005-08-26 07:59:53 UTC
Permalink
come già dicevo prima,l'errore è casuale,nel senso che avviene casualmente a
prescindere dal tipo di dati che vado a inserire.
Il campo è una chiave primaria con identità impostata a si.Altre tabelle nel
database hanno la stessa struttura ma non presentano la stessa anomalia
Post by Lorenzo(pyx)
Post by Angelo
salve,
in una tabella T di sql server via odbc da access a volte succede che
odbc:operazione insert non riuscita su tabella collegata "T"
quando identity_insert è on è necessario specificare il valore
esplicito per la colonna identity della tabella "T"
in T il campo identity è anche chiave primaria per cui si
autovalorizza;inoltre il messaggio di errore non compare
sistematicamente. Su altre tabelle con la stessa struttura questo
errore non compare,quindi non credo che sia collegato a qualche
proprietà del database.
Ciao,
Il messaggio sarebbe corretto se volutamente e' stata attivata
una set identity_insert in modo da poter forzare la colonna
di autoincremento (su microsoft.public.it.sql ti possono dare
maggiori informazioni oppure nella guida in linea SQL)
Il fatto che sia una chiave primaria non implica che sia
necessariamente un campo contatore.
Prova a cancellare il link alla tabella e a rifarlo ex novo.
Ciao
--
Lorenzo
Lorenzo(pyx)
2005-08-26 10:14:45 UTC
Permalink
Post by Angelo
come già dicevo prima,l'errore è casuale,nel senso che avviene
casualmente a prescindere dal tipo di dati che vado a inserire.
Il campo è una chiave primaria con identità impostata a si.Altre
tabelle nel database hanno la stessa struttura ma non presentano la
stessa anomalia
Si, ok.
Hai provato a cancellare il link e a rifarlo ?
O in alternativa,non so che versione di Access usi, dal menu
Strumenti->Utilita Database->Gestione Tabelle Collegate

Ciao
--
Lorenzo
Angelo
2005-08-26 10:42:42 UTC
Permalink
si ,ovviamente qdo accade l'errore ho provato a ricollegare la tabella,a
chiudere e riaprire access(versione 2003,formato file 2000), l'errore
ricompare comunque
Post by Lorenzo(pyx)
Post by Angelo
come già dicevo prima,l'errore è casuale,nel senso che avviene
casualmente a prescindere dal tipo di dati che vado a inserire.
Il campo è una chiave primaria con identità impostata a si.Altre
tabelle nel database hanno la stessa struttura ma non presentano la
stessa anomalia
Si, ok.
Hai provato a cancellare il link e a rifarlo ?
O in alternativa,non so che versione di Access usi, dal menu
Strumenti->Utilita Database->Gestione Tabelle Collegate
Ciao
--
Lorenzo
Lorenzo(pyx)
2005-08-26 11:09:25 UTC
Permalink
Angelo wrote:
[REPRISE]
Post by Angelo
salve,
in una tabella T di sql server via odbc da access a volte succede che quando
odbc:operazione insert non riuscita su tabella collegata "T"
quando identity_insert è on è necessario specificare il valore esplicito per
la colonna identity della tabella "T"
in T il campo identity è anche chiave primaria per cui si
autovalorizza;inoltre il messaggio di errore non compare sistematicamente.
Su altre tabelle con la stessa struttura questo errore non compare,quindi
non credo che sia collegato a qualche proprietà del database.
ovviamente qdo accade l'errore ho provato a ricollegare la
tabella,a chiudere e riaprire access(versione 2003,formato file
2000), l'errore ricompare comunque
Umh, non mi e' mai successo.
Le uniche cose che mi viene a pensare sono:
-Numero colonne della tabella (ma dici che la struttura e' simile ad altre)
-Se ci sono dei campi memo (TEXT)
-Versione del driver ODBC (MDAC)

Hai modo di provare su una altra postazione ?

Ciao
--
Lorenzo
Angelo
2005-08-26 13:14:34 UTC
Permalink
il problema si verifica su piu pc,l'MDAC è aggiornato,per cui non credo sia
legato alle versioni odbc.
Ho notato piuttosto che quando inserisco la prima volta,tramite il seguente
codice:
strSql =" insert into dbo_T(idforeign,numero) "
strSql = strSql & " values( " & Me.IDforeign & "," & Me.numero & ")"
DoCmd.RunSQL strSql
il problema non si presenta.
Quando vado successivamente a ripetere l'operazione compare l'errore
Post by Lorenzo(pyx)
[REPRISE]
Post by Angelo
salve,
in una tabella T di sql server via odbc da access a volte succede che quando
odbc:operazione insert non riuscita su tabella collegata "T"
quando identity_insert è on è necessario specificare il valore esplicito per
la colonna identity della tabella "T"
in T il campo identity è anche chiave primaria per cui si
autovalorizza;inoltre il messaggio di errore non compare
sistematicamente.
Post by Lorenzo(pyx)
Post by Angelo
Su altre tabelle con la stessa struttura questo errore non compare,quindi
non credo che sia collegato a qualche proprietà del database.
ovviamente qdo accade l'errore ho provato a ricollegare la
tabella,a chiudere e riaprire access(versione 2003,formato file
2000), l'errore ricompare comunque
Umh, non mi e' mai successo.
-Numero colonne della tabella (ma dici che la struttura e' simile ad altre)
-Se ci sono dei campi memo (TEXT)
-Versione del driver ODBC (MDAC)
Hai modo di provare su una altra postazione ?
Ciao
--
Lorenzo
Angelo
2005-08-29 08:34:16 UTC
Permalink
ho fatto altre prove, e devo rettificare cio che ho detto prima:
quando compare il messaggio, se inserisco direttamente da sqlserver con
query analizer,è tutto ok,se invece inserisco da access via odbc mi da il
problema.
Ora provo a installare l'ultima versione dell'mdac,la 2.8
Post by Angelo
il problema si verifica su piu pc,l'MDAC è aggiornato,per cui non credo sia
legato alle versioni odbc.
Ho notato piuttosto che quando inserisco la prima volta,tramite il seguente
strSql =" insert into dbo_T(idforeign,numero) "
strSql = strSql & " values( " & Me.IDforeign & "," & Me.numero & ")"
DoCmd.RunSQL strSql
il problema non si presenta.
Quando vado successivamente a ripetere l'operazione compare l'errore
Post by Lorenzo(pyx)
[REPRISE]
Post by Angelo
salve,
in una tabella T di sql server via odbc da access a volte succede che
quando
Post by Lorenzo(pyx)
Post by Angelo
odbc:operazione insert non riuscita su tabella collegata "T"
quando identity_insert è on è necessario specificare il valore
esplicito
Post by Angelo
per
Post by Lorenzo(pyx)
Post by Angelo
la colonna identity della tabella "T"
in T il campo identity è anche chiave primaria per cui si
autovalorizza;inoltre il messaggio di errore non compare
sistematicamente.
Post by Lorenzo(pyx)
Post by Angelo
Su altre tabelle con la stessa struttura questo errore non
compare,quindi
Post by Angelo
Post by Lorenzo(pyx)
Post by Angelo
non credo che sia collegato a qualche proprietà del database.
ovviamente qdo accade l'errore ho provato a ricollegare la
tabella,a chiudere e riaprire access(versione 2003,formato file
2000), l'errore ricompare comunque
Umh, non mi e' mai successo.
-Numero colonne della tabella (ma dici che la struttura e' simile ad
altre)
Post by Lorenzo(pyx)
-Se ci sono dei campi memo (TEXT)
-Versione del driver ODBC (MDAC)
Hai modo di provare su una altra postazione ?
Ciao
--
Lorenzo
Lorenzo(pyx)
2005-08-29 10:32:17 UTC
Permalink
Post by Angelo
quando compare il messaggio, se inserisco direttamente da sqlserver
con query analizer,è tutto ok,se invece inserisco da access via odbc
mi da il problema.
Ora provo a installare l'ultima versione dell'mdac,la 2.8
Puo' essere,sono appena uscito da una battaglia con fox-pro,
Non ti dico gli errori *astrusi* con un dirver non aggiornato.

Sappici dire,
Ciao
--
Lorenzo
Angelo
2005-08-29 12:40:21 UTC
Permalink
ho installato l'mdac 2.8 ,ma non ho risolto.Ho notato che il codice che crea
il problema,che persiste anche se inserisco poi manualmente dalla tabella
odbc , è il seguente:
"insert into Tabella_server select * from Tabella_locale where..."
dove Tabella_server e Tabella_locale sono strutturalmente uguali e
Tabella_locale risiede in access.
Ho modificato questo codice in :
"insert into Tabella_server (campo1,campo2,...) select campo1,campo2,...
from Tabella_locale where..."
escludendo il campo chiave contatore,e sembra funzionare,per ora...
Post by Lorenzo(pyx)
Post by Angelo
quando compare il messaggio, se inserisco direttamente da sqlserver
con query analizer,è tutto ok,se invece inserisco da access via odbc
mi da il problema.
Ora provo a installare l'ultima versione dell'mdac,la 2.8
Puo' essere,sono appena uscito da una battaglia con fox-pro,
Non ti dico gli errori *astrusi* con un dirver non aggiornato.
Sappici dire,
Ciao
--
Lorenzo
Loading...