返回多值的函数怎么写? ( 积分: 42 )

  • 主题发起人 主题发起人 zyr76
  • 开始时间 开始时间
Z

zyr76

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个问题是:数据库中有字段1,2,3,4,字段1,2都是备注型的,3,4是字符型的,现在的问题是要把多个符合条件的记录的字段1,2,3,4导入到word文档,形成总结信息,如果能把它做出函数,则可以重复利用函数导入即可,可是问题是:1)如何判断字段是否没有被赋值?即字段1,2,3,4允许其中有些是空的。2)该函数怎么写,才能循环的把符合条件的记录的字段1,2,3,4导入到word中。分数不够了,全送了。
 
if fieldbyname('name').isnull 是空值呀!
 
晕了。可以在函数参数里使用传地址方式。。。这样你传入地址的变量在函数结束后
就会得到值了
 
传结构类型的引用也可以啊
 
返回一个指针,指向你的多个值
 
可以定义一个记录!

函数返回记录类型!

record tb
begin
a,
b,
c,
d:Pchar;
end;

function selecttable:Tb;
 
同意楼上
 
还有一中方法:如果要返回的参数不是太多可以用,如:
Function GetMyData(Var a:string; Var b:integer; Var c:Boolean):Boolean;
 
各位高手,能否写段参考代码呀?关于空值判断我已知道了.
 
With DataModuleTest.ADOQueryWord do
begin
……
SQL.Add('Select * from TestInfo where TestID=:A');
Parameters.ParamByName('A').Value:=RandNums;//该句有问题,编译通过,运行 有错误提示,改成Parameters[0].Value:=RandNums运行也错,但编译可以通过
……
end;
运行时为什么编译器发出类EDataBaseError with message 'ADOQueryWord :parameter 'A' not found',请问怎么改?
 
真无耻,不发分又换个问题了,大家不要答这家伙。
 
呵,他就这些分了.
 
白河愁,要DFW的人都跟你一样,怎么提高了,我确实有难处,又没分了,这样吧,我先前的问题算不问,现在如果有人回答我后面这个问题(参数错误)我就结贴了,我可是没有超过15天不结贴的,请大家相信我,发扬一下风格!不胜感激!
 

Parameters.ParamValues['A']:=KeyValue;

试一下看,我这样用,未发现问题,但用Parameters.ParamByName('A').Value是会报同你一样的错误
 
或者把RandNums直接写入SQL语句试试..
 
用Parameters.ParamValues['A']:=KeyValue;好像错误提示是找不到参数A,真怪了,其他的代码我前面的用法好像都对,怎么这个不行,在这折腾好几天了,希望能有高手指点一二,不胜感激. 另外把RandNums(integer类型的数组元素)直接写入SQL语句,这个怎么写,好像不好写吧,如有,请指教!
 
query.sql裡面的text寫錯了吧.斷點調試一下就知道了,參數格式: select * from table where filed=:param
sql隨機數的網上大吧.自己努力去找吧.
 
我来个比较笨的方法:
1 声明一个全局TStringList(kList)
2 建立一个过程
procedure GetDataStr(sqlstring:String);
Var
I:Integer;
Begin
adoquery1.sql.clear;
adoquery1.sql.append(sqlstring);
adoquery1.sql.Open;
For I:=0 to adoquery1.recordcount-1 do
Begin
If Varisnull(adoquery1.fields.fields.value)=False Then
kList.add(adoquery1.fields.fields.Value)
else
kList.add('');
end;
end;
3 把KList中的值写入Word中
 
晕,原来什么都没错,搜索了一下,把原来的ADO控件删了,再放一个,不用改源代码,谢谢各位了,以后大家碰到这个事情,我看这样处理好了,可能是使用盗版软件的缘故?
 
后退
顶部