Pergunta

Estávamos usando stringstream para preparar consultas seleção em C ++. Mas nós foram fortemente aconselhados a usar parâmetros de consulta para enviar consultas SQL do DB2 para evitar o uso de stringstream. Alguém pode compartilhar o que exatamente quer dizer com parâmetro de consulta em C ++? Além disso, compartilhar alguns trechos de código de amostra prático.

Agradecemos a ajuda de antecedência.

Edit:. É stringstream e não strstream

Obrigado, Mathew Liju

Foi útil?

Solução

Eu suspeito que isso se refere a consultas parametrizadas em geral, ao invés de construir a consulta em uma corda, eles fornecem variáveis ??SQL (ou parâmetros) e depois passar essas variáveis ??separadamente. Estes são muito melhor para lidar com ataques de injeção SQL. Para ilustrar com um exemplo:

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

é ruim, enquanto isso:

"SELECT * FROM Customers where CustomerId = @CustomerId" 

é bom. O problema é que você tem que adicionar os parâmetros para o objeto de consulta (eu não sei como isso é feito em C ++.

As referências a outras perguntas:

Wild Wild Web:

Outras dicas

Sql consulta no parametrizado consulta forma é seguro de formato de cadeia para evitar ataque de injeção SQL. Exemplo de parametrizado consulta

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

Exemplo de formato de string de consulta

StringBuilder sqlstr = new StringBuilder();   
sqlstr.Append("SELECT evtconfigurationId, companyid, configname, 
   configimage FROM SCEVT_CONFIGURATIONS ");
sqlstr.Append("WHERE companyid" +  CompanyID);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top