Solved

-2147217913 [Microsoft][ODBC SQL Server Driver][SQL Server]Error converting data type char to int.

Posted on 2004-09-17
12
2,060 Views
Last Modified: 2008-01-09
I am getting this error:

-2147217913 [Microsoft][ODBC SQL Server Driver][SQL Server]Error converting data type char to int.

Any idea how to fix it?
0
Comment
Question by:zachvaldez
  • 7
  • 2
  • 2
  • +1
12 Comments
 
LVL 8

Expert Comment

by:MartinCMS
ID: 12088545
Are you getting this error as the result of trying to Insert data into a table?
0
 
LVL 44

Expert Comment

by:bruintje
ID: 12088595
how to fix depends on what you're trying to do post a bit or statement when it happened and what you're trying to do
0
 
LVL 7

Assisted Solution

by:ChrisFretwell
ChrisFretwell earned 125 total points
ID: 12088805
If you're inserting data into a table it means that you are attempting to insert at least one item that has a non-numeric value into a column that is integer only

If you're selecting data with a where clause like WHERE field > 10 it means that the column field is not a numeric data type and at least one row in your table has a value in field that is not an integer

If you're trying to do math on a field that has character data you'll have the smae problem.

You can create the same type of problem in a case statement.

How to solve it, depends on where you problem comes from.

If its the insert, you have a choice of excluding non-numeric rows or changing your destination data type.
If its the where clause putting quotes around the comparision would help (provided your data supports the results) where field > '10'
If its math, you need to exclude non numeric rows
If its a case statement you need to rethink it
0
NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

 

Author Comment

by:zachvaldez
ID: 12095607
I added another field and it got more worse. Let me do some work and following all your suggestions,I'll get back and report on my findings.
0
 

Author Comment

by:zachvaldez
ID: 12105331
I am passing this thru ADO.

 Set prmId = CmdEquipItems.CreateParameter("@ID", adInteger, adParamInput, 4, lblmodID.Caption)
    CmdEquipItems.Parameters.Append prmId

when it hits this line ,produces runtime errror 3421-Application uses value of the wrong type for the current operation.

I am not getting the error in the UPdate process, just when inserting a new record....




My stored procedure


CREATE PROCEDURE [spu_TestInsertUpdateCatalog]
      @publisher      varchar(40),
      @book      varchar(20),
      @description      varchar(8000) ,
      @cost            float,
      @list            float,      
                @id            int,
      @user_name      char(20),

AS
     SET NOCOUNT ON
 
     if exists(select ID  from books where id = @id)
 begin
             UPDATE Books
             SET   publisher = @publisher
                            book      = @book,
                         descrip = @description,
                         cost =@cost,
                         list =@list,
                         vendid = @vendid,
                        Changed = GetDate(),
                         RowLastUpdtByOp = @user_name,
               RowLastUpdtDtTi = GetDate()
                 
     WHERE
                id = @id
end
     ELSE
Begin        
                 
 INSERT INTO Books
                     (
                     publisher,
                     Book,
            descrip,
                     cost,
                     list,
                               Changed,
                        RowLastUpdtByOp,
                    CreatedDtTi      
                     )
          VALUES
                     (
                     @publisher
                     @book,
                     @description,
                     @cost,
                     @list,
             GetDate(),
                     @user_name,
                     GetDate()
                     )
End
GO
0
 
LVL 7

Accepted Solution

by:
ChrisFretwell earned 125 total points
ID: 12105368
what are the datatypes in your db for publisher, book, desc and cost and RowLastUpdtByOp?
0
 
LVL 44

Expert Comment

by:bruintje
ID: 12105382
the label caption that's passed in is an implicit conersion to string what happens when you convert it first?

Set prmId = CmdEquipItems.CreateParameter("@ID", adInteger, adParamInput, 4, CInt(lblmodID.Caption))
    CmdEquipItems.Parameters.Append prmId
0
 

Author Comment

by:zachvaldez
ID: 12105418
publisher -nvarchar
book -nvarchar
desc-ntext
cost-float
rowlatupdtbyop-char(20)
0
 

Author Comment

by:zachvaldez
ID: 12105624
I get 'OVERFLOW' using the Cint(lblmodID.caption) when doing the edit/updates.

If I leave as is lblmodID.caption- It's oK no error.
0
 

Author Comment

by:zachvaldez
ID: 12106095
I fixed it by changing the label to a textbox to read as

    Set prmId = CmdEquipItems.CreateParameter("@ID", adInteger, adParamInput, 4, txtID)
    CmdEquipItems.Parameters.Append prmId

This is OK now but the problem now is that it not writing/adding  the new ID and Publisher name in the Book table.
The rest of the data are entered/written to the Database though..
0
 

Author Comment

by:zachvaldez
ID: 12106485
I was able to get the publisher in but not the most important--ID!
0
 

Author Comment

by:zachvaldez
ID: 12108293
I fixed the problem in the ADO side.
Thanks with all your help!
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question