Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4174
  • Last Modified:

Stupid problem with BigInt converting!!!

SQL 2005.

Why is it doesnt work:

SELECT  CAST(1 AS bigint) AS a

gives an error:

"Cannot call methods on bigint."
0
vadim63
Asked:
vadim63
  • 14
  • 11
  • 5
  • +1
1 Solution
 
NightmanCTOCommented:
works for me - SQL 2000, SQL 2005 express, SQL 2005 64 bit
0
 
vadim63Author Commented:
No, SQL 2005 32.
0
 
SireesCommented:
Works for me too on SQL 2005 32
0
Build your data science skills into a career

Are you ready to take your data science career to the next step, or break into data science? With Springboard’s Data Science Career Track, you’ll master data science topics, have personalized career guidance, weekly calls with a data science expert, and a job guarantee.

 
NightmanCTOCommented:
Like I said, 2005 express (32) and 64 bit Enterprise
0
 
NightmanCTOCommented:
perhaps you want to post more code - or is that the statement that is failing!?
0
 
vadim63Author Commented:
Ok, If I start it in a new query window, it works fine, but if I run it like

SELECT  CAST(1 AS bigint) AS a
from mytable

it gives an error.

BTW,

SELECT  CAST(1 AS int) AS a
from mytable

works fine also. The problem with bigint only.
0
 
vadim63Author Commented:
There's no more code. There's the only statement.
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
I presume that your database is in a compatibility mode of 70 or lower... when bigints were not available...
0
 
NightmanCTOCommented:
That should also work.
0
 
vadim63Author Commented:
It was started on SQL 2000. But now (I checked it) the compatibility level is SQL 2005 (90)
0
 
NightmanCTOCommented:
works on compatibility mode of 70
0
 
NightmanCTOCommented:
Is that the entire error message, or is there more?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
can you post the table structure, please?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
>works on compatibility mode of 70
I confirm that it works in 70... was just an idea...
0
 
NightmanCTOCommented:
Good idea - I hadn't thought of it, and had to test it
0
 
NightmanCTOCommented:
did it in 2K as well, just to be sure ;)
0
 
vadim63Author Commented:
The entire message is:

SQL Execution Error.
Executed SQL statement: SELECT CAST (1 AS bigint).ToString() AS a FROM aaa
Error Source: .Net SqlClient Data Provider
Error Message: Cannot call methods on bigint.

The table structure:

ID                smallint
PhoneTXT    varchar(15)
phonedig      bigint
Tex              varchar(MAX)
0
 
NightmanCTOCommented:
Where are you executing this statement from? Not Query analyser
0
 
NightmanCTOCommented:
Are you using the View Designer in Management Studio? This fails there. Appears to be a bug in the Net SqlClient Data Provider.

I recommend that you create the view from T-SQL using Query Analyser.
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
What is that ToString?
in TSQL you don't need that...

SELECT CAST (1 AS bigint).ToString() AS a FROM aaa
SELECT CAST( CAST (1 AS bigint) as varchar(20)) AS a FROM aaa
0
 
vadim63Author Commented:
I did not type "ToString()". What I did is: "SELECT CAST (1 AS bigint) AS a FROM aaa"

And "ToString()" shows up in error message only. That's why I called this problem - stupid.
0
 
NightmanCTOCommented:
ToString() is automatically inserted in the View Designer in Management Studio - googled a little and found another similar post (http://www.dbtalk.net/microsoft-public-sqlserver-programming/sql-execution-error-cannot-call-217064.html).

Tried it and got the same error.
0
 
vadim63Author Commented:
What a hell?

SELECT     CAST(CAST(1 AS bigint) AS varchar(20)) AS a FROM  aaa  - works
but
SELECT     CAST(1 AS bigint) AS a FROM   aaa  - not
0
 
NightmanCTOCommented:
Also suggests you will get the same error in a Visual Studio 2005 Database project.

So stupid error is correct - looks like a bug in VS or the .Net SqlClient Data Provider (not sure which).

As I said, use T-SQL to create the view instead.
0
 
vadim63Author Commented:
SELECT     CAST(1 AS int) AS a FROM   aaa   works also
0
 
NightmanCTOCommented:
Yes - I thought that you wanted bigint though? (although for a value off 1 you could also use tinyint).
0
 
vadim63Author Commented:
I need a bigint. And value "1" is for testing only.
0
 
vadim63Author Commented:
Ok, I guess, there's no solution for it. How should assign the points? Split it?
0
 
NightmanCTOCommented:
There is a solution - use T-SQL to create the view, not the designer. You can still select from the view if it is created this way, can't you?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
how do you run this query exactly?
0
 
vadim63Author Commented:
Yes, you right, it doesn't work in designer only. T-SQL does the thing.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

  • 14
  • 11
  • 5
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now