菜鸟求教:变量格式问题(50分)

  • 主题发起人 主题发起人 sysd
  • 开始时间 开始时间
S

sysd

Unregistered / Unconfirmed
GUEST, unregistred user!
在SQL中得到的变量,在插入中提示变量类型错误,怎么改啊?
ADOQuery1.SQL.Add('select sum(je) as hzje from Table');
得到了汇总金额:hzje
ADOQuery2.SQL.Add('insert into Table2(hzje) values('+hzje+')');
运行时提示变量类型不对,
'+hzje+' 不对,
''+hzje+'' 也不对,
'''+hzje+''' 也不对,
应该是什么格式呢?
 
ADOQuery2.SQL.Add('insert into Table2(hzje) values('+hzje+')');
语句需要字符串,而你的SQL语句中的hzje为real型,需要转换一下:floattostr(hzje)
 
老大,我的金额字段是numeric格式的,那用什么转换啊?
有floattonumeric这个函数吗?
 
老大,我的金额字段是numeric格式的,那用什么转换啊?
有floattonumeric这个函数吗?
把你的numeric转换成字符串才行
 
可以用CONVERT转换
下表显示了从 float 或 real 转换为字符数据时的 style 值。

值 输出
0(默认值) 最大为 6 位数。根据需要使用科学记数法。
1 始终为 8 位值。始终使用科学记数法。
2 始终为 16 位值。始终使用科学记数法。
 
不好意思,看错了
呵呵[:D]
 
老大,有错误啊,
Undeclared identifier 'hzje'
怎么转换老大能给写一下吗?谢谢了
 
哪位老大能给改一下这句代码啊?谢谢了
ADOQuery2.SQL.Add('insert into Table2(hzje) values('+hzje+')');
 
ADOQuery2.SQL.Add('insert into Table2(hzje) values('''+hzje+''')');
 
ADOQuery2.SQL.Add('insert into Table2(hzje) values(:A)');
adoquery2.paramters.parambyname('A').asinteger:= hzje;
也可以..
 
老大,还是不行啊,错误提示如下 :
[错误] ydhz.pas(87): Undeclared identifier: 'parambyname'
[错误] ydhz.pas(87): Missing operator or semicolon
[错误] ydhz.pas(87): Undeclared identifier: 'hzje'
[致命错误] xkfygl.dpr(9): Could not compile used unit 'ydhz.pas'
老大再给看看吧,谢谢了
 
..............
hzje是你想要定義的變量...比如 var hzje:integer
adoquery1.Parameters.ParamByName('A').Value..剛才寫錯了..
 
hzje :=strtoint(trim(Edit1.text)); 不過edit1要一定是integer類型才可以insert
 
ADOQuery2.SQL.Add('insert into Table2 ( hzje ) values('+floattostr(hzje)+')');
说明:尽管你的字段是数字类型,但是你的sql语句不能直接使用数字变量hzje,应该转换成字符变量。
 
老大,hzje是我从
ADOQuery1.SQL.Add('select sum(je) as hzje from Table');
得到的一个变量啊,我就是想知道怎么样用到insert上去啊?
ADOQuery2.SQL.Add('insert into Table2(hzje) values('+hzje+')');
 
ADOQuery1.SQL.Add('select sum(je) as hzje from Table');
得到了汇总金额:hzje
ADOQuery2.SQL.Add('insert into Table2(hzje) values('+hzje+')');

合二为一:
ADOQuery1.SQL.Add('insert into Table2(hzje) select sum(je) as hzje from Table');
 
谢谢aizhuzhu老大,能运行了,50分送上,谢谢
另外,如果要插入的记录不只一个字段,后面的values怎么写啊?
 
ADOQuery1.SQL.Add('insert into Table2(hzje,aa,bb) select sum(je) as hzje,ee,ff from Table');
按照前面的 Table2(hzje,aa,bb) 顺序,排列后面的对应顺序
 
那要是aa,bb字段所用的变量不是从Table表中得到的,而是2个从别处赋值的变量呢?
后面的values 怎么写啊?select语句能和那2个变量一起用吗?
 
后退
顶部