SQL Export nach Excel schlägt fehl
-
Hallo zusammen,
ich hab den Code von Happy aus der FAQ genommen und bleibe an einer Stelle hängen die mir nicht logisch ist. Originalbeitrag ist hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39258.html
Folgender Codeabschnitt macht mir kopfzerrechen:
try { Variant WorkBooks = Excel.OlePropertyGet("WorkBooks"); WorkBooks.OleFunction("Add"); Variant ActiveWorkBook = Excel.OlePropertyGet("ActiveWorkbook"); Variant WorkSheets = Excel.OlePropertyGet("Worksheets"); Variant WorkSheet = WorkSheets.OlePropertyGet("Item", 1); WorkSheet.OleFunction("Activate"); pQuery->First(); for (int iRow=0; iRow < pQuery->RecordCount; iRow++) { for (int iCol = 0; iCol < pQuery->Fields->Count; iCol++) { Variant Range = WorkSheet.OlePropertyGet("Cells", iRow+1, iCol+1); // 1.Zeile / 1.Spalte Range.OlePropertySet("Value", pQuery->Fields->Fields[iCol]->AsString); } pQuery->Next(); } ActiveWorkBook.OleFunction("SaveAs", "D:\\Temp\\QueryResult.xlsx"); } catch(...)
Die Zeile an der ich hängen bleibe ist:
Range.OlePropertySet("Value", pQuery->Fields->Fields[iCol]->AsString);
beim debuggen kommt die Meldung: "Falscher Variablentyp"
ich hab mir pQuery->Fields->Fields[iCol]->AsString in einem Label anzeigen lassen und die Werte waren ok. Also auslesen tut er korrekt. Da er falschen Variablentyp anmeckert hab ich mal AsString weg gelassen. Und siehe da, export wird gestartet. Beim öffnen der Excel stelle ich allerdings fest, das in allen Feldern "WAHR" steht. Warum kommt bool dabei raus???
Gebe ichRange.OlePropertySet("Value", iCol);
ein werden alle Felder durchnummeriert, was so ja auch ok ist.
Hat einer eine Idee was hier falsch läuft?
Anzumerken ist das ich Excel 2007 und Borland 2009 installiert habe.
-
die Suchfunktion liefert z.B.:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-255852-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-%2Aexcel+olepropertyget%2A.html
oder
http://www.c-plusplus.net/forum/viewtopic-var-t-is-188916-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-%2Aexcel+olepropertyget%2A.html
-
Linnea,
herzlichen Dank
Range.OlePropertySet("Value", pQuery->Fields->Fields[iCol]->AsString.c_str());
war die Lösung.
hab hier zwar einige Zeit gesucht, aber nichts gefunden. Nächstemal die Suche ein wenig anders gestalten