一个clientdataset的commandtext的问题(0分)

  • 主题发起人 主题发起人 zeusangel
  • 开始时间 开始时间
Z

zeusangel

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
cname:string;
sl:string;
left:string;
right:string;
begin
cname:=edit1.text;//edit1.text中的值将会输入"chsen"
sl:='*';
left:='"';
right:='"';
cds.close;
//cds.commandtext:=select;
cds.commandtext:='select '+left+cname+right+' from'+' education';

cds.Open;
end;
如果是select chsen from education 这句在query analyzer中运行是正确的,但是在这里了有出错信息:invalid column name 'chsen'.
我只想从SQL SERVER中提出chsen的信息。
 
把 Left 及 Right 删除即可,如下:
cds.commandtext:='select ' + cname + ' from education';
 
left:='[';
right:=']';
注意空格即可。
 
'' 等于用了字串,即:
select 'colum1' 返回字符串 colum1
[] 可以包含列名,一般在列名为特殊字串时用,即:
select [name] from mytable //name 为保留字,直接用要出错
够详细吧?分都归我吧
 
procedure TForm1.Button1Click(Sender: TObject);
//const
//select:string='select * from education';
var
cname:string;
school:string;
sl:string;
left:string;
right:string;
begin
cname:=edit1.text;
school:=edit2.text;
sl:='*';
left:='[';
right:=']';
cds.close;
//cds.commandtext:=select;
cds.commandtext:='select '+sl+' from'+' education';
//很怪的是,如果是这样子,用sl:=*,这一句又是可以通过的。
//cds.commandtext='select '+left+cname+right+' from'+' education';
//cds.commandtext:='select '+cname+' from'+' education';
//我用cj的方法,是的,通过设置断点,我可以知道已经用edit1中输入的"joke"
//已经可以给cname获得,select [joke] from education 但是还是有错,invalid column name 'joke' .
// 另外我还用了langer的方法,错误还是一样的,真的不知道出错在什么地方,希望
//各位大侠再拨刀相助。
cds.Open;
end;
 
没有人响应这个问题吗?clientdataset?
 
实在看不出问题,直接用
cds.commandtext:='select chsen from education';
试一下,在根据结果分析可能的原因。
 
先新TEXT组合成完整的SQL语句后再给COMMANDTEXT,
或许可以通过,试试吧!
 
接受答案了.
 
后退
顶部