D5中的ADO如何按字段名取得其所对应的值?

netsong 2001-01-10 04:11:00
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
showsky 2001-01-10
  • 打赏
  • 举报
回复
我曾经做过这样的程序,提供这段代码供你研究:

for i:=0 to (adoQry_SQL.FieldCount-1) do begin
if (not adoQry_SQL.Fields.Fields[i].IsNull) then begin
tmpSQL1:=tmpSQL1+adoQry_SQL.Fields.Fields[i].FieldName+',';
if (adoQry_SQL.Fields.Fields[i].ClassName='TStringField') then begin
tmpStr:=StringReplace(adoQry_SQL.Fields.Fields[i].AsString,chr(39),'’',tmp);
tmpSQL2:=tmpSQL2+chr(39)+tmpStr+chr(39)+',';
updateStr:=updateStr+adoQry_SQL.Fields.Fields[i].FieldName+'='+chr(39)+tmpStr+chr(39)+',';
end
else if (adoQry_SQL.Fields.Fields[i].ClassName='TBCDField') then begin
tmpSQL2:=tmpSQL2+adoQry_SQL.Fields.Fields[i].AsString+',' ;
updateStr:=updateStr+adoQry_SQL.Fields.Fields[i].FieldName+'='+adoQry_SQL.Fields.Fields[i].AsString+',';
end
else if (adoQry_SQL.Fields.Fields[i].ClassName='TDateTimeField') then begin
tmpDate:='to_date('''+formatdatetime('YYYY-MM-DD hh:mm:ss ',adoQry_SQL.Fields.Fields[i].Asdatetime)+chr(39);
tmpDate:=tmpDate+','+chr(39)+'YYYY-MM-DD HH24:MI:SS'+chr(39)+'),';
tmpSQL2:=tmpSQL2+tmpDate;
updateStr:=updateStr+adoQry_SQL.Fields.Fields[i].FieldName+'='+tmpDate+',';
end;
end;
end;

当时我是为了动态生成insert和update 的sql语句用的,想必对这个问题也是很好的解答。
环境:delphi5、oracle8


王集鹄 2001-01-10
  • 打赏
  • 举报
回复
和TQuery一样
liuchcn 2001-01-10
  • 打赏
  • 举报
回复
1。如果是用_recordset对象:
var rs:_recordset;
rs.fields.item['xxx'].value; //返回的是variant
2。如果用aodquery或adotable,
adoquery.fieldbyname('xxx').asstring;
adoquery.fieldbyname('xxx').asfloat;
...

Wingsun 2001-01-10
  • 打赏
  • 举报
回复
你是什么意思啊?怎么看得不是很懂啊!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧