我想编写这样的一个过程:
其中参数有:一个query,一个表名,一个字段名,一个字段值和一个数组
这个过程是用来根据所给出的字段值,从所给出的表中进行查询,完成sql语句的设置。
在根据查询结果返回一个二维数组!
可是这里的query,表名,字段名怎么在过程的参数表中进行定义呢?
这里的query声明为一个class:即:type queryx=class(tquery);
表名,字段名,字段值都为字符串类型!
我的定义如下:
procedure creattable(query:queryx;bm,zdm,zdz:string;var temp:arr);//arr已经声明为二维数组!
var i,j:integer;
begin
with queryx do
begin
close;
sql.clear;
sql.add('select xqs,js from bm');
sql.add('where zdm=:number);
params[0].asstring:=zdz;
prepare;
open;
end;
while not queryx.eof do
begin
i:=queryx.fields[0].asinteger;
j:=queryx.fields[1].asinteger;
temp[i,j]:=1;
queryx.next;
end;
end;
可是当我进行调用时:creattable(query1,teacheruse,teacher,jsm,ttemp);
这里的teacheruse是数据库中存在的一个表,teacher是其中的一个字段名,而
jsm在前面已经给出值!
可是进行编译时:它说,incompatible type query and tquery
undeclared identifier :teacher!
不知道该怎么做,请教!
其中参数有:一个query,一个表名,一个字段名,一个字段值和一个数组
这个过程是用来根据所给出的字段值,从所给出的表中进行查询,完成sql语句的设置。
在根据查询结果返回一个二维数组!
可是这里的query,表名,字段名怎么在过程的参数表中进行定义呢?
这里的query声明为一个class:即:type queryx=class(tquery);
表名,字段名,字段值都为字符串类型!
我的定义如下:
procedure creattable(query:queryx;bm,zdm,zdz:string;var temp:arr);//arr已经声明为二维数组!
var i,j:integer;
begin
with queryx do
begin
close;
sql.clear;
sql.add('select xqs,js from bm');
sql.add('where zdm=:number);
params[0].asstring:=zdz;
prepare;
open;
end;
while not queryx.eof do
begin
i:=queryx.fields[0].asinteger;
j:=queryx.fields[1].asinteger;
temp[i,j]:=1;
queryx.next;
end;
end;
可是当我进行调用时:creattable(query1,teacheruse,teacher,jsm,ttemp);
这里的teacheruse是数据库中存在的一个表,teacher是其中的一个字段名,而
jsm在前面已经给出值!
可是进行编译时:它说,incompatible type query and tquery
undeclared identifier :teacher!
不知道该怎么做,请教!
var i,j:integer;
var i,j:integer;
var i,j:integer;
begin
with queryx do
begin
close;
sql.clear;
sql.add('select xqs,js from bm');
sql.add('where zdm=:number);
params[0].asstring:=zdz;
prepare;
open;
end;
while not queryx.eof do
begin
i:=queryx.fields[0].asinteger;
j:=queryx.fields[1].asinteger;
temp[i,j]:=1;
queryx.next;
end;
end;