DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: vic_168999
今日帖子: 7
在线用户: 13
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 my_delphi (my_delphi) ★☆☆☆☆ -
普通会员
2003/12/4 15:14:43
标题:
在ADOQuery中如何实现动态查询?? 浏览:3367
加入我的收藏
楼主: 在ADOQuery中如何实现动态查询??
   可否象Query中实现动态查询:
   query1.SQL.Add('select * from part_data where trim(order)=(:order)');
   query1.Params[0].AsString :=trim(q_order.Text);

但在ADOQuery中没有Params,不知如何实现??

紧急求助!!
----------------------------------------------
*-------------------------------\
| 渴求知识,也渴望您的帮助!     \
| 愿结识当今天下爱好DELPHI之朋友!\
|__________________________________\______^_^
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/4 15:17:41
1楼: adodm.ADOQuery2.Close;
adodm.ADOQuery2.SQL.Clear;
adodm.adoquery2.SQL.Add('select * from tb_cs where 日期 between >=:date1 and <=:date2');
adodm.adoquery2.Parameters.CreateParameter('date1',fdatetime,pdInput,10,0);
adodm.adoquery2.Parameters.CreateParameter('date2',fdatetime,pdInput,10,0);
adodm.ADOQuery2.Parameters.ParamByName('date1').Value :=StrToDateTime(edit35.Text);
adodm.ADOQuery2.Parameters.ParamByName('date2').Value :=StrToDateTime(edit36.Text);
adodm.ADOQuery2.Open
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 my_delphi (my_delphi) ★☆☆☆☆ -
普通会员
2003/12/5 10:11:28
2楼: 不行呀,这行出错:
adoquery1.Parameters.CreateParameter('vcode',string,pdInput,10,0);
提示说找不到')',找不到','

还请再指点是哪错了!!
等候回贴!!

----------------------------------------------
*-------------------------------\
| 渴求知识,也渴望您的帮助!     \
| 愿结识当今天下爱好DELPHI之朋友!\
|__________________________________\______^_^
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/5 10:16:50
3楼: function CreateParameter(const Name: WideString; DataType: TDataType; Direction: TParameterDirection; Size: Integer; Value: OleVariant): TParameter;

type TDataType = TFieldType;

type TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);


Value  Description

ftUnknown  Unknown or undetermined
ftString  Character or string field
ftSmallint  16-bit integer field
ftInteger  32-bit integer field
ftWord  16-bit unsigned integer field
ftBoolean  Boolean field
ftFloat  Floating-point numeric field
ftCurrency  Money field
ftBCD  Binary-Coded Decimal field that can be converted to Currency type without a loss of precision.
ftDate  Date field
ftTime  Time field
ftDateTime  Date and time field
ftBytes  Fixed number of bytes (binary storage)

ftVarBytes  Variable number of bytes (binary storage)
ftAutoInc  Auto-incrementing 32-bit integer counter field
ftBlob  Binary Large OBject field
ftMemo  Text memo field
ftGraphic  Bitmap field
ftFmtMemo  Formatted text memo field
ftParadoxOle  Paradox OLE field
ftDBaseOle  dBASE OLE field
ftTypedBinary  Typed binary field
ftCursor  Output cursor from an Oracle stored procedure (TParam only)
ftFixedChar  Fixed character field
ftWideString  Wide string field
ftLargeint  Large integer field

ftADT  Abstract Data Type field
ftArray  Array field
ftReference  REF field
ftDataSet  DataSet field
ftOraBlob  BLOB fields in Oracle 8 tables
ftOraClob  CLOB fields in Oracle 8 tables
ftVariant  Data of unknown or undetermined type
ftInterface  References to interfaces (IUnknown)
ftIDispatch  References to IDispatch interfaces
ftGuid  globally unique identifier (GUID) values
ftTimeStamp  Date and time field accessed through dbExpress
ftFMTBcd  Binary-Coded Decimal field that is too large for ftBCD.
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/5 10:17:25
4楼: 要懂的多看BORLAND的帮助!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 lzx130 (小牛) ★☆☆☆☆ -
普通会员
2003/12/5 10:24:09
5楼: 我也想问这个问题~!~!
bios你的: function CreateParameter是自己编的函数吗??
我想知道有没有系统自身的~!~!

----------------------------------------------
-
作者:
男 lzx130 (小牛) ★☆☆☆☆ -
普通会员
2003/12/5 10:29:00
6楼: 哦,我知道了
: function CreateParameter相当于在ADOQuery中加paramrs吧~!~!

adodm.ADOQuery2.Parameters.ParamByName('date2').Value :=StrToDateTime(edit36.Text);是加载动太数据吧~!~!

----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/5 10:32:22
6楼: 这是BORLAND自带的
此帖子包含附件:
JPEG 图像
大小:37.8K
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 my_delphi (my_delphi) ★☆☆☆☆ -
普通会员
2003/12/5 11:50:54
7楼: 还是不行呀我的代码如下大家帮忙看看是哪错了:
query1.Close ;
        query1.SQL.Clear ;
        query1.SQL.Add('select * from personalprodd where pcode=Vpcode');
        query1.Parameters.CreateParameter('Vpcode',ftstring,pdinput,10,0);
        query1.Parameters.ParamByName('Vpcode').Value :=edit2.text;

注:pcode为字段.
DELPHI的错误提示为:   列名'Vpcode'无效
可我的列名是pcode呀.

等候您的回贴!!!
----------------------------------------------
*-------------------------------\
| 渴求知识,也渴望您的帮助!     \
| 愿结识当今天下爱好DELPHI之朋友!\
|__________________________________\______^_^
作者:
男 zho1022 (橘佑京) ★☆☆☆☆ -
盒子活跃会员
2003/12/5 13:21:37
8楼:    
   query1.SQL.Add('select * from part_data where trim(order)=(:order)');
   query1.parameters.parambyname('order').value:=trim(q_order.text);
----------------------------------------------
实践是检验真理的唯一标准!
作者:
男 zho1022 (橘佑京) ★☆☆☆☆ -
盒子活跃会员
2003/12/5 13:22:43
9楼: ...where pcode=:Vpcode');
----------------------------------------------
实践是检验真理的唯一标准!
作者:
男 my_delphi (my_delphi) ★☆☆☆☆ -
普通会员
2003/12/5 14:56:40
10楼: 还是不行,各位的代码我都试过,还是出错,...


.....???
----------------------------------------------
*-------------------------------\
| 渴求知识,也渴望您的帮助!     \
| 愿结识当今天下爱好DELPHI之朋友!\
|__________________________________\______^_^
作者:
男 firerose (华鸿世纪-火玫瑰) ★☆☆☆☆ -
盒子活跃会员
2003/12/5 17:25:28
11楼: Sql.Add('and datetime>=:datetimestart and datetime<=:datetimeend');
Parameters[0].Value:=StrToDatetime(DateStart);
Parameters[1].Value:=StrToDatetime(Dateend);

在查询语句中的第一个Parameters用Parameters[0],以此递增,无需任何设置。

如有问题可以联系:FireRoseSoft@msn.com

这是我前几个月写石油公司加油卡系统用的方法,绝对可行。
此帖子包含附件:
JPEG 图像
大小:114.1K
----------------------------------------------
Delphi 免费组件提供 http://www.delphi-free.com
作者:
男 my_delphi (my_delphi) ★☆☆☆☆ -
普通会员
2003/12/6 8:37:08
12楼: 谢谢firerose (华鸿世纪-火玫瑰)兄!!
我试过了完全通过,现在我把我的代码公布如下以便需要的朋友阅读:

ADOquery1.SQL.Add('select * from personalprodd where per_cdcode=:Vper_cdcode');
ADOquery1.Parameters[0].Value :=per_cdcode.Text ;

再次感谢firerose兄!

----------------------------------------------
*-------------------------------\
| 渴求知识,也渴望您的帮助!     \
| 愿结识当今天下爱好DELPHI之朋友!\
|__________________________________\______^_^
作者:
男 gsl (天涯) ★☆☆☆☆ -
盒子活跃会员
2004/2/25 16:07:34
13楼: var 
    month:string; 
  begin
   month:=combobox3.text;
   adoquery3.SQL.Add('select DISTINCT A.cpsn_name AS 姓名,B.m5 AS 身份证号,A.ISD_MONTH AS 所得期间,from wa_sds A,wa_psn B WHERE A.ISD_MONTH=:combobox3.text and A.ISD_MONTH=:month');
   end;
这怎么不对??

----------------------------------------------
-
作者:
男 gsl (天涯) ★☆☆☆☆ -
盒子活跃会员
2004/2/25 16:21:30
14楼: 我想把adoquery1的查询结果输出到excel中,我已经输出来了
但是只有记录,怎么没有 字段名?
我的代码如下:

var
  I: Integer;
  Str: String;
  StrList: TStringList;
begin
    StrList := TStringList.Create;
  try
    with adoquery3 do
    begin
      for I := 0 to FieldCount-1 do
        Str := Str + Fields[I].FieldName + #9;
      First;
      while not Eof do
      begin
        Str := ';
        for I := 0 to FieldCount-1 do
          Str := Str + Fields[I].AsString + #9;
        StrList.Add(Str);
        Next;
      end;
      StrList.SaveToFile('test.xls');
    end;
    StrList.Free;
  except
    StrList.Free;
  end;


----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/2/25 17:07:32
15楼: http://bbs.2ccc.com/topic.asp?topicid=12821
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS