Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Cstring mit '.' werden als ',' in Excelfile geschrieben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.04.2003, 14:09 Uhr
~spunky2
Gast


Hallo,

Wenn ich einen CString mit .(Punkt), also zb: CString="123.88" über SQL in mein Exelfile einlade macht er automatisch aus dem .(Punkt) ein ,(Komma)
Meine Trennzeichen in Excel sind auf Punkt gestellt.
Eigentlich müßte er doch den CString so nehmen, wie er ist und nicht umwandeln, oder?

So sieht mein Quellcode aus:

Sql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;WRITE_DB=\"%s\";DBQ=%s", Treiber,linienfile,linienfile);

if ( database.OpenEx(Sql,CDatabase::noOdbcDialog) )
{

Sql.Format("INSERT INTO lkoor (ID,L_A,B_A,A_A,H_A,L_E,B_E,A_E,H_E) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)", m_ID, m_L_A,m_B_A,m_A_A,m_H_A,m_L_E,m_B_E,m_A_E,m_H_E);
database.ExecuteSQL(Sql);
}

database.Close();

Grüsse
spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.04.2003, 23:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Das liegt daran, das Excel bei kommazahlen nicht punkte sondern halt kommas als Trennzeichen verwendet.
Wenn du trotzdem willst, dass er dir den Zahlwert mit einem Punkt schreiben soll, geht das nur, wenn Excel ihn als String interpretieren darf. (was auch immer das für Probleme das in Excel mit sich bringt)

Willst du also, dass er dir den Wert in Excel als String schreibt (und damit Punkte verwendet, wenn du welche angibst) ,musst du schon bei der Deklaration des Tables, das Feld, in den die werte geschrieben werden sollen, als "Text" und nicht als "Number" angeben.

Also in deinem Fall:

C++:
Sql.Format("CREATE TABLE lkoor(......, kommazahl_mit_kommas TEXT, ....)");


Die alleinige Deklaration als Textfeld reicht allerdings nicht aus, er ist dann immer noch so schlau und macht da eine Kommazahl draus wenn du ihm den Wert nicht in ' '(ich meine die einfachen Hochkommata, wie auch immer die im Fachjargon heissen) übergibst.

also so verwenden:

C++:
Sql.Format("INSERT INTO Liste VALUES(....,'3.14159265',.....)");




Dann sollte in deiner Exceltabelle der Punkt erhalten bleiben. (Bei mit funktioniert das jedenfalls so)
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 24.04.2003 um 23:02 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.04.2003, 15:00 Uhr
~spunky2
Gast


Danke, es funktioniert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: