這樣的SQL語句如何寫?(50分)

  • 主题发起人 主题发起人 rixin
  • 开始时间 开始时间
R

rixin

Unregistered / Unconfirmed
GUEST, unregistred user!
parambyname 中的sels作為數組變量, 是否可以?

...

i:=0;
with QueryPtCKST do
begin
close;
SQL.Clear;
SQL.Add('select a.stuffno,a.stuffname,a.unit,');
SQL.Add('b.stuqty,b.ckqty');
SQL.Add('from "/royalsys/rst/rsdata.dbf" a,');
SQL.Add('"/royalsys/rst/rnstock.dbf" b');
SQL.Add('where a.stuffno=b.stuffno');
SQL.Add('and (a.stuffno like :seletM');
parambyname('seletM').asstring:=SelectPrint+'%';
i:=1;
////
while SelectPrint<>'' do
begin
SQL.Add('or a.stuffno like :sels');

sels:=inttostr(i); //**** 不起作用 ****

parambyname('sels').asstring:=SelectPrint+'%';
i:=i+1;
end;
////
SQl.Add(') order by a.stuffno');
open;
end;

....

 
try this:

SQL.Add('or a.stuffno like '+''''+SelectPrint+'%'+'''');
 
while SelectPrint<>'' do
begin
SQL.Add('or a.stuffno like :sels');
sels:=inttostr(i); //**** 不起作用 ****
^^^^^^^^^^^^^^^^^^^^^^
什么意思?想问为什么不起作用?还是告诉大家不起作用
parambyname('sels').asstring:=SelectPrint+'%';
i:=i+1;
end;
 
不能, 必须用一个数组遍历.
for i:= low(seles) to high(seles) do
sql:=sql+' or a.sutffno like ''' + seles+'%''';
 
lhxu: 多謝提示, 已解決.
但是: 以上程序我是用在Dcom Server端, 客戶端在另一台機子上,
以上程序在Delphi 5中Run, 客戶端執行要求Server執行上述SQL時,
出現"文件不存在報警", 而離開Delphi5,直接執行Server(exe)時,
一切正常, 請問是何原因? (我已將Delphi 5卸下重裝)
 
接受答案了.
 
后退
顶部