OleDB -jet provider probléma (mixed columns)

OleDB -jet provider probléma (mixed columns)
2008-07-01T11:22:03+02:00
2008-07-14T14:17:19+02:00
2022-11-10T06:40:39+01:00
MathiasF1
Szervusztok!


Van egy Excel táblám, és én ehhez hozzáférek OleDB használatával.

pl:

oszlopnév: Oszlop
Sor1 11543
Sor2 56378
Sor3 szöveg
Sor4 02348
Sor5 adat
Sor6 2578


Így álltam neki:

String^ sConnectionString =

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=""Excel 8.0;""";


OleDbConnection^ objConn = gcnew OleDbConnection(sConnectionString);

objConn->Open();



Eddig jól működik az OleDB.

Viszont én csak a számokat kapom meg az oszlopból és így fog kinézni:

11543
56378
02348
2578



Ezzel semmi gondom nincs eddig, de én szeretném mindkét adat típust egyszerre használni, anélkül, hogy módosítanom kellene a cellákat az Excel-ben.

Ez a rendszerem van: WinXP prof, Office2003prof, Visual Studio 2005-ot használok

/*-------------------------------------------------------------------------------------------------------------------------------------------*/

Tehát én azt szeretném ha így nézne ki a visszakapott listám:

11543
56378
szöveg
02348
adat
2578



Először végig olvastam pár forumot, de eddig nem találtam megoldást.
Ezeket a linkeket olvasgattam és jutottam oda, hogy valakitől megkérdezem mit tehetnék ez ügyben:
Először ezzel próbálkoztam, de nem láttam igazán különbésget a kódjaink közt:

http://blog.lab49.com/archives/196


PRB: Excel Values Returned as NULL Using DAO OpenRecordset
Microsoft ügyfélszolgálata
Microsoft ügyfélszolgálata
http://www.connectionstrings.com/?carrier=excel


Így álltam neki:

String^ sConnectionString =

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"""";


//"Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"""

// Ha @-ot használok akkor 0x40 -es hiba kóddal tér vissza. unknown character lefuttatni sem tudom


OleDbConnection^ objConn = gcnew OleDbConnection(sConnectionString);

objConn->Open();


// már itt problémába ütközök a megnyitással, rögtön utána expection-nt dob nekem mégpedig
ezzel az üzenettel: Telepíthető ISAM nem található (Csak akkor ha a kikommentezett részt használom)





Sajnos nekem nem működik sehogy sem.

Próbáltam a registy-ben az ImportMixedType értékét mind "Text" -ként illetve Majority Type-ként is, de nem működött egyik verzió sem, most "Text"-re hiszen a leírások szerint ebben kell.

A TypeGuessRow -ot 0-ra állítottam, hogy ne 8 karakter olvasson fel hanem 16384-et.

Viszont ezzel a hibaüzenettel továbbra sem tudok mit kezdeni: Telepíthető ISAM nem található.

Megnéztem a regisrty-ben a bejegyzéseket, és minden ugyanaz volt mint a microsoft oldalán leírt példákban.

Microsoft ügyfélszolgálata

Természetesen a fenti állapotban működik, ha nem teszem mögé ezeket a stringnek: HDR=Yes;IMEX=1;

A HDR nem is kéne, mert ha jól értelmeztem az alapértélmezetten így veszi. Viszont fontos lenne, hogy tudjam mindegyik adatot felolvasni az oszlopból tekintet nélkül a típusára.

Sajnos az alábbiak nem tudták orvosolni a problémám, ha az "8.0;" -> után illesztettem, hogy IMEX vagy HDR a program minden egyes Excel fájl megnyitásakor ellszállt.

Az lenne a kérdésem, hogy az Open() után miért hal meg a program illetve miért nem jó a string?

Kérem ha valakinek van valami ötlete írja meg akármilyennek is örülnék.

Ez a rendszerem van: WinXP prof, Office2003prof, Visual Studio 2005-ot használok

Lassan kifogyok minden öteltből, és a leírások alapján ha jól értelmeztem őket így működnie kellene, csak nem tudom nálam miért nem megy.


A válaszokat előre is köszönöm.



By:MathiasF1
Mutasd a teljes hozzászólást!
String^ sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ filename +";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";

És működik! Egy kolléga találta meg egy eldugott weboldalon, de azért ide is beírom, hogy más talán hamar megtalálja, mert szenvedtünk vele eleget.

By:MathiasF1
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd