Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CString für Excel

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
25.07.2005, 13:48 Uhr
~Icho Tolot
Gast


Hallo Forum
Ich habe mir mal das Excel Demoprogramm runtergeladen.
Es funktioniert prima und habe dazu eine Frage.


C++:
void CExcelDlg::OnSchreiben()
{
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
  CDatabase database;
  CString Treiber = "MICROSOFT EXCEL DRIVER (*.XLS)";
  CString ExcelDatei = "c:\\Beispiel4.xls";                
  CString Sql;
    
  TRY
  {
    
    AfxMessageBox("Folgende Tabelle wird angelegt: "+ExcelDatei,MB_OK);  
    Sql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", Treiber,ExcelDatei,ExcelDatei);

    
    if( database.OpenEx(Sql,CDatabase::noOdbcDialog) )
    {
      
      Sql = "CREATE TABLE Beispiel2 (Name TEXT,Wohnort Text,Plz Number)";
      database.ExecuteSQL(Sql);

      
      Sql = "INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES ('Hans Hastig','X-Dorf',26)";
      database.ExecuteSQL(Sql);

      Sql = "INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES ('Rudi Ratlos','Y-Stadt',166)";
      database.ExecuteSQL(Sql);

      Sql = "INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES ('Alois Nichtsnutz','Nirgendwo',222)";
      database.ExecuteSQL(Sql);
    }      

    
    database.Close();
  }
  CATCH_ALL(e)
  {
    TRACE1("Treiber nicht installiert: %s",Treiber);
  }
  END_CATCH_ALL;
  
}



Ich will eine eigene Anwendung programmieren und zwar will ich CStrings in eine Exceldatei schreiben.

Wie muss ich die CStrings übergeben?

hier soll ein CString Test = "Hans Hastig" rein
|
Sql = "INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES ('Hans Hastig','X-Dorf',26)";
database.ExecuteSQL(Sql);

So klappt es nicht
Sql = "INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES (Test,'X-Dorf',26)";
database.ExecuteSQL(Sql);

Danke im voraus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.07.2005, 13:53 Uhr
firefoxxi



Hi,

du musst die Variable auch außerhalb des Strings benutzen sonst denkt der Compiler Test sei eine Zeichenkette. Also in etwa so:

Code:
Sql = "INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES (" + Test +",'X-Dorf',26);

--
Gruß
firefoxxi

http://firebird-browser.de/

Dieser Post wurde am 25.07.2005 um 13:53 Uhr von firefoxxi editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.07.2005, 14:39 Uhr
~Icho Tolot
Gast


Funktioniert leider so auch nicht.
Alles was davor ist,wird übernommen und alles was dahinter ist, nicht.
Compiler meckert nicht.

Gruss Icho Tolot
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.07.2005, 15:01 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du hast die '' für das SQL-String-Value vergessen:


C++:
"INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES ('" + Test +"','X-Dorf',26);"



am sinnvollsten (und übersichtlichsten machste es so:


C++:
CString Name = "Hans Mustermeier", Wohnort = "Musterort";
int Plz = 90454;

CString Sql;
Sql.Format("INSERT INTO Beispiel2 (Name,Wohnort,Plz) VALUES ('%s','%s','%d');", Name, Wohnort, Plz);


--
class God : public ChuckNorris { };

Dieser Post wurde am 25.07.2005 um 19:23 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.07.2005, 18:40 Uhr
~Icho Tolot
Gast


Danke FloSoft
So funktioniert es wie gewünscht.

So wie ich es sehe, ist Excel wie eine Datenbank.
Könnte man die Exceldatei auch über ADO anlegen und bearbeiten,
oder geht das nicht?

Gruss Tolotos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.07.2005, 19:24 Uhr
Pablo
Supertux
(Operator)


und was hat das mit ANSI C/C++ zu tun? BItte im richtigen Forum posten. -->
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.07.2005, 19:54 Uhr
~Icho Tolot
Gast


Hallo Pablo

Wenn Du schon verschieben musst, dann sage Bitte wohin.

Es hat aus meiner Sicht deshalb etwas mit ANSI C/C++ zu tun, weil Ich CStrings
aus einem C++ Programm in einer Exceldatei speichern will.

Gruss Tolotos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.07.2005, 08:55 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


CString ist MFC, darum ist das nun schon das richtige Forum
--
class God : public ChuckNorris { };
 
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: