一个关于ado的问题:
我用adoquery进行数据库(sql2000)查询,我要查询一a表里一个id为111的学生的name,我把查询出的这个name赋值给edit1.text 这样写总是提示空值不能转换为字符串
sql为: select name=:k form a where id=111
inttostr
(parameters.parambyname('k').value:)=edit1.text
execsql;
请问这2句是哪儿有问题,如果用存储过程的话 参数k因为可以这样写就正常
select @k=name from a where id=111
但是sql语句里这样写
select :k=name from a where id=111
就会把k=name都当成是参数!
请大家提示下! 谢谢
我用adoquery进行数据库(sql2000)查询,我要查询一a表里一个id为111的学生的name,我把查询出的这个name赋值给edit1.text 这样写总是提示空值不能转换为字符串
sql为: select name=:k form a where id=111
inttostr
(parameters.parambyname('k').value:)=edit1.text
execsql;
请问这2句是哪儿有问题,如果用存储过程的话 参数k因为可以这样写就正常
select @k=name from a where id=111
但是sql语句里这样写
select :k=name from a where id=111
就会把k=name都当成是参数!
请大家提示下! 谢谢
解决方案 »
- 请教......idhttp的问题,如何扑获返回值,并是网页重定向???
- 在RichEdit中如何获得总行数?
- 做了几个系统,突然有想开放源代码的想法,请大家给点意见好吗?
- Delphi7 裡為何沒有報表控件頁.
- 为什么我不能在DBEDIT中对数据表插入数据?(键盘输入无效)有谁能帮帮我?
- 怎么这么耗内存呀,这就是Delphi?这样的东西也算是聪明人用的,忍受不了,受不了
- 如何使listview显示隐藏文件?
- 求助,FastReport报表帮助,工作要没法做了。
- VB可以对ACAD2000进行2次开发,Delphi可以吗?
- 哪有可读取网络驱动器的控件?
- delphi 得idftp.put方法能否上传大于2G得文件?
- 请问能不能发命令给外部正在运行中的程序中的combobox,以改变其默认值?
我用adoquery进行数据库(sql2000)查询,我要查询一a表里一个id为111的学生的name,我把查询出的这个name赋值给edit1.text 这样写总是提示空值不能转换为字符串
sql为: select name=:k form a where id=111
inttostr
(parameters.parambyname('k').value:)=edit1.text
execsql;
请问这2句是哪儿有问题,如果用存储过程的话 参数k因为可以这样写就正常
select @k=name from a where id=111
但是sql语句里这样写
select :k=name from a where id=111
就会把k=name都当成是参数!
请大家提示下! 谢谢
SQL := 'select name from a where id=111';
execsql;edit1.Text := fieldbyname('name').asString;
我要做的是一个对数据库里的积分加减工具,表名为:hl_jifen 列user_id,和user_jifen
sql我是直接打在adoquery1的sql代码行里 结果是能进行操作,但是我想把最后的值给edit3,这点老提示失败!
update hl_jifen
set user_jifen=user_jifen+:jifen
where user_id=:idd
select user_jifen from hl_jifen where user_id=:idprocedure TForm1.Edit2Enter(Sender: TObject);//先查询
begin
with adoquery1 do begin
close;
parameters.parambyname('id').value:=edit1.Text ;
parameters.parambyname('jifen').value:='0' ;
parameters.parambyname('idd').value:=edit1.Text ;
edit3.Text := fieldbyname('user_jifen').asString;open;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);//再相加begin
with adoquery1 do begin
close;
parameters.parambyname('id').value:=edit1.Text ;
parameters.parambyname('jifen').value:=edit2.Text ;
parameters.parambyname('idd').value:=edit1.Text ;
我有一个表hl_jifen 里面的列为user_id 和user_jifen
我要实现的就是输入user_id 后查询user_jifen为多少,同时可以进行加减!!
嘿嘿 别气 新手是这样,所以说当老师的人都要脾气好
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
ADOQuery1: TADOQuery;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.Parameters.ParamByName('idd').Value := StrToInt(edit1.Text);
adoquery1.Open;
edit3.Text := IntToStr(adoquery1.FieldByName('user_jifen').AsInteger);
end;procedure TForm1.Button2Click(Sender: TObject);
var
nn: integer;
begin
nn := StrToInt(edit2.Text) + StrToInt(edit3.Text);
adoquery1.Edit;
adoquery1.FieldByName('user_jifen').AsInteger := nn;
adoquery1.Post;
button1click(button1);
end;其中 ADOQuery1的SQL属性 select * from hl_jifen where user_id=:idd
Parameters属性为idd,其他的组件基本没有什么属性修改。
表 hl_jifen 列 user_id,user_jifen 都是数值类型
button1用于查询,button2用于计算新的 user_jifen参照你的组件写法写的,其实你使用的组件还是有问题,这样的界面设计有问题,应该使用数据感应组件,并且最好有Grid或者navigator用于数据库查询浏览。建议自己去看看书,学点事例,不要闭门造车。