Frage

Wir wurden mit Stringauswahlabfragen in C ++ vorzubereiten. Aber wir waren dringend empfohlen QUERY Parameter zu verwenden DB2-SQL-Anfragen stellen Verwendung von string zu vermeiden. Kann jemand teilen, was durch Abfrageparameter in C ++ genau gemeint? Auch einige praktische Beispielcode-Schnipsel teilen.

Schätzen Sie die Hilfe im Voraus.

Edit: Es ist string und nicht Strstream

.

Danke, Mathew Liju

War es hilfreich?

Lösung

Ich vermute, dass diese Anfragen in der Regel parametrieren bezieht, anstatt die Abfrage in einem String konstruieren, liefern sie übergeben SQL-Variablen (oder Parameter) und dann separat diese Variablen. Diese sind viel besser für den Umgang mit SQL-Injection-Attacken. Zur Veranschaulichung mit einem Beispiel:

"SELECT * FROM Customers WHERE CustomerId = " + _customerId; 

ist schlecht, während dies:

"SELECT * FROM Customers where CustomerId = @CustomerId" 

ist gut. Der Haken ist, dass Sie die Parameter für das Abfrage-Objekt hinzuzufügen (ich weiß nicht, wie dies in C ++ durchgeführt wird.

Verweise auf andere Fragen:

Wild Wild Web:

Andere Tipps

SQL-Abfrage in parametrisierte Abfrageformular ist sicher als String-Format SQL-Injection-Angriff zu vermeiden. Beispiel für parametrisierte Abfrage

StringBuilder sqlstr = new StringBuilder();  
cmd.Parameters.AddWithValue("@companyid", CompanyID);  
sqlstr.Append("SELECT evtconfigurationId, companyid, 
  configname, configimage FROM SCEVT_CONFIGURATIONS ");
sqlstr.Append("WHERE companyid=@companyid ");

Beispiel von Query-String-Format

StringBuilder sqlstr = new StringBuilder();   
sqlstr.Append("SELECT evtconfigurationId, companyid, configname, 
   configimage FROM SCEVT_CONFIGURATIONS ");
sqlstr.Append("WHERE companyid" +  CompanyID);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top