0

首先我有一个 CString(MFC)

CString csSQL

格式化sql字符串时,例如

csSQL.Format( szFormat, szTableName, szColumn, szValue, intValue )

我需要处理 szValue 中的特殊字符,所以我需要编写一个新的 MySQLString 类

mySQLcs.FormatSQL( szFormat, szTableName, szColumn, szValue, intValue )

它具有功能

csSQL.Format( szFormat, szTableName, szColumn, HandleSpecialChar(szValue), intValue )

但是因为参数格式函数accept不固定。我觉得很难。有什么解决办法吗?

4

1 回答 1

1

向 CString 类添加处理程序。

你写了一个(新的)函数

CString FormatSQLString(CString const& format, CString const& tableName, CString const& columnName, CString const& value) {
  CString csSQL;
  return csSQL.Format(format, tableName, columnName, HandleSpecialChar(value));
}

并且您将该函数进一步包装(例如CString GetUpdateStmt(tableName, columnName, value)),这样您就不必在整个代码中散布格式字符串。

当您编写代码以结构化方式使用 SQL 语句的输入时,就像我建议的函数集合一样,通过使用或创建SQLQueryStringBuilder(组成名称)类,那么您将不会有一个问题是必须将一些不属于那里的字符串格式塞入其中。

于 2013-07-22T09:01:06.517 回答