我用的是ACCESS数据库,假设‘stlr’是表database的Memo型字段,里面内容大约千字,我如果用下面语句就会正确显示:database.fieldbyname('stlr').AsString,而用SQL语句查询后再显示就不正确了,只能显示一小部分: with adoquery1 do begin close; sql.clear; sql.add('select stlr from database'); open; end; adoquery1.fieldbyname('stlr').AsString; :( 不正确了。
with adoquery1 do begin close; sql.clear; sql.add('select stlr from database'); open; end; 是对的,你是不是用的dbgrid,将长度加大
555~~谢谢大家啦,是我的SQL语句没写完整。完整的应该是这样子。 with dm.ADOQuery1 do //查询操作题。 begin close; sql.clear; sql.add('select tx,txsx,kmm,stlr,nd,fs,tk_id, max(tk_id) as a from exam_database where kmm='+quotedstr(bsskincombobox1.text)+' and nd between :maxnd and :minnd and tx=:tx') ; parameters.ParamByName('maxnd').Value :=bsskincombobox9.Text; parameters.ParamByName('minnd').Value :=bsskincombobox8.Text; parameters.ParamByName('tx').Value :='操作题'; parameters.ParamByName('id').Value :=id; open;后来查出是GROUP BY的原因。重写SQL语句显示正常。 with dm.ADOQuery1 do //查询操作题。 begin close; sql.clear; sql.add('select tx,txsx,kmm,stlr,nd,fs,tk_id, :id as a from exam_database where kmm='+quotedstr(bsskincombobox1.text)+' and nd between :maxnd and :minnd and tx=:tx') ; parameters.ParamByName('maxnd').Value :=bsskincombobox9.Text; parameters.ParamByName('minnd').Value :=bsskincombobox8.Text; parameters.ParamByName('tx').Value :='操作题'; parameters.ParamByName('id').Value :=id; open;查这个问题也费了不少周折。谢谢大家!!!分不多,大家分了吧。
with adoquery1 do
begin
close;
sql.clear;
sql.add('select stlr from database');
open;
end; adoquery1.fieldbyname('stlr').AsString; :( 不正确了。
begin
close;
sql.clear;
sql.add('select stlr from database');
open;
end;
是对的,你是不是用的dbgrid,将长度加大
with dm.ADOQuery1 do //查询操作题。
begin
close;
sql.clear;
sql.add('select tx,txsx,kmm,stlr,nd,fs,tk_id, max(tk_id) as a from exam_database where kmm='+quotedstr(bsskincombobox1.text)+' and nd between :maxnd and :minnd and tx=:tx') ;
parameters.ParamByName('maxnd').Value :=bsskincombobox9.Text;
parameters.ParamByName('minnd').Value :=bsskincombobox8.Text;
parameters.ParamByName('tx').Value :='操作题';
parameters.ParamByName('id').Value :=id;
open;后来查出是GROUP BY的原因。重写SQL语句显示正常。
with dm.ADOQuery1 do //查询操作题。
begin
close;
sql.clear;
sql.add('select tx,txsx,kmm,stlr,nd,fs,tk_id, :id as a from exam_database where kmm='+quotedstr(bsskincombobox1.text)+' and nd between :maxnd and :minnd and tx=:tx') ;
parameters.ParamByName('maxnd').Value :=bsskincombobox9.Text;
parameters.ParamByName('minnd').Value :=bsskincombobox8.Text;
parameters.ParamByName('tx').Value :='操作题';
parameters.ParamByName('id').Value :=id;
open;查这个问题也费了不少周折。谢谢大家!!!分不多,大家分了吧。