帮我看看这个SQL句子哪里出问题了。
sqlStr = "INSERT INTO 客户资料 (姓名,网名,手机,小灵通,座机,QQ,EMAIL,BLOG) VALEUS ( '& "+Editxm-> Text+ "& ', '& "+Editwm-> Text+ "& ', '& "+Editsj-> Text+ "& ', '& "+Editxlt-> Text+ "& ', '& "+Editgh-> Text+ "& ', '& "+Editqq-> Text+ "& ', '& "+Editemail-> Text+ "& ', '& "+Edithome-> Text+ "& ') ";
VALEUS ( ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ') "
DM-> ADOQtxb-> Close();
DM-> ADOQtxb-> SQL-> Clear();
DM-> ADOQtxb-> SQL-> Add(sqlStr);
DM-> ADOQtxb-> ExecSQL();
[解决办法]
这样写好乱哦。用sprintf格式化多好:
sqlStr = String().sprintf(
"INSERT INTO 客户资料 (姓名,网名,手机,小灵通,座机,QQ,EMAIL,BLOG) "
"VALEUS ( '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ') ",
Editxm-> Text, Editwm-> Text, Editsj-> Text, Editxlt-> Text,
Editgh-> Text, Editqq-> Text, Editemail-> Text, Edithome-> Text);
[解决办法]
你的关键字错误: VALEUS 应该是VALUES
[解决办法]
真是楼上说的那个原因吗? ^o^
[解决办法]
这样写好乱哦。用sprintf格式化多好:
sqlStr = String().sprintf(
"INSERT INTO 客户资料 (姓名,网名,手机,小灵通,座机,QQ,EMAIL,BLOG) "
"VALEUS ( '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ') ",
Editxm-> Text, Editwm-> Text, Editsj-> Text, Editxlt-> Text,
Editgh-> Text, Editqq-> Text, Editemail-> Text, Edithome-> Text);
妖老笔误,就为:
这样写好乱哦。用sprintf格式化多好:
sqlStr = String().sprintf(
"INSERT INTO 客户资料 (姓名,网名,手机,小灵通,座机,QQ,EMAIL,BLOG) "
"VALUES ( '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ') ",
Editxm-> Text, Editwm-> Text, Editsj-> Text, Editxlt-> Text,
Editgh-> Text, Editqq-> Text, Editemail-> Text, Edithome-> Text);
但我更喜欢如此:
sqlStr.sprintf(
"INSERT INTO 客户资料 (姓名,网名,手机,小灵通,座机,QQ,EMAIL,BLOG) "
"VALUES ( '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ', '%s ') ",
Editxm-> Text.c_str(), Editwm-> Text.c_str(), Editsj-> Text.c_str(), Editxlt-> Text.c_str(),
Editgh-> Text.c_str(), Editqq-> Text.c_str(), Editemail-> Text.c_str(), Edithome-> Text.c_str());
加上.c_str()是有用处的,我在BCB+MYSQL下如果不加这个的话,当AnsiString类型的变量为空时字段值不是被置空,而是 "(null) ",试想看,如果你希望如果传进去的字符串是空串时字段值被置空,那么它偏偏被置为 "(null) ",是一件多么烦人的事情
另外:
答者笔误是常有的,但看者也不应该直接copy人家的就不分三七二十一直接用呀,这样不消化
对你来说真是无用