CString str1,str2,str3;
str1="TexAverageLum";
str2.Format("%f",minTexAverageLum);//minTexAverageLum为folat型变量,已赋值。
str3.Format("%f",minTexAverageLum+TexAverageLum);//minTexAverageLum、TexAverageLum都为folat型变量,已赋值。
CADOConn ado;
ado.OnInitADOConn();
_bstr_t vSQL;
vSQL="SELECT * FROM ManyRuless";//数据库表名
_RecordsetPtr m_pRecordset;
m_pRecordset=ado.GetRecordSet(vSQL);
vSQL="INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst)VALUES("+str1+","+str2+","+str3+")";
ado.ExecuteSQL(vSQL);
ado.ExitConnect();//断开数据库连接
编译可以通过,运行时出现错误。提示如下:在此上下文不允许使用‘TexAverageLum’。此处只允许使用常量、表达式或变量。不允许使用列名。
我用的是VS.NET2008,数据库是SQL2000.
str1="TexAverageLum";
str2.Format("%f",minTexAverageLum);//minTexAverageLum为folat型变量,已赋值。
str3.Format("%f",minTexAverageLum+TexAverageLum);//minTexAverageLum、TexAverageLum都为folat型变量,已赋值。
CADOConn ado;
ado.OnInitADOConn();
_bstr_t vSQL;
vSQL="SELECT * FROM ManyRuless";//数据库表名
_RecordsetPtr m_pRecordset;
m_pRecordset=ado.GetRecordSet(vSQL);
vSQL="INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst)VALUES("+str1+","+str2+","+str3+")";
ado.ExecuteSQL(vSQL);
ado.ExitConnect();//断开数据库连接
编译可以通过,运行时出现错误。提示如下:在此上下文不允许使用‘TexAverageLum’。此处只允许使用常量、表达式或变量。不允许使用列名。
我用的是VS.NET2008,数据库是SQL2000.
《在VC++中构造SQL语句》
http://blog.csdn.net/zaodt/archive/2008/06/08/2525009.aspx
VALUES使用错误,把sql语句用format连接起来
vSQL="INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst)VALUES("+str1+","+str2+","+str3+")";
之前加上
str1.Format( "SELECT au_name FROM ManyRuless WHERE state = '%s'" , str1 );
还是直接用str1.Format( "SELECT au_name FROM ManyRuless WHERE state = '%s'" , str1 );这一句就行。
谢谢了
你这里使用这个方法得到你所期望的SQL语句。
str.Format("INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst)VALUES(%s, %s, %s)", str1, str2, str3);
我初用SQL请多关照。