Formatierten String in Char Array 'reinschreiben
-
Ginge es einen String in ein Char[100] beispielsweise zu schreiben?
Ich glaube nicht.
Bsp.: im Programm
strBla.Format("select ...%d",i);
char[100]=strBla;
Wenn doch. Hilfee!
-
CString strBla; strBla.Format("select ...%d",i); char szBla[100]; strcpy(szBlah,strBla);
-
Ganz zu schweigen davon, dass man sowas nicht macht... zumindest nicht mit "SELECT"... dazu sollte man immer parametrisierte Abfragen verwenden (also wo das variable Teil separat übergeben wird).
Also: "SELECT * FROM a WHERE i = ?" und dann als ersten Parameter das "i" übergeben.Ok, bei einer Zahl mag das noch akzeptablen sein, bei einem String aber 100%ig inakzeptabel.
-
Na ja ganz so eng sehe ich das nicht. Viele Statements muss man direkt aufbauen und kan schwer (oder eben nur umständlich) parametrisierte Abfragen verwenden.
Wichtig ist hier das korrekt escaped wird.Wenn man diese Funktion (oder was ähnliches) für das Quoten, des String verwendet ist SQL Injection nicht mehr möglich:
CString QuoteSQLString(PCTSTR pszStr) { CString str(pszStr); str.Replace(_T("'"),_T("''")); return _T('\'')+str+_T('\''); }