Hi,
I have developed an ASP.net VB application on 1.1 in which we insert certain data into a particular table which is on sybase.
My table structure:
CREATE TABLE dbo.at_ip_disbursement
(
doc_id numeric(7,0) IDENTITY,
doc_type varchar(30) NOT NULL,
rim_no int NOT NULL,
item_type varchar(80) NULL,
customer_name varchar(80) NOT NULL,
rsm_name varchar(80) NOT NULL,
branch_no int NULL,
business_unit varchar(30) NOT NULL,
input_dt datetime NOT NULL,
Category varchar(30) NULL,
deferral_details nvarchar(600) NULL,
days_deferred int NULL,
Deff_Expdt datetime NOT NULL,
Deferred_Dt datetime NULL,
rm_comments nvarchar(600) NULL,
creator_id varchar(10) NULL,
modifier_id varchar(10) NULL,
status char(1) NOT NULL,
App_Authority nvarchar(600) NULL
)
LOCK ALLPAGES
go
IF OBJECT_ID('dbo.at_ip_disbursement') IS NOT NULL
PRINT '<<< CREATED TABLE dbo.at_ip_disbursement >>>'
ELSE
PRINT '<<< FAILED CREATING TABLE dbo.at_ip_disbursement >>>'
go
Now the piece of code where the insert takes place:
Public Shared Function AddDisbursement(ByVal DocType As String, ByVal Rim As Int32, ByVal CustomerName As String, ByVal RSMName As String, ByVal BranchNo As Int32, ByVal Business As String, ByVal InputDate As String, ByVal Category As String, ByVal DeferralDetails As String, ByVal DeferredDays As String, ByVal DefExpDate As String, ByVal DefDate As String, ByVal RMComments As String, ByVal CreatorId As String, ByVal App_Authority As String, ByVal Item As String) As String
Dim logger As SKLogger = New SKLogger
Dim connMosaic As String = System.Web.HttpContext.Current.Session("connStr").ToString()
Dim cmdText As String
cmdText = "INSERT INTO at_ip_disbursement(" & _
"doc_type, " & _
"rim_no, " & _
"customer_name, " & _
"rsm_name, " & _
"branch_no, " & _
"business_unit, " & _
"input_dt, " & _
"Category, " & _
"deferral_details, " & _
"days_deferred, " & _
"Deff_Expdt, " & _
"Deferred_Dt, " & _
"rm_comments, " & _
"creator_id, " & _
"status, " & _
"App_Authority, " & _
"item_type) " & _
"VALUES (" & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"?," & _
"'A'," & _
"?," & _
"?)"
Dim conn As OdbcConnection = New OdbcConnection(connMosaic)
Dim cmd As OdbcCommand = New OdbcCommand(cmdText, conn)
cmd.Parameters.Add("@DocType", OdbcType.VarChar).Value = DocType
cmd.Parameters.Add("@Rim", OdbcType.Int).Value = Rim
cmd.Parameters.Add("@CustomerName", OdbcType.VarChar).Value = CustomerName
cmd.Parameters.Add("@RSMName", OdbcType.VarChar).Value = RSMName
cmd.Parameters.Add("@BranchNo", OdbcType.Int).Value = BranchNo
cmd.Parameters.Add("@Business", OdbcType.VarChar).Value = Business
cmd.Parameters.Add("@InputDate", OdbcType.Date).Value = InputDate
cmd.Parameters.Add("@Category", OdbcType.VarChar).Value = Category
cmd.Parameters.Add("@DeferralDetails", OdbcType.VarChar).Value = GetNull(DeferralDetails)
cmd.Parameters.Add("@DeferredDays", OdbcType.Int).Value = DeferredDays
cmd.Parameters.Add("@DefExpDate", OdbcType.Date).Value = DefExpDate
cmd.Parameters.Add("@DefDate", OdbcType.Date).Value = GetNull(DefDate)
cmd.Parameters.Add("@RMComments", OdbcType.VarChar).Value = GetNull(RMComments)
cmd.Parameters.Add("@CreatorId", OdbcType.VarChar).Value = GetNull(CreatorId)
cmd.Parameters.Add("@App_Authority", OdbcType.VarChar, 1200).Value = GetNull(App_Authority)
cmd.Parameters.Add("@Item", OdbcType.VarChar).Value = GetNull(Item)
Try
conn.Open()
cmd.ExecuteNonQuery()
Catch ex As Exception
logger.LogException("AddDisbursement", ex.ToString())
AddDisbursement = ex.Message
Finally
cmd.Dispose()
conn.Close()
End Try
'Return True
End Function
Now through javascript i allow user to input only 500 Characters(which works perfectly). Once the user submits data (say for example 400 characters) which is under the field "App_Authority" i get the following error:
ERROR [HY000] [INTERSOLV][ODBC SQL Server driver][SQL Server]ct_param(): user api layer: external error: A data length of 399 exceeds the maximum length allowed for CHAR data.
The same happens when i try to insert data into fields "RMComments" and "DeferralDetails"
Kindly advise me.
Thanks in Advance
|