adoquery的一个问题 |
尚未結案
|
sunyard
一般會員 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
请问各位先进:
1)后台access数据库,查询结果正确,recordcount=1;
2)后台informix数据库,查询结果不正确,recordcount=0;
代码如下 procedure TFrmTd.ComboBox1Exit(Sender: TObject);
begin
showmessage(combobox1.Text);
with adoq2 do
begin
close;
sql.clear;
sql.add('select * from newjgsx where jgmc=:p1');
parameters.ParamByName('p1').Value:=combobox1.Text;
active:=true;
open;
showmessage(combobox1.Text ' ' inttostr(recordcount)); jgdm:=fieldvalues['jgdm'];
showmessage(jgdm);
end; end;
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
sunyard
一般會員 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 會不會是因為ComboBox的值錯誤而引起找不到資料﹐比如說前后有空白等等﹒使用如下的方法將jgmc欄位的值加入ComboBox之Items屬性值中﹐再在ComboBox中選擇'企業部'或其它值﹐來重新測試SQL敘述﹒
重新加入一個ADOQuery(ADOQuery2)﹐在Form的OnActivate事件中﹕
begin try ADOQuery2.Close; ADOQuery2.SQL.Text := 'Select Distinct jgmc From newjgsx'; ADOQuery2.Open; ComboBox1.Items.Clear; While Not ADOQuery2.Eof do begin ComboBox1.Items.Add(ADOQuery2.Fields[0].AsString); ADOQuery2.Next; end; Finally ADOQuery2.Close; end; end;========================= 大病初愈﹐休養調整中... =========================
------
忻晟 |
sunyard
一般會員 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
感谢cashxin2002: 源代码如下:
procedure TFrmTd.ComboBox1Exit(Sender: TObject);
begin
showmessage(combobox1.Text);
with adoq1 do
begin
close;
sql.clear;
sql.add('select * from newjgsx');
sql.add('where jgmc=:p1');
parameters.ParamByName('p1').DataType:=ftstring;
parameters.ParamByName('p1').Value:=combobox1.Text; open;
showmessage(combobox1.Text ' ' inttostr(recordcount)); jgdm:=fieldvalues['jgdm'];
showmessage(jgdm);
end; end; procedure TFrmTd.DateTimePicker1Exit(Sender: TObject);
begin
t1:= Datetimepicker1.Date;
end; procedure TFrmTd.DateTimePicker2Exit(Sender: TObject);
begin
t2:= datetimepicker2.Date;
end; procedure TFrmTd.ComboBox1DropDown(Sender: TObject);
begin
Combobox1.Clear;
with ADODataset1 do
begin
close;
commandtext:='select distinct jgmc from newjgsx where jglx=:para1';
parameters.ParamByName('para1').DataType:=ftstring;
parameters.ParamByName('para1').Value:='2';
open;
while not eof do
begin
Combobox1.Items.Add(fields[0].asstring);
next;
end;
end;
end; 还是无法select到结果,但是我试了一下,如果将数据库中jgmc字段值赋值
为英文字母,则可以select到,汉字则不能成功,
为什么呢?
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
引言: 感谢cashxin2002: 源代码如下: procedure TFrmTd.ComboBox1Exit(Sender: TObject); begin showmessage(combobox1.Text); with adoq1 do begin close; sql.clear; sql.add('select * from newjgsx'); sql.add('where jgmc=:p1'); parameters.ParamByName('p1').DataType:=ftstring; parameters.ParamByName('p1').Value:=combobox1.Text; open; showmessage(combobox1.Text ' ' inttostr(recordcount)); jgdm:=fieldvalues['jgdm']; showmessage(jgdm); end; end; procedure TFrmTd.DateTimePicker1Exit(Sender: TObject); begin t1:= Datetimepicker1.Date; end; procedure TFrmTd.DateTimePicker2Exit(Sender: TObject); begin t2:= datetimepicker2.Date; end; procedure TFrmTd.ComboBox1DropDown(Sender: TObject); begin Combobox1.Clear; with ADODataset1 do begin close; commandtext:='select distinct jgmc from newjgsx where jglx=:para1'; parameters.ParamByName('para1').DataType:=ftstring; parameters.ParamByName('para1').Value:='2'; open; while not eof do begin Combobox1.Items.Add(fields[0].asstring); next; end; end; end; 还是无法select到结果,但是我试了一下,如果将数据库中jgmc字段值赋值 为英文字母,则可以select到,汉字则不能成功, 为什么呢?這一段改成這樣試試看 aa:= combobox1.Text; with adoq1 do begin close; sql.clear; sql.add('select * from newjgsx'); sql.add('where jgmc=''' aa ''' '); open; 天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
sunyard 你好 會不會Informix與Oracle一樣,對於Char的欄位型態有同樣的行為模式(設為Char(8)時,即使欄位值只有'abc',存到資料庫後會自動補空白到滿8碼),所以在查詢時的條件必須自行補滿8才能查詢得到? 請參考以下連結
【Delphi】【問題】有沒有人遇過降子的情況?
http://delphi.ktop.com.tw/topic.php?topic_id=46106 並檢查jgmc 的欄位型態是否就是Char(n) 呢?可以先改成Varchar(n)試試,就可以確定狀況了。 _______________________________________
深藍的魚,祝您好運..........連連
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |