Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme de mise a jour sqlser + IIS + asp

4 réponses
Avatar
Flex
bonjour

J'effectue sur une page un script d'ajout de données dans ma base.
Quand je fais chez moi en local avec le serveur IIS toiut fonctionne mais
sur le serveur de l'école ca me donne le message d'erreur suivant:

Microsoft OLE DB Provider for SQL Server error '80040e2f'
Cannot insert the value NULL into column 'Comment_ID', table
'journalSQL.dominik.tblComments'; column does not allow nulls. INSERT fails.
et ce message je l'ai avec le code suivant:

dim SQLStmt
SQLStmt = "INSERT INTO tblComments (Name,EMail,Comments,Journal_ID,IP) "
SQLStmt = SQLStmt & "VALUES ('"
SQLStmt = SQLStmt & strInputName
SQLStmt = SQLStmt & "', '" & strInputEmailAddress
SQLStmt = SQLStmt & "', '" & Replace(strInputComments,"'", "''")
SQLStmt = SQLStmt & "', '" & lngJournalID
SQLStmt = SQLStmt & "', '" & Request.ServerVariables("REMOTE_ADDR") & "');"

adoCon.Execute(SQLStmt)

par contre si je fais avec la méthode AddNew j'obtiens toujours a l'école le
message suivant:

ADODB.Recordset error '800a0cb3'
Current Recordset does not support updating. This may be a limitation of the
provider, or of the selected locktype.

avec le code suivant:

'Instanciation de l'objet recordset pour les commentaires
Set rsAddJournalComments = Server.CreateObject("ADODB.Recordset")
...
' paramétrage du type de curseur
rsAddJournalComments.CursorType = 2
'paramétrage du type de verrou
rsAddJournalComments.LockType = 3
' ouverture du Recordset
rsAddJournalComments.Open strSQL, strCon
'Ajout d'un nouvel enregistrement
rsAddJournalComments.AddNew

rsAddJournalComments.Fields("Name") = strInputName
rsAddJournalComments.Fields("EMail") = strInputEmailAddress
rsAddJournalComments.Fields("Comments") = strInputComments
rsAddJournalComments.Fields("Journal_ID") = lngJournalID
rsAddJournalComments.Fields("IP") = Request.ServerVariables("REMOTE_ADDR")

'Update
rsAddJournalComments.Update

'refresh du recordset pour la mise à jour
rsAddJournalComments.Requery


Je ne sais plus quoi faire.
Quelqu'un a t'il une idéee, s'il vous plait?

Merci

4 réponses

Avatar
Laurent MOREAU
J'imagine que:
a l'école, dans la table tblComments, le champ Comment_ID n'est pas
Identity(1,1)
tandis qu'a la maison, il doit y etre.


Laurent.





"Flex" wrote in message
news:
bonjour

J'effectue sur une page un script d'ajout de données dans ma base.
Quand je fais chez moi en local avec le serveur IIS toiut fonctionne mais
sur le serveur de l'école ca me donne le message d'erreur suivant:

Microsoft OLE DB Provider for SQL Server error '80040e2f'
Cannot insert the value NULL into column 'Comment_ID', table
'journalSQL.dominik.tblComments'; column does not allow nulls. INSERT


fails.
et ce message je l'ai avec le code suivant:

dim SQLStmt
SQLStmt = "INSERT INTO tblComments (Name,EMail,Comments,Journal_ID,IP) "
SQLStmt = SQLStmt & "VALUES ('"
SQLStmt = SQLStmt & strInputName
SQLStmt = SQLStmt & "', '" & strInputEmailAddress
SQLStmt = SQLStmt & "', '" & Replace(strInputComments,"'", "''")
SQLStmt = SQLStmt & "', '" & lngJournalID
SQLStmt = SQLStmt & "', '" & Request.ServerVariables("REMOTE_ADDR") &


"');"

adoCon.Execute(SQLStmt)

par contre si je fais avec la méthode AddNew j'obtiens toujours a l'école


le
message suivant:

ADODB.Recordset error '800a0cb3'
Current Recordset does not support updating. This may be a limitation of


the
provider, or of the selected locktype.

avec le code suivant:

'Instanciation de l'objet recordset pour les commentaires
Set rsAddJournalComments = Server.CreateObject("ADODB.Recordset")
...
' paramétrage du type de curseur
rsAddJournalComments.CursorType = 2
'paramétrage du type de verrou
rsAddJournalComments.LockType = 3
' ouverture du Recordset
rsAddJournalComments.Open strSQL, strCon
'Ajout d'un nouvel enregistrement
rsAddJournalComments.AddNew

rsAddJournalComments.Fields("Name") = strInputName
rsAddJournalComments.Fields("EMail") = strInputEmailAddress
rsAddJournalComments.Fields("Comments") = strInputComments
rsAddJournalComments.Fields("Journal_ID") = lngJournalID
rsAddJournalComments.Fields("IP") Request.ServerVariables("REMOTE_ADDR")

'Update
rsAddJournalComments.Update

'refresh du recordset pour la mise à jour
rsAddJournalComments.Requery


Je ne sais plus quoi faire.
Quelqu'un a t'il une idéee, s'il vous plait?

Merci




Avatar
Flex
merci Laurent

Est ce qu'il ya moyen de savoir si sur le serveur de l'ecole il est
identity(1,1).
merci

"Laurent MOREAU" <l.moreau(enleverceci)@systonic.fr> a écrit dans le message
de news: d7jter$mtc$
J'imagine que:
a l'école, dans la table tblComments, le champ Comment_ID n'est pas
Identity(1,1)
tandis qu'a la maison, il doit y etre.


Laurent.



Avatar
jgabillaud
Bonjour,
Visiblement la colonne Comment_Id (qui est sans doute l'identifiant) ne
supporte pas les valeurs NULL. Il faut soit lui fournir une valeur lors de
l'INSERT, soit la définir de type IDENTITY (ce qui est sans doute le cas en
local mais pas sur le serveur de l'école) afin de toujours obtenir une valeur
différente.

"Flex" a écrit :

bonjour

J'effectue sur une page un script d'ajout de données dans ma base.
Quand je fais chez moi en local avec le serveur IIS toiut fonctionne mais
sur le serveur de l'école ca me donne le message d'erreur suivant:

Microsoft OLE DB Provider for SQL Server error '80040e2f'
Cannot insert the value NULL into column 'Comment_ID', table
'journalSQL.dominik.tblComments'; column does not allow nulls. INSERT fails.
et ce message je l'ai avec le code suivant:

dim SQLStmt
SQLStmt = "INSERT INTO tblComments (Name,EMail,Comments,Journal_ID,IP) "
SQLStmt = SQLStmt & "VALUES ('"
SQLStmt = SQLStmt & strInputName
SQLStmt = SQLStmt & "', '" & strInputEmailAddress
SQLStmt = SQLStmt & "', '" & Replace(strInputComments,"'", "''")
SQLStmt = SQLStmt & "', '" & lngJournalID
SQLStmt = SQLStmt & "', '" & Request.ServerVariables("REMOTE_ADDR") & "');"

adoCon.Execute(SQLStmt)

par contre si je fais avec la méthode AddNew j'obtiens toujours a l'école le
message suivant:

ADODB.Recordset error '800a0cb3'
Current Recordset does not support updating. This may be a limitation of the
provider, or of the selected locktype.

avec le code suivant:

'Instanciation de l'objet recordset pour les commentaires
Set rsAddJournalComments = Server.CreateObject("ADODB.Recordset")
....
' paramétrage du type de curseur
rsAddJournalComments.CursorType = 2
'paramétrage du type de verrou
rsAddJournalComments.LockType = 3
' ouverture du Recordset
rsAddJournalComments.Open strSQL, strCon
'Ajout d'un nouvel enregistrement
rsAddJournalComments.AddNew

rsAddJournalComments.Fields("Name") = strInputName
rsAddJournalComments.Fields("EMail") = strInputEmailAddress
rsAddJournalComments.Fields("Comments") = strInputComments
rsAddJournalComments.Fields("Journal_ID") = lngJournalID
rsAddJournalComments.Fields("IP") = Request.ServerVariables("REMOTE_ADDR")

'Update
rsAddJournalComments.Update

'refresh du recordset pour la mise à jour
rsAddJournalComments.Requery


Je ne sais plus quoi faire.
Quelqu'un a t'il une idéee, s'il vous plait?

Merci





Avatar
Laurent MOREAU
Par entreprise manager, regarder les propriétés de la colonne. (Identity
dans le cadre du bas)

Par requete (dans l'analyseur de requete par exemple)
sp_help tblComments

Laurent.


"Flex" wrote in message
news:#
merci Laurent

Est ce qu'il ya moyen de savoir si sur le serveur de l'ecole il est
identity(1,1).
merci

"Laurent MOREAU" <l.moreau(enleverceci)@systonic.fr> a écrit dans le


message
de news: d7jter$mtc$
> J'imagine que:
> a l'école, dans la table tblComments, le champ Comment_ID n'est pas
> Identity(1,1)
> tandis qu'a la maison, il doit y etre.
>
>
> Laurent.
>