我在VC程序中用了这个具有谓词的SQL语句(IN)
sql="select * from T_Resident"
+"where strNameNo='"+m_RoomNo+"' and fidUnit in"
+"(select id from T_Building where strName='"
+str+"')";
编译时出现提示:cannot add two pointers
什么地方错了.
sql="select * from T_Resident"
+"where strNameNo='"+m_RoomNo+"' and fidUnit in"
+"(select id from T_Building where strName='"
+str+"')";
编译时出现提示:cannot add two pointers
什么地方错了.
char sql[255];
char data[50];
strcpy(sql, "select * from T_Resident");
strcat(sql, "where strNameNo='");
sprintf(data, "%d", m_RoomNo );//假定m_RoomNo 为整行
strcat(sql, data);
strcat(sql, "' and fidUnit in");
strcat(sql, "(select id from T_Building where strName='");
strcat(sql, str);//假定str为字符串类型
strcat(sql, "')");
cannot add two pointers是不能将两个指针相加的意思,字符串实际是字符指针类型的.
+"where strNameNo='"+m_RoomNo+"' and fidUnit in"
+"(select id from T_Building where strName='"
+str+"')";
改成sql="select * from T_Resident"
"where strNameNo='"+m_RoomNo+"' and fidUnit in"
"(select id from T_Building where strName='"
+str+"')";就两个小加号的问题,何必这么复杂呢。
进行格式化处理
"where strNameNo='"+m_RoomNo+"' and fidUnit in"\
"(select id from T_Building where strName='"\
+str+"')";
+"where strNameNo='"+m_RoomNo+"' and fidUnit in"
+"(select id from T_Building where strName='"
+str+"')";
给你一个例子看能用否?select * from Dic_Subject where Subject_NO='"+m_subjectNO+"' or Subject_Name='"+m_subjectName+"'
sql+="select * from T_Resident"
+"where strNameNo='"+m_RoomNo+"' and fidUnit in"
+"(select id from T_Building where strName='"
+str+"')";
sql.Format( "%s%s%d%s%s%s%s",
"select * from T_Resident",
"where strNameNo='",
m_RoomNo,
"' and fidUnit in",
"(select id from T_Building where strName='",
str,
"')" ) ;