用TADOQuery进行更新出现的奇怪问题!-在线等待
StrSaveSql = "UPDATE Article SET Title='测试'AND Address='sdf'AND Text='dsfsdaf'AND Remark='dsfasdew' WHERE(ID=7)";
Que1->Close();
Que1->SQL->Clear();
Que1->SQL->Text = StrSaveSql;
Que1->ExecSQL();
用Access打开后却发现更新的结果是:
Title=0
Address为空
Text为空
Remark为空
这是怎么回事?
还有就是标准的SQL语句和BCB中的不一样吗?
如:
SQL:UPDATE table SET a='sdf',b='sdf',c=23 WHERE ID=2
BCB:UPDATE table SET a='sdf' AND b='sdf' AND c=23 WHERE ID=2
问题点数:20、回复次数:5Top
1 楼Greenfire(坚持到底,永不放弃)回复于 2006-03-12 17:00:26 得分 0
只是给Que1进行连接:Que1->Connection = Conn;
还需怎样的相关设置?Top
2 楼stevenjscn(小胖)回复于 2006-03-31 00:59:18 得分 0
你的TITLE设置为NUMBER,而你UPDATE时TITLE=‘测试’是字符型,所以出错Top
3 楼lyn10155(娃娃)回复于 2006-03-31 09:22:59 得分 10
您的SQL语句应当这样写
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("update Article set \
Title='测试',Address='sdf',Text='dsfsdaf',\
Remark='dsfasdew' where ID=7");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from Article");
ADOQuery1->Open();
如果您的ID为数字型则为ID=7
如果您的ID为字符型则为ID='7
'
Top
4 楼ssyqcwj(云中漫步)回复于 2006-03-31 10:29:21 得分 0
楼主的SET子句很新奇啊,不知道那种数据库支持啊!Top
5 楼lvjack(追逐梦想)回复于 2006-04-02 13:29:08 得分 10
“这是怎么回事?”
你and来and去搞成逻辑值了,所以title=逻辑运算的结果:0
这样
StrSaveSql= "UPDATE Article SET Title='测试', Address='sdf',Text='dsfsdaf',Remark='dsfasdew' WHERE ID=7";
Que1->Close();
Que1->SQL->Text= StrSaveSql;
Que1->ExecSQL();
Top




