String teilen
-
hi
kann mir jemand sagen wie ich diesen String auf mehrer Zeilen aufteilen kann
also das:
strVorne = "INSERT INTO Tabellenname (Spaltenname1, Spaltenname2"; trHinten = " VALUES ('" + sSpaltenname1 + "','" + sSpaltenname2 + "'"; strVorne += ")"; strHinten += ")";
so klappt das ja nicht:
strVorne = "INSERT INTO Tabellenname ("Spaltenname1", "Spaltenname2""; trHinten = " VALUES ("'" + sSpaltenname1 + "'", "'" + sSpaltenname2 + "'"";
wie macht man das denn richtig?
besten dank
-
1.)
Du musst den String mit " abschließen und dann einfach addieren.strText = "Teil1" + "Teil2";
oder
Wenn ein Befehl in der nächste Zeile weitergeht, beendet man die erste nicht mit einem ; sondern mit einem \.CString str = "Teil1 \ Teil2";
2.) Denk bitte daran, dass du IN der Zeichenkette statt " \" und statt ' \' schreiben musst.
-
klappt nur nicht der mist....ich versuchs nochmal
-
Nich meckern - herzeigen!
Also, das was ich geschrieben hatte, hat er kompiliert.
-
Liegt wohl daran:
[cpp]strVorne = "INSERT INTO Tabellenname ("Spaltenname1", // Zeile 1
"Spaltenname2""; // Zeile 2
trHinten = " VALUES ("'" + sSpaltenname1 + "'", // Zeile 3
"'" + sSpaltenname2 + "'""; // Zeile 4/*
Zeile 1:
- die Anführungsstriche vor Spaltenname1 müssen weg
- heisst die Spalte in der Datenbank wirklich Spaltenname1 ?
- **hinter Spaltenname1 und vor den Anführungszeichen fehlt ein Komma
**- das Komma am Zeilenende muss weg
Zeile 2:
- einmal Anführungszeichen nach Spaltenname2 reicht, also einmal wegmachen
- heisst die Spalte in der Datenbank wirklich Spaltenname2 ?
Zeile 3:
- Anführungszeichen vor dem ersten Apostroph weg machen
- Komma zwischen dem letzten Apostroph und den folgenden Anführungszeichen setzen
- Komma am Ende der Zeile weg machen
Zeile 4:
- einmal Anführungszeichen vor dem Semikolon reicht, also einmal wegmachen
*/[/cpp][/edit]
[edit]
-
ja dein Bsp hat funktioniert
(das hät ich auch so gemachtCString str = "Teil1 \ Teil2";
aber das geth hier leider nicht:
strVorne = "INSERT INTO Tabellenname (Spaltenname1 \ Spaltenname2"; strHinten = " VALUES ('" + sSpaltenname1 + "','" + sSpaltenname2 + "'"; strVorne += ")"; strHinten += ")";
-
werds gleich ausprobieren isabeau
ne Spaltename1 hab ich nur so hingeschrieben(ich hab deins noch NICHT ausprobiert isabeau) schau mal auf die Zeit
-
naja so ...hab alles gemacht wie beschrieben *hoff*
CString sSpaltenname1; CString sSpaltenname2; CString sSpaltenname3; strVorne = "INSERT INTO Versuchsdaten (Spaltenname1," "Spaltenname2," "Spaltenname3"; strHinten = " VALUES ('" + sSpaltenname1 + "'," '" + sSpaltenname2 + "'," '" + sSpaltenname3 + "'"; strVorne += ")"; strHinten += ")";
Fehler:
error C2015: too many characters in constant //: '" + sSpaltenname2 + "',"error C2143: syntax error : missing ';' before 'constant' //: '" +
sSpaltenname2 + "',"
error C2001: newline in constant //: '" + sSpaltenname2 + "',"
error C2015: too many characters in constant //'" + sSpaltenname3 + "'";
error C2143: syntax error : missing ';' before 'constant' //'" + sSpaltenname3 + "'";error C2001: newline in constant //'" + sSpaltenname3 + "'";
error C2143: syntax error : missing ';' before 'string' //'" + sSpaltenname3 + "'";error C2146: syntax error : missing ';' before identifier 'strVorne' // strVorne += ")";
-
strHinten = " VALUES ('" + sSpaltenname1 + "'," '" + sSpaltenname2 + "'," // <- am Anfang fehlen Anführungsstriche '" + sSpaltenname3 + "'"; // hier auch
-
Hab ich einen Backslashfilter in der Leitung?
Ach ne, du verwendest das gemischt... das geht schief.CString sSpaltenname1; CString sSpaltenname2; CString sSpaltenname3; strVorne = "INSERT INTO Versuchsdaten (Spaltenname1, \ Spaltenname2, \ Spaltenname3";
Und mach bitte "\'" und nicht "'";
-
danke isabeau jetzt passts,
vielen dank für eure Mühe und Hilfeendlich.......
PS: estartu_de: okay, hab nicht genau gewusst was du damit meintest:
Denk bitte daran, dass du IN der Zeichenkette statt " \" und statt ' \' schreiben musst.