简单查询问题

qqa2003cn 2008-01-03 09:37:38
如下:
SHIPNO :=ComboBox1.Text;
query2.Close;
query2.SQL.Clear;
QUERY2.SQL.Add('SELECT UW_SHIP.SHIP_KEY,UW_SHIP.SHIP_NO,UW_SHIP.CUSTOMER_ID,UW_SHIP.CUSTOMER,UW_SHIP.CUSTOMER_PO,UW_SHIP_LINES.SHIP_QTY,UW_SHIP_LINES.PART_NO ');
QUERY2.SQL.Add('FROM UW_SHIP,UW_SHIP_LINES WHERE UW_SHIP.SHIP_KEY=UW_SHIP_LINES.SHIP_KEY AND UW_SHIP.SHIP_NO=:SHIPNO ');
QUERY2.SQL.Add('AND UW_SHIP_LINES.PART_NO:=PARTNO1');
query2.ParamByName('SHIPNO').AsString:=SHIPNO;
query2.ParamByName('PARTNO1').asString := TRIM(EDIT1.TEXT);
query2.Open;
SHIPQTY:=QUERY2.fieldbyname('SHIP_QTY').ASSTRING ;
执行时出现错误如下:
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqa2003cn 2008-01-03
  • 打赏
  • 举报
回复
数据能在窗口显示出来.但是用SHIPQTY:=QUERY2.fieldbyname('SHIP_QTY').ASSTRING ;怎么会取不出来值.
xiaxia421 2008-01-03
  • 打赏
  • 举报
回复
建议 用 chris_mao 同志的写法,先确定sql是否取到有值,再来判断为什么取不到值
delphilaoda 2008-01-03
  • 打赏
  • 举报
回复
顶一下
禹爸爸 2008-01-03
  • 打赏
  • 举报
回复
你可以先在查询分析器中执行一下你动态拼装的SQL语句,首先确定SQL是能够查询到数据的。
qqa2003cn 2008-01-03
  • 打赏
  • 举报
回复
这个问题也修正.但是SHIPQTY:=QUERY2.fieldbyname('SHIP_QTY').ASSTRING ;怎么会取不出来值啊.我应该如何修正。
禹爸爸 2008-01-03
  • 打赏
  • 举报
回复
在Delphi中写代有参数的SQL语句的格式是FieldName = :Param
建议楼主将相对固定的SQL语句定义为资源字符串或是常量,如:
resourcestring
sSQL = 'Select .. From .. Where Field = ''%s'' AND Field = ''%s'''; //此处使用..代替字段列表,数据表名,Field代表具体的某一字段

Query2.Active := False;
Query2.SQL.Text := Format(sSQL, [Combobox1.Text, Trim(Edit1.Text)]);
Query2.Active := True;
.....
stherix 2008-01-03
  • 打赏
  • 举报
回复
在sql语句中的参数前要加: 比如 :shipNO

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧