SELECT *
from tableA
WHERE ID='''+edit1.Text+'''
ID为整型, edit1为广本编辑筐,
提示Varchar 值''+edit1.Text+''转换成数据类型为int的列时发生语法错误,不知道怎么转换
from tableA
WHERE ID='''+edit1.Text+'''
ID为整型, edit1为广本编辑筐,
提示Varchar 值''+edit1.Text+''转换成数据类型为int的列时发生语法错误,不知道怎么转换
解决方案 »
- 关于使用c++中的函数时候出现的DWORD问题
- 关于按回车键后,打开某窗体的难题?(高手帮忙)
- 如何缩放 f1book 的打印预览?万分感谢
- 熟悉ado的朋友帮忙了
- 有用过MSCOMM和SPCOMM的高手,怎么可让SPCOMM发送数字类型的数据,而不是字符Pchar类型,就像MSCOMM可按字符串的形式和字节数组中的二进制数
- 新手花200分求答案,希望高手帮忙看看
- 有没有办法让荧屏内容锁定一段时间再刷新?
- 用CORBA时,找不到OrbPas.dcu的文件
- DELPHI和C++数据类型转换
- 谁提供一个delphi 汉字转十六进制的函数,可以互转的,贴出c代码
- showmessage('在此一问,100分红包..(解答后,送20个QB.留下QQ即可)');
- 怎么在RAVE中显示一张字段内容为 \photo\01.jpg的程序的相对路径的图片?
qdoquery1.sql.text :='SELECT * from tableA WHERE ID=:ID';
adoquery1.parameters.parambyname('ID').value := edit1.Text;利用绑定参数的方式好处,1不必考虑引号的 2.可读性好 3.数据库解析要快
qdoquery1.sql.text :='SELECT * from tableA WHERE ID=:ID'; adoquery1.parameters.parambyname('ID').value := edit1.Text; 看不懂,能不能解释一下
然后利用这个adoquery1.parameters.parambyname('ID').value := edit1.Text;给这个变量赋值
这样,:ID的值就成为edit1.text的内容了.
这样写和你 sql.text := 'SELECT * from tableA WHERE ID= ' + edit1.Text这样写查询结果是一样的.
但是数据库中解析的方式却不一样.
比如你执行多次相同的查询,用绑定参数,它只会解析一次(它会认为是同一个SQL)
而用 ID='+edit1.text;它会认为是不同的SQL,每次都要解析.
提示:不正常定义参数对象,提供了不一致或不远整的信息
SQL := 'SELECT * from tableA WHERE ID='+IntToStr(StrToIntDef(edit1.Text,0));
FROM ICBomChild join t_ICItem t002 on t002.FItemID = ICBomChild.FItemID AND t002.FItemID <>0 left join t_AuxItem t007 on t007.FItemID = ICBomChild.FAuxPropID AND t007.FItemID <>0 left join t_MeasureUnit t008 on t008.FItemID = ICBomChild.FUnitID AND t008.FItemID <>0 left join t_MeasureUnit t009 on t009.FItemID=t002.FUnitID AND t009.FItemID<>0 left join t_SubMessage t010 on t010.FInterID = ICBomChild.FMaterielType AND t010.FInterID <>0 left join t_SubMessage t011 on t011.FInterID = ICBomChild.FMarshalType AND t011.FInterID <>0 left join t_SubMessage t022 on t022.FInterID = ICBomChild.FOperID AND t022.FInterID <>0 left join t_SubMessage t025 on t025.FInterID = ICBomChild.FBackFlush AND t025.FInterID <>0 left join t_Stock t029 on t029.FItemID = ICBomChild.FStockID AND t029.FItemID <>0 left join t_StockPlace t030 on t030.FSPID = ICBomChild.FSPID AND t030.FSPID <>0
WHERE ICBomChild.FInterID='''+edit1.Text+'''
ORDER BY ICBomChild.FEntryID
就这句有问题
WHERE ICBomChild.FInterID=:FInterID
这行提示错误
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: ':' 附近有语法错误。
假如你在利用ADO查询方法时:
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from tableA where ID=:a');
parameters.ParamByName('a').Value:= StrToInt(trim(Edit1.Text));
open;
end;
解释如下:冒号加参数名(符合参数命名法则,一般可以取a,b,c等字母)在以上查询语句中属于绑定参数的方法,即下面的
parameters.ParamByName('a').Value:= 后可以是任何类型的,但是你必须符合你要查询的数据类型.