字段名查询的问题?
小弟现遇到的问题是在web页面上选择了相应的项后从数据库里面查不出数据来。请各位前辈们帮我看看,谢谢先!
小弟先在BCB6中新建了一个CGI应用程序。
在webmodule上加了TQuery和TDataSetTableProducer。
TQuery的设置:
DatabaseName: BCDEMOS
SQL: select * from employee
Active=true
TDataSetTableProducer的设置:
DataSet=Query1
在Columns中能预览到数据。
然后我在Object TreeView里面Add All Fields。
然后在webmodule增加ActionItem,并且把Default设为true,Enabled设为true。
然后在events里面双击OnAction找到函数体。
下面是OnAction的代码:
AnsiString temp1, temp2;
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from employee");
temp1 = Request->QueryFields->Values["fd"];
temp2 = "'" + Request->QueryFields->Values["vl'] + "'";
Query1->SQL->Add(" where " + temp1 + " like " + temp2);
Query1->SQL->Add(" order by Salary ");
Query1->PrePare();
Query1->Open();
if (Query1->RecordCount == 0) {
DataSetTableProducer1->Footer->Add("<p>对不起,找不到<p>");
DataSetTableProducer1->Footer->Add("请退回去,重新查询<p>");
}
DataSetTableProducer1->MaxRows = Query1->RecordCount;
Response->Content = DataSetTableProducer1->Content();
下面是网页的代码:
<html>
<head>
<title>GET</title>
</head>
<body>
<form method="get" action="/cgi-bin/webget">
查询列表框选择:<select name="fd">
<option value="FirstName">中文姓名
<option value="LastName">英文姓名
<option value="PhoneExt">电话
<option value="Salary">工资
</select>
<p>
查询值:<input name="vl" value="" maxlength="25" size=25>(可查询相似值)
<hr>
<input type="submit" value="开始查询"><p>
</form>
</body>
</html>
[解决办法]
自已解决了,是sql语句中有空格造成的,下面这句
Query1->SQL->Add(" where "+temp1+" like "+temp2);