PDA

View Full Version : error '80040e2f' در ASP



ekbatansoft
شنبه 05 اردیبهشت 1388, 12:05 عصر
با سلام
من یک Host ویندوز با Sql2005 دارم
به راحتی می تونم با بانک ارتباط برقرار کنم و Update رکورد را می تونم انجام بدم
اما نمی تونم insert رو انجام بدم.
کد های من Asp هستش و روی کامپیوتر خودم کار میکنه ولی روی host نه
- نکته : اگر برای table بانک هاست Key تعریف نکنم می تونم insert کنم.

با سپاس از راهنمایی شما
Microsoft OLE DB Provider for SQL Server error '80040e2f'
Cannot insert the value NULL into column 'intid', table 'sqlmain.dbo.test'; column does not allow nulls. INSERT fails.
/test_insert.asp, line 36
----------------------------------------------------
کد :

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/ashkan.asp" -->
<%
Dim MM_editAction
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If
' boolean to abort record edit
Dim MM_abortEdit
MM_abortEdit = false
%>
<%
' IIf implementation
Function MM_IIf(condition, ifTrue, ifFalse)
If condition = "" Then
MM_IIf = ifFalse
Else
MM_IIf = ifTrue
End If
End Function
%>
<%
If (CStr(Request("MM_insert")) = "form1") Then
If (Not MM_abortEdit) Then
' execute the insert
Dim MM_editCmd
Set MM_editCmd = Server.CreateObject ("ADODB.Command")
MM_editCmd.ActiveConnection = MM_ashkan_STRING
MM_editCmd.CommandText = "INSERT INTO dbo.test (txtname, intshow) VALUES (?, ?)"
MM_editCmd.Prepared = true
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("txtname")) ' adVarWChar
MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 5, 1, -1, MM_IIF(Request.Form("intshow"), Request.Form("intshow"), null)) ' adDouble
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
End If
End If
%>

kashaneh
شنبه 05 اردیبهشت 1388, 16:34 عصر
دوست عزیز... مشکل کار شما در اینجاست که فیلدی به نام intid در جدول خود دارید که گزینه Allow Null رو در آن تیک دار نکرده اید (در قسمت طراحی جدول)... به عبارت ساده تر اینکه این فیلد باید حتما در هنگام Insert یک رکورد جدید، مقداری بهش اختصاص پیدا کنه وگرنه هرگونه تلاش جهت درج در بانک اطلاعاتی به شکست می انجامد! ... حتماً این موضوع رو چک کنید... موفق باشی

ekbatansoft
شنبه 05 اردیبهشت 1388, 18:51 عصر
دوست عزیز... مشکل کار شما در اینجاست که فیلدی به نام intid در جدول خود دارید که گزینه Allow Null رو در آن تیک دار نکرده اید (در قسمت طراحی جدول)... به عبارت ساده تر اینکه این فیلد باید حتما در هنگام Insert یک رکورد جدید، مقداری بهش اختصاص پیدا کنه وگرنه هرگونه تلاش جهت درج در بانک اطلاعاتی به شکست می انجامد! ... حتماً این موضوع رو چک کنید... موفق باشی

دوست عزیزم kashaneh این فیلد key هستش .
و نمی توان این خاصیت را به آن داد ...
وقتی در بانک Sql به فیلدی Key اختصاص می دهم و نوع اتومانیک Number را می دهم این
گزینه را غیر فعال می کنه

حامد مصافی
شنبه 05 اردیبهشت 1388, 19:14 عصر
آیا خصوصیت identity فیلد مذکور Yes است؟