006
21.12.2005, 18:13 Uhr
~Icho Tolot
Gast
|
Hallo, Habe CREATE TABLE Beispiel3 zusätzlich definiert.
C++: |
void CAuswertung::ExcelDateiSchreiben(CString DateiPfad) { CDatabase database; CString Treiber = "MICROSOFT EXCEL DRIVER (*.XLS)"; CString Sql; CString FrBoTitel; CString Wert1,Wert2; CString Dummy = ""; CString Fragen = "Frage1"; int iWert1 = 1,iWert2 = 2; FrBoTitel = "Titel"; TRY { Sql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", Treiber,DateiPfad,DateiPfad); if( database.OpenEx(Sql,CDatabase::noOdbcDialog) ) {
Sql = "CREATE TABLE Beispiel2 (Fragebogentitel Text,Fragen Text,Wert1 Text,Wert2 Text)"; database.ExecuteSQL(Sql); Sql.Format("INSERT INTO Beispiel2 (Fragebogentitel,Fragen,Wert1,Wert2) VALUES ('%s','%s','%s','%s');","" ,Dummy , Dummy, Dummy ); database.ExecuteSQL(Sql);
Sql.Format("INSERT INTO Beispiel2 (Fragebogentitel,Fragen,Wert1,Wert2) VALUES ('%s','%s','%s','%s');", FrBoTitel, "", "","" ); database.ExecuteSQL(Sql); // Daten sind in Excel angekommen //ab hier soll in Number umgestellt werden //Programm läuft so korrekt weiter, aber es kommt in Excel nichts an Sql = "CREATE TABLE Beispiel3 (Fragebogentitel Text,Fragen Text,IWert1 Number,IWert2 Number)"; database.ExecuteSQL(Sql); Sql.Format("INSERT INTO Beispiel3 (Fragebogentitel,Fragen,Wert1,Wert2) VALUES ('%s','%s','%d','%d');", "", Fragen, iWert1,iWert2); database.ExecuteSQL(Sql);
} database.Close(); } CATCH_ALL(e) { TRACE1("Treiber nicht installiert: %s",Treiber); } END_CATCH_ALL; }
|
Sieht so aus als wenn die Spalten nur einmal definiert werden können, so wie in einer Datenbanktabelle. Da müssen die Spalten auch vordefiniert werden.
Wenn ich den Code für CREATE TABLE Beispiel2 auskommentiere, dann wird der untere Teil in Excel gespeichert.
Gruss Tolotos |