473,386 Members | 2,114 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Excel import with x64 machine

DC
Hi,

I easily ported a .Net 2.0 c# app to x64, but there is one major
problem left: the app imports excel data via OleDB, and there are no
Jet drivers and no ODBC divers (other than SQL Server) available for
64 bit apps on the x64 platform.

I have x64, Sql Server (must support 2000 and 2005) and Excel sheets
(must be able to import mixed mode data), can someone point me into a
direction to get this solved without too much trouble?

TIA for any help,

Regards
DC

May 10 '07 #1
11 4062
DC,

Have you thought about running your app in 32 bit compatability mode?
This might be your only option.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"DC" <dc@upsize.dewrote in message
news:11**********************@w5g2000hsg.googlegro ups.com...
Hi,

I easily ported a .Net 2.0 c# app to x64, but there is one major
problem left: the app imports excel data via OleDB, and there are no
Jet drivers and no ODBC divers (other than SQL Server) available for
64 bit apps on the x64 platform.

I have x64, Sql Server (must support 2000 and 2005) and Excel sheets
(must be able to import mixed mode data), can someone point me into a
direction to get this solved without too much trouble?

TIA for any help,

Regards
DC

May 10 '07 #2
"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.comwrote in
message news:%2****************@TK2MSFTNGP02.phx.gbl...
Have you thought about running your app in 32 bit compatability mode? This
might be your only option.
I had a similar problem recently with Jet rather than Excel, but the
principle is the same...

As I understand it, there are no 64-bit OleDb drivers for anything other
than SQL Server - therefore, it's not possible to write 64-bit apps which
interface with databases in this way...

In the end I had no choice but to force the app to compile in 32-bit after
which, of course, everything was fine...

May 10 '07 #3
DC
Thanks for the hints and sorry for an additional stupid question (I
don't know much about x64 architecture...): I guess when the app is
run in 32 Bit mode, it will also behave like it was run under Win32
and not address more than 2GB? That is no option then, since the
ability to use huge amounts of RAM is why the app was ported to x64 in
the first place.

I could not have been that hard to at least "bridge" the 64 Bit OleDB
Drivers to the 32 Bit OleDB Drivers (or ODBC drivers). This makes me
wonder how much dedication MS spents to x64 systems.

I will look for other solutions like write a litte 32 Bit Program that
only executes the Jet Imports (and communicates with the 64 Bit
somehow and I don't know how other than exchanging files) or have SQL
Server import the Excel data to a temp table, but it is a pity that
this is necessary. My app is a windows service, I wonder how deep the
porting issues would possibly be if I had to work with graphics and
printer drivers.

Regards
DC

On 10 Mai, 18:18, "Mark Rae" <m...@markNOSPAMrae.netwrote:
"Nicholas Paldino [.NET/C# MVP]" <m...@spam.guard.caspershouse.comwrote in
messagenews:%2****************@TK2MSFTNGP02.phx.gb l...
Have you thought about running your app in 32 bit compatability mode? This
might be your only option.

I had a similar problem recently with Jet rather than Excel, but the
principle is the same...

As I understand it, there are no 64-bit OleDb drivers for anything other
than SQL Server - therefore, it's not possible to write 64-bit apps which
interface with databases in this way...

In the end I had no choice but to force the app to compile in 32-bit after
which, of course, everything was fine...

May 11 '07 #4
"DC" <dc@upsize.dewrote in message
news:11*********************@w5g2000hsg.googlegrou ps.com...
Thanks for the hints and sorry for an additional stupid question (I
don't know much about x64 architecture...): I guess when the app is
run in 32 Bit mode, it will also behave like it was run under Win32
and not address more than 2GB?
I believe so...
I could not have been that hard to at least "bridge" the 64 Bit OleDB
Drivers to the 32 Bit OleDB Drivers (or ODBC drivers).
How can you possibly know how hard it would have been...?
--
http://www.markrae.net

May 11 '07 #5
DC
How can you possibly know how hard it would have been...?

You are right, I was only guessing. However, it is a shame to look
into the 64 Bit ODBC panel and only find the SQL Drivers ("empty
dabase connection"). And if one successfully converts a project to x64
and then runs it proudly and finds out that there is not Jet drivers
for x64 available, one may think "DAMN, it couldn't have been so hard
to port those drivers, at least if you own the source you should be
able to get it done!"

May 12 '07 #6
"DC" <dc@upsize.dewrote in message
news:11*********************@w5g2000hsg.googlegrou ps.com...
Thanks for the hints and sorry for an additional stupid question (I
don't know much about x64 architecture...): I guess when the app is
run in 32 Bit mode, it will also behave like it was run under Win32
and not address more than 2GB? That is no option then, since the
ability to use huge amounts of RAM is why the app was ported to x64 in
the first place.
Let me see, you are talking about porting, but you rely on a 32 bit
application to get your data from, this is not what I call porting, porting
means that you control the whole code base that should be ported. You are
accessing Excel data, right, excel is still 32 bit, you can't possibly have
worksheets larger than 2GB.
I could not have been that hard to at least "bridge" the 64 Bit OleDB
Drivers to the 32 Bit OleDB Drivers (or ODBC drivers). This makes me
wonder how much dedication MS spents to x64 systems.
What for? Excel (all Office for that matter) is still 32 bit, why would you
ever need JET 64 bit drivers for?

I will look for other solutions like write a litte 32 Bit Program that
only executes the Jet Imports (and communicates with the 64 Bit
somehow and I don't know how other than exchanging files) or have SQL
Server import the Excel data to a temp table, but it is a pity that
this is necessary. My app is a windows service, I wonder how deep the
porting issues would possibly be if I had to work with graphics and
printer drivers.
?? What do printer drivers and graphics have to do with all this is beyond
me.
What you need to do is plit your application into a 32 bit part and a 64 bit
part, use COM interop to cross the 64/32 bit boundary.
For instance, drop the code (just a simple class library compiled as 32 bit)
that retrieves the Excel data into a COM+ (System.EnterpriseServices) as a
"server type" application, and call that server methods from your 64 bit
Windows service. This is exactly why System.EnterpriseServices are made for.

Willy.


May 12 '07 #7
DC
Hi Willy, thank you for the suggestion, the COM interop stuff is what
I will try if I fail to use SQL Server to carry out the imports for
me.

I am only importing small sheets, the 2GB of RAM is required
elsewhere in the application. I agree that there is some sort of logic
concerning your explanation why there are no 64 Bit Jet/ODBC driver
other than the SQL Server drivers, but in my opinion that explanation
is more a possible excuse for Microsoft to not port the drivers. I
have to import Excel sheets into a x64 service, I am not asking for
legacy support of an age old application.

On 12 Mai, 11:44, "Willy Denoyette [MVP]" <willy.denoye...@telenet.be>
wrote:
"DC" <d...@upsize.dewrote in message

news:11*********************@w5g2000hsg.googlegrou ps.com...
Thanks for the hints and sorry for an additional stupid question (I
don't know much about x64 architecture...): I guess when the app is
run in 32 Bit mode, it will also behave like it was run under Win32
and not address more than 2GB? That is no option then, since the
ability to use huge amounts of RAM is why the app was ported to x64 in
the first place.

Let me see, you are talking about porting, but you rely on a 32 bit
application to get your data from, this is not what I call porting, porting
means that you control the whole code base that should be ported. You are
accessing Excel data, right, excel is still 32 bit, you can't possibly have
worksheets larger than 2GB.
I could not have been that hard to at least "bridge" the 64 Bit OleDB
Drivers to the 32 Bit OleDB Drivers (or ODBC drivers). This makes me
wonder how much dedication MS spents to x64 systems.

What for? Excel (all Office for that matter) is still 32 bit, why would you
ever need JET 64 bit drivers for?
I will look for other solutions like write a litte 32 Bit Program that
only executes the Jet Imports (and communicates with the 64 Bit
somehow and I don't know how other than exchanging files) or have SQL
Server import the Excel data to a temp table, but it is a pity that
this is necessary. My app is a windows service, I wonder how deep the
porting issues would possibly be if I had to work with graphics and
printer drivers.

?? What do printer drivers and graphics have to do with all this is beyond
me.
What you need to do is plit your application into a 32 bit part and a 64 bit
part, use COM interop to cross the 64/32 bit boundary.
For instance, drop the code (just a simple class library compiled as 32 bit)
that retrieves the Excel data into a COM+ (System.EnterpriseServices) as a
"server type" application, and call that server methods from your 64 bit
Windows service. This is exactly why System.EnterpriseServices are made for.

Willy.

May 13 '07 #8
"DC" <dc@upsize.dewrote in message
news:11**********************@q75g2000hsh.googlegr oups.com...
Hi Willy, thank you for the suggestion, the COM interop stuff is what
I will try if I fail to use SQL Server to carry out the imports for
me.
These guys do 64-bit drivers for file-based data sources:
http://www.openlinksw.com/

Obviously, not for free...:-)
--
http://www.markrae.net

May 15 '07 #9
"DC" <dc@upsize.dewrote in message
news:11**********************@q75g2000hsh.googlegr oups.com...
Hi Willy, thank you for the suggestion, the COM interop stuff is what
I will try if I fail to use SQL Server to carry out the imports for
me.

I am only importing small sheets, the 2GB of RAM is required
elsewhere in the application. I agree that there is some sort of logic
concerning your explanation why there are no 64 Bit Jet/ODBC driver
other than the SQL Server drivers, but in my opinion that explanation
is more a possible excuse for Microsoft to not port the drivers. I
have to import Excel sheets into a x64 service, I am not asking for
legacy support of an age old application.

MS has told us years ago that JET was going to "maintenance mode," that is,
no new versions would be made available, only SP's, JET is since then no
longer distributed with Office and is no longer part of MDAC either. That
said, the problem is not whether it can be ported or not, the problem is
that you would not be able to load JET64 into an Office client like Excel or
Access, unless MS ports Office to 64 bit.

Willy.

May 16 '07 #10
"Willy Denoyette [MVP]" <wi*************@telenet.bewrote in message
news:B5**********************************@microsof t.com...
MS has told us years ago that JET was going to "maintenance mode," that
is, no new versions would be made available, only SP's,
Yes indeed:
http://msdn2.microsoft.com/en-us/library/ms810810.aspx
JET is since then no longer distributed with Office and is no longer part
of MDAC either.
Correct. In fact, MDAC doesn't even exist in Vista, having been replaced
with WDAC:
http://msdn2.microsoft.com/en-us/library/ms692897.aspx
That said, the problem is not whether it can be ported or not, the problem
is that you would not be able to load JET64 into an Office client like
Excel or Access, unless MS ports Office to 64 bit.
Which is bound to happen sooner or later... :-)
--
http://www.markrae.net

May 16 '07 #11
"Mark Rae" <ma**@markNOSPAMrae.netwrote in message
news:eH****************@TK2MSFTNGP02.phx.gbl...
"Willy Denoyette [MVP]" <wi*************@telenet.bewrote in message
news:B5**********************************@microsof t.com...
>MS has told us years ago that JET was going to "maintenance mode," that
is, no new versions would be made available, only SP's,

Yes indeed:
http://msdn2.microsoft.com/en-us/library/ms810810.aspx
>JET is since then no longer distributed with Office and is no longer part
of MDAC either.

Correct. In fact, MDAC doesn't even exist in Vista, having been replaced
with WDAC:
http://msdn2.microsoft.com/en-us/library/ms692897.aspx
>That said, the problem is not whether it can be ported or not, the
problem is that you would not be able to load JET64 into an Office client
like Excel or Access, unless MS ports Office to 64 bit.

Which is bound to happen sooner or later... :-)
Well, the port is not the real issue, Office is a market driven product and
currently there is no market (desktop) for 64 bit Office, so I guess MS will
not release such product any time soon, but more importantly, there is no
real advantage in running a 64 bit version of office over the 32 bit
version, ever felt the need to load >1GB document in Word?, it takes ages,
the 64 bit version would even be slower.

Willy.

May 17 '07 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

13
by: Allison Bailey | last post by:
Hi Folks, I'm a brand new Python programmer, so please point me in the right direction if this is not the best forum for this question.... I would like to open an existing MS Excel spreadsheet...
3
by: davidw | last post by:
Hi, I read some articles about handle Excel in C#, they all need import Excel library. That means you need install Excel on that machine. I am wonderring SQL 2000 handle Excel, you can import...
9
by: hari krishna | last post by:
hi, I want to send the data from dataset information to Excel through ASP.Net. there will be no XL installed on web server. web server is win 2000 server machine. I am using visual basic code in...
2
by: Gaz | last post by:
I am currently developing an ASP.NET 2.0 app part of the app will involve collecting a large amount of data offline and then importing this data into the system My question is what will be more...
0
by: Anish G | last post by:
Hi All, I am getting the below given error while running my application in live server. In my local machine, its working fine. Please help me as it is very urgent for me. Exception from...
0
by: DrewYK | last post by:
I have the project that may never end in front of me. I am creating a routine that will take SpreadSheets from Excel and bring them into Access. I am not using any "DoCmd"s because the goal...
1
by: barry.zhao | last post by:
Hi, I have a python program that constantly updates an excel spreadsheet. I would like to be able to view its updates while using excel to edit other excel files. Below are the test codes I...
4
by: alvinstraight38 | last post by:
Hey guys, I am trying to import data from an Excel spreadsheet into my SQL database. I am running SQL 2005. I following Microsoft's instructions for creating a linked server, and it appeared...
0
by: MBlock316 | last post by:
Hello everyone, I am trying to import a Microsoft Excel 2007 formatted file into my application. I found on another thread in another forum that I needed to install the 2007 Office System Driver:...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.