首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

帮小弟我看看这个SQL句子哪里出有关问题了

2012-03-12 
帮我看看这个SQL句子哪里出问题了。sqlStrINSERTINTO客户资料(姓名,网名,手机,小灵通,座机,QQ,EMAIL,BLOG

帮我看看这个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人家的就不分三七二十一直接用呀,这样不消化
对你来说真是无用

热点排行