如何用select语句赋值 (50分)

  • 主题发起人 主题发起人 litte wing
  • 开始时间 开始时间
L

litte wing

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用select 字段名 INTO:变量名 from 表名 where 条件将查询到符合
条件记录的字段值赋给一个变量,在PB中着中写法是可以的,但在D4中怎么
不行?
 
try:

select 变量名 =字段名 from 表名 where 条件

 
SELECT INTO 不行。可以麻烦一点实现:
Query.SQL.Add('SELECT 字段名 FROM 表名 WHERE 条件');
Query.Open;
if Query.RecordCount > 0 then
begin
Query.First;
变量名 := Query.Field[0].Value;
// 或 Query.FieldByName('字段名').AsString; ...
end;
 
你可以这样:

Query.SQL.Clear;
Query.SQL.Text:= //select 字段名 from 表名 where 条件
Query.Active:=True;

Query.First;
while NOt query.Eof do
begin
ShowMessage(Query.Fields[0].AsString); //Query.Fields[0].AsString就是你要的变量.
Query.Next;
end;
 
咿~~ 看错看错
 
Croco
Sorry,我在写的时候,你的帖子还每出现.
 
沈老师的更准确些。
 
在查询出结果后我用 变量名 := Query.Field[0].Value; 语句(real型变量),变量得不到
Query.Field[0].Value 的数值,即 在调试时可以看到Query.Field[0].Value
的值是正确的,但赋值后 变量 得不到正确的值,变量的值始终为0
 
贴出你的代码。
 
怎么可能是一个变量呢,select 出来的是一个数据集,应该用一个变量数组来得到你所查找出来的记录的字段的值。变量名 := Query.Field[0].Value只得到当前记录的字段值。
要如何用变量数组得到所有符合select出来的记录的字段的值的方法,我也不会。我用
var
test: array of string;
i: integer;
begin
with query1 do
begin
close;
sql.clear;
sql.add('select test_field1 from test_table');
open;
end;
if query1.recordcount>0 then
for i:=0 to query1.recordcount-1 do
test:=query1.fieldbyname('test_field1').asstring;
end;
以上方法通不过,如有好方法请告诉我。
 
ziyu的代码里有错误:
应该
if query1.recordcount>0 then
begin
Query1.First; // +++++
for i:=0 to query1.recordcount-1 do
begin
test:=query1.fieldbyname('test_field1').asstring;
Query1.Next; // +++++
end;
end;
 
该问题已经解决,对于如SUM的函数,可以用如下语句:
Select SUM(字段名) 任意虚拟字段 from TABLENAME WHERE CONDITION
如:
SELECT SUM(KIND) F_KIND FROM TABLENAME WHERE CONDITION
 
如果要输出到一个变量的话,则应该保证 SQL 语句只返回一条记录,否则会出错,另外,在Interbase中,SQL 语句的语法应该是 Select field1 from table1
where condition1 into :var1
就是说,Into 应该在最后出现
 
按字段内容确定,try :-)
Query.SQL.Clear;
Query.SQL.Add('SELECT 字段名 FROM 表名 WHERE (字段名 = :变量名) and (条件)');
Query.ParamByName('变量名').AsString := 字段值;
Query.Open;

 
谢谢各位的答案,银子太少,请各位将就将就。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部