回 帖 发 新 帖 刷新版面

主题:各位前輩們  有個關於array和sql的問題想請問大家

大家好  我是剛剛才開始用foxpro的
有點問題還望前輩們賜教

小弟創建了一個function 是把table的資料select into array
而這個function 會在接下button後觸發
想請問如果我想把array return出來供其他程序使用有沒有可能嗎

我找過關於pass array by reference 的資料  
好像都是說把array pass到procedure 

例外想請問的是如果我用string 組合了一條sql
大概是這樣...
zsql = "select * from " +不同的table
想請問要如何才可執行這個查詢呢
我也有找到類似的function 像是sqlexec
不過有其他參數我是不適用的...

回复列表 (共3个回复)

沙发

1.可以选择的做法是设array为public,例如:public myarray(1)
  select * from tablezl into array myarray

2.可以用宏代换
   &zsql

板凳

第一个问题,作为参数来传递应该是可以的,之前IlikeFox指点过有的.
http://bbs.pfan.cn/post-242624.html
第二个问题,可以使用宏替换.
&zsql.

3 楼

要想返回一个Array,一般的办法是使用引用参数传递,在程式入口把数组地址传入,然后再程式中加工数组,这样不需要return返回数组名,即可直接修改这个数组的成员值。


***上级程式/过程/事件
Dimension Data_Array(1)

**调入Function()程式
if Get_My_Data(@Data_Array)>0
   ***
   ***
else
   messagebox("没有数据!")
endif

return

*** Get_My_Data.prg
PARAMETERS aArray
extern array aArray                && 申明下这是个外部的数组,以免编译器报错
local rec_count

select name from 資料.dbf where AGE>=18 into array aArray
rec_count=reccount()
use

return rec_count              && 返回查询结果的个数

我来回复

您尚未登录,请登录后再回复。点此登录或注册